Backend Developer Bootcamp

Maciej Żukiewicz

PHP i bazy danych

Wstęp

A więc zaczynamy

  1. Na zdobycie jakich umiejętności nastawione jest to szkolenie?
  2. Jaką formę będzie miało to szkolenie i z jakich składników będzie się składało?
  3. Agenda - czyli jakie tematy będziemy podejmowali
  4. Plan harmonogramu

Na początku mamy do omówienia:

Na zdobycie jakich umiejętności nastawione jest to szkolenie?

Jakich umiejętności oczekuje rynek (pracodawcy, klienci)

Najważniejsze pytanie to:

99% ofert pracy wymaga znajomości przynajmniej jednego z najpopularniejszych frameworków (Laravel, Symfony, Nette, etc.). Wynika z tego, że po ukończeniu tego szkolenia uczestnik powinien:

Wynika z tego, że na szkoleniu powinniśmy położyć nacisk na:

1. Programowanie obiektowe

2. Współpracę z bazami danych

3. Naukę podstaw topowych frameworków - najlepiej na przykładzie wdrożenia w pełni funkcjonalnej aplikacji

Nie powinniśmy uczyć się "rzeźbienia" w czystym PHP!

Forma szkolenia

Elementy składowe szkolenia:

1. Spotkania na sali (co dwa tygodnie)

2. Spotkania Mastermind (co tydzień)

3. Praca indywidualna (najlepiej codziennie!) - najważniejszy element w całym procesie nauki

Proces nauki:

Omawiamy tylko minimalną, potrzebną teorię i rozwiązania w czystym PHP, aby jak najszybciej przejść do praktycznych projektów z użyciem frameworków.

Agenda szkolenia

2. Konfiguracja środowiska

  • Instalacja środowiska uruchomieniowego (webserver + cli)
  • Przegląd dostępnych edytorów i wybór odpowiedniego
  • Uruchomienie pierwszego skryptu (webserver + cli)
  • Czym jest PHP - jak powstał, do czego jest używany
  • Czy warto jeszcze uczyć się PHP?
  • Co jest ważne w nauce PHP?

1. Wstęp do PHP

Agenda szkolenia

3. Podstawy języka PHP

  • Poznanie zasad składni języka
  • Funkcje wyświetlające (echo, print, var_dump, print_r)
  • Zmienne i stałe
  • Typy danych
  • Deklaracja typów i deklaracja strict_type
  • Tablice i spread operator (indeksowane numerycznie oraz asocjacyjne)
  • Instrukcje warunkowe, null coalescing operator, "spaceship" operator
  • Pętle (while, do...while, for, foreach+referencja)
  • Funkcje, wyrażenia funkcyjne, domknięcia (zwykłe, anonimowe, samowywołujące) oraz przekazywanie przez wartość i przez referencję
  • Działania na stringach (cudzysłowy, apostrofy, konkatenacja, etc.)
  • Zmienne superglobalne (predefiniowane)
  • Stałe predefiniowane
  • Wstawki PHP w HTML
  • Ćwiczenia, ćwiczenia, ćwiczenia...

Agenda szkolenia

4. Podstawy programowania obiektowego

  • programowanie obiektowe a proceduralne
  • klasy, obiekty, interfejsy
  • dziedziczenie, polimorfizm, hermetyzacja, abstrakcja
  • kompozycja
  • hermetyzacja i modyfikatory dostępu
  • klasy i metody finalne
  • traits
  • właściwości i metody statyczne
  • podstawy UML (diagramy klas)
  • metody magiczne
  • obsługa błędów
  • przestrzenie nazw
  • testy jednostkowe z PHPUnit oraz Test-driven Development (TDD)
  • ćwiczenia, ćwiczenia, ćwiczenia...

Agenda szkolenia

5. Przykładowe realizacje w czystym PHP (minimum!)

  • obsługa formularzy (walidacja, zapisywanie, etc.)
  • upload, download i zarządzanie plikami
  • mechanizm logowania i wylogowywania
  • etc.
  • czym są i do czego służą
  • omówienie dostępnych rodzajów baz danych
  • różnice między relacyjnymi i nierelacyjnymi bazami danych

6. Wstęp do baz danych

Agenda szkolenia

7. Podstawy pracy z relacyjnymi bazami danych

  • projektowanie bazy danych w UML (diagram ERD)
  • omówienie dostępnych silników baz danych
  • omówienie narzędzi do pracy z bazą danych (CLI, phpMyAdmin, MySQL Workbench)
  • implementacja projektu bazy danych z użyciem MySQL
  • tabele, rekordy, indeksy, typy danych, etc.
  • podstawy języka SQL (operacje DDL, DCL, DML, DQL)
  • relacje
  • złączenia tabel (INNER, LEFT, RIGHT)
  • podzapytania
  • transakcje
  • ćwiczenia, ćwiczenia, ćwiczenia...

Agenda szkolenia

8. PHP we współpracy z relacyjnymi bazami danych

  • wbudowane moduły do pracy z MySQL (mysqli, PDO)
  • przykłady realizacji zapytań SQL
  • kilka praktycznych realizacji z użyciem baz danych (rejestracja, logowanie, zapis formularza, etc.)
  • projektowanie bazy danych
  • omówienie dostępnych silników baz danych
  • omówienie narzędzi do pracy z bazą danych
  • implementacja projektu bazy danych z użyciem MongoDB
  • operacje CRUD

9. Podstawy pracy z nierelacyjnymi bazami danych

Agenda szkolenia

10. PHP we współpracy z nierelacyjnymi bazami danych (MongoDB)

  • konfiguracja połączenia z bazą danych MongoDB
  • przykłady realizacji zapytań do bazy
  • czym są frameworki i czym się różnią od bibliotek
  • najpopularniejsze frameworki PHP
  • realizacja w Laravel (!)
  • realizacja w Symfony (!)
  • realizacja w Nette (?)

11. Realizacja praktycznej aplikacji z użyciem topowych frameworków PHP

Plan harmonogramu

Dzień Temat
1 (pt) 1. Wstęp do PHP
2. Konfiguracja środowiska
2 (sob) 3. Podstawy języka PHP (ćwiczenia wspólne)
3 (pt) 4. Podstawy języka PHP (ćwiczenia indywidualne)
4 (sob) 4. Programowanie obiektowe
5 (pt) 4. Programowanie obiektowe
6 (sob) 4. Programowanie obiektowe
7 (pt) 4. Programowanie obiektowe
8 (sob) 5. Przykładowe realizacje w czystym PHP
9 (pt) 6. Wstęp do baz danych 
7. Podstawy pracy z relacyjnymi bazami danych
10 (sob) 7. Podstawy pracy z relacyjnymi bazami danych
11 (pt) 7. Podstawy pracy z relacyjnymi bazami danych
12 (sob) 7. Podstawy pracy z relacyjnymi bazami danych
8. PHP we współpracy z relacyjnymi bazami danych

Plan harmonogramu

Dzień Temat
13 (pt) 9. Podstawy pracy z nierelacyjnymi bazami danych
10. PHP we współpracy z nierelacyjnymi bazami danych (MongoDB)
14 (sob) 10. PHP we współpracy z nierelacyjnymi bazami danych (MongoDB)
15 (pt) 11. Realizacja praktycznej aplikacji z użyciem topowych frameworków PHP - Laravel
16 (sob) 11. Realizacja praktycznej aplikacji z użyciem topowych frameworków PHP - Laravel
17 (pt) 11. Realizacja praktycznej aplikacji z użyciem topowych frameworków PHP - Laravel
18 (sob) 11. Realizacja praktycznej aplikacji z użyciem topowych frameworków PHP - Laravel
19 (pt) 11. Realizacja praktycznej aplikacji z użyciem topowych frameworków PHP - Symfony
20 (sob) 11. Realizacja praktycznej aplikacji z użyciem topowych frameworków PHP - Symfony
21 (pt) 11. Realizacja praktycznej aplikacji z użyciem topowych frameworków PHP - Symfony
22 (sob) 11. Realizacja praktycznej aplikacji z użyciem topowych frameworków PHP - Symfony
23 (pt) 11. Realizacja praktycznej aplikacji z użyciem topowych frameworków PHP - Nette
24 (sob) 11. Realizacja praktycznej aplikacji z użyciem topowych frameworków PHP - Nette

1. Wstęp do PHP

1. Wstęp do PHP

Najważniejsze rzeczy, o których musisz wiedzieć:

  1. Język skryptowy, interpretowany
  2. Wykonywany po stronie serwera
  3. Wykorzystywany głównie do tworzenia aplikacji internetowych
  4. Ok 80% wszystkich serwisów internetowych używa lub jest w pełni napisana w PHP
  5. Niemalże wszystkie oferty pracy wymagają znajomości któregoś z frameworków

Więcej na temat historii PHP znajdziesz m.in. na Wikipedii ;)

2. Konfiguracja środowiska

2. Konfiguracja środowiska

Konfiguracja platformy AMP:

A - Apache

M - MySQL (MariaDB)

P - PHP

WAMP Server

Proste rozwiązania dla Windows:

XAMPP

2. Konfiguracja środowiska

Instalacja XAMPP - najważniejsze kroki

Instalacja tylko potrzebnych komponentów

2. Konfiguracja środowiska

Instalacja XAMPP - najważniejsze kroki

Instalacja tylko potrzebnych komponentów

2. Konfiguracja środowiska

Instalacja XAMPP - najważniejsze kroki

Wybór katalogu instalacji

Wybierając katalog instalacji pamiętaj:

  1. W tym katalogu będzie się znajdowały wszystkie aplikacje, które będziesz pisał - a zatem na dysku/partycji powinno być dużo miejsca (u mnie ten katalog zajmuje ok.  80GB)
  2. Zapamiętaj jego lokalizację - często będziemy tam pracować ;)

2. Konfiguracja środowiska

Instalacja XAMPP - najważniejsze kroki

Stop reklamom!

to nie będzie nam potrzebne ;)

2. Konfiguracja środowiska

Instalacja XAMPP - najważniejsze kroki

XAMPP Control Panel

2. Konfiguracja środowiska

Instalacja XAMPP - najważniejsze kroki

Odpalamy i odblokowujemy usługę Apache

Krok 1

Krok 2

2. Konfiguracja środowiska

Instalacja XAMPP - najważniejsze kroki

Odpalamy i odblokowujemy usługę MySQL

Krok 1

Krok 2

2. Konfiguracja środowiska

Instalacja XAMPP - najważniejsze kroki

Pora na test

W przeglądarce wpisz adres:

http://localhost

lub

http://127.0.0.1

2. Konfiguracja środowiska

Konfiguracja PHP CLI

Domyślnie PHP nie jest dostępne z poziomu terminala

2. Konfiguracja środowiska

Konfiguracja PHP CLI

Dodanie ścieżki do PHP w zmiennej środowiskowej PATH

Wyszukaj

"Ustawienia systemu" 

Ścieżka instalacyjna XAMPP'a

2. Konfiguracja środowiska

Konfiguracja PHP CLI

I teraz mamy dostęp do interpretera PHP w terminalu

Pamiętaj, że po zmianie zmiennej środowiskowej PATH należy ponownie uruchomić terminal!

2. Konfiguracja środowiska

2. Konfiguracja środowiska

Wybór edytorów

Sublime Text 3

Edytor podstawowy - do szybkich zmian/prostych skryptów

Edytor główny - do dużych, złożonych projektów

Atom

NetBeans

PhpStorm

Visual Studio Code

Eclipse PDT

2. Konfiguracja środowiska

A teraz czas na pierwszy "Hello world" ;)

3. Podstawy języka PHP

Backend Developer Bootcamp

By Maciej Żukiewicz

Backend Developer Bootcamp

  • 220