W ramach krótkiego podsumowania ostatnich spotkań z cyklu „Women in Technology” postanowiłem zebrać w jednym miejscu większość wskazówek / wytycznych dotyczących rozpoczęcia nauki PHP, a przy okazji zaproponować pomoc z mojej strony. Jak argumentowałem w jednym z poprzednich wpisów, mimo ogromnego zamieszania w tej chwili wokółJavaScript, PHP jest językiem, który:
- jest stosunkowo prosty dla początkujących i osób, które nigdy nie miały styczności z programowaniem – dobrze wprowadza w świat programowania aplikacji internetowych;
- jego przyszłość jest bardzo stabilna (PHP w wersji 7.X wprowadza wiele udogodnień i ciekawych zmian, a na horyzoncie jest już wersja 8);
- na rynku jest duże zapotrzebowanie na developerów PHP – duża ilość ofert pracy, a stawki coraz bardziej atrakcyjne.
Podstawy protokołu HTTP
Moim zdaniem naukę programowania aplikacji internetowych powinno rozpocząć się od poznania podstaw protokoołu HTTP, jako iż to na tym protokole oparta jest komunikacja przeglądarka (klient) – nasza aplikacja (serwer). Niestety często spotykam się z sytuacją, gdzie Developerzey po kilku miesiącach pracy w dalszym ciągu nie są świadomi tego co tak naprawdę dzieje się w momencie, kiedy przeglądarka wysyła żądanie i odbiera odpowiedź z serwera.
Warto na tym etapie wiedzieć, że:
- protokół HTTP jest protokołem bezstanowym – każde kolejne żądanie nie wie nic o żądaniach, które je poprzedzały;
- komunikacja odbywa się przez odpowiednio przygotowane komunikaty tekstowe w których wyróżniamy 3 sekcje:
- 1 sekcja to status odpowiedzi (ang. initial response line);
- w 2 sekcji znajdują się nagłówki (ang. headers);
- a trzecia zawiera treść odpowiedzi (ang. content body) i jest to część, którą widzimy bezpośrednio w przeglądarce najczęściej w postaci kodu HTML;
- wpisując adres w przeglądarce wysyłamy żądanie HTTP (ang. Request) – komunikat tekstowy generowany przez przeglądarkę. Wraz z żądaniem przeglądarka wysyła dodatkowe informacje w postaci nagłówków, np: infomrację o przeglądarce z której korzystamy;
- serwer generuje odpowiedż (ang. Response): wykonuje kod PHP, łączy się z bazą danych lub zewnętrznymi usługami, jeżeli jest to niezbędne do wygenerowania odpowiedzi, np w postaci kodu HTML. Na tej podsatwie przeglądarka renderuje / wyświetla nam odpowiednią stronę;
Dobra książka
Tutaj spotkać się można z bardzo różnymi opiniami, osobiście uważam, iż dobra książka na początku nauki to podstawa. Pozwala lepiej zrozumieć poszczególne zagadnienia i usystematyzować wiedzę. Tutriale dostępne w sieci często skupiają się na realizacji konkretnego zadania i pokazują najlepszą / najkrótszą drogą do jego realizacji. Niestety większość z nich jest już dość przestarzała i nieaktualna. Książka w tej sytuacji przekaże wam odpowiednią teorię, wprowadzi w problem i pomoże go zrozumieć. Osobiście polecam ksiązki angielskojęzyczne – język angielski jest w programowaniu niezbędny, większość dokumentacji jest w tym języku i im szybciej zaczniesz się nim posługiwać, tym lepiej. jeżeli jednak nie czujesz się na siłach i wolisz książki w języku Polskim to bez problemu można znależć aktualne i interesujące pozycje (niestety najnowsze pozycję nie będą dostępne ze względu na czas potrzebny na ich przetłumaczenie). Kilka słów na temat książek, które polecam napisałem tutaj. Dla kompletnie początkujących polecam: PHP i MySQL. dla wszystkich – która wprowadza w PHP w bardzo przystępny sposób.
Środowisko + IDE
By móc pisać proste skrypty w PHP do niedawna potrzebny był cały stack: LAMP, WAMP, XAMP lub tym podobny zestaw. W tym momencie na początku nauki programowania, nie ma potrzeby nic instalować – możecie wykorzystać gotowe rozwiązania online, które odrazu pozwolą Wam skupić się na zabawie z kodem i na nauce programowania. Osobiście często korzystam z c9.io, które posiada bardzo intuicyjny edytor, dostęp do shella i możliwość podglądu projektu w dedykowanej domenie.
Jeśli jednak wolicie wszystko mieć lokalnie na własnej maszynie polecam darmowego NetBeansa / Eclipse (na dalszym etapie pracy są jednak mało wydajne), który ma praktycznie wszystko czego potrzebujecie. Dla osób, które lubią sobie komplikować naukę już na samym początku wystarczy zwykły edytor tekstowy.
Shell
Nie wiele osób korzysta z takiej możliwości ale w PHP równie dobrze możemy pisać / weryfikować proste skrypt z poziomu interaktywnej konsoli, która bardzo często sie przydaje. Wystarczy wprowadzić polecenie: php -a by uruchomić konsolę PHP do której możemy wprowadzać nasz kod:
$ php -a Interactive mode enabled php > echo "Hello World!"; Hello World! php >Hello World
Naukę PHP, podobnie jak innych języków rozpoczynamy od prostego, klasycznego skryptu, który spowoduje wyświetlenie na ekranie naszego komputera tekstu: „Hello World!”. W swoim ulubionym edytorze należy utworzyć nowy pusty plik PHP, nazwać go, np: index.php i wprowadzić do niego następujący kod:
<!--?php echo "Hello World!"; ?-->Następnie w zależności od wybranego wcześniej rozwiązania, należy np: uruchomić serwer lokalny, bądź też serwer dołączony wraz z PHP, a następnie w przeglądarce wyświetlić resultat działania naszego skryptu. Na początku zabawy można również skorzystać z prostych narzędzi takich jak: ideone.com czy phpio.net – tak naprawdę istotne jest to by nie zniechęcić się do pisania kodu już na etapie konfigurowania środowiska.
Podstawy składni
Nie zamierzam tutaj kopiować ani interpretować dokumentacji, a jedynie wskazać adekwatny kierunek: PHP: The Right Way – pierwsze kroki. Znajdziecie tam wszystkie niezbędne informacje: od formatowania kodu, przez instrukcje sterujące, po programowanie obiektowe i zarządzanie zależnościami w kodzie. Przedstawione tam materiały absolutnie nie wyczerpują tematu, a opisują krótko istotę problemu i wskazują artykuły / dokumentację, gdzie znależć możemy bardziej szczegółowe informacje.
Chciałbym zaznaczyć, iż cały czas warto jest znać zarówno PHP w wersji 5.X jak i 7.X. Pracodawcy w swoich ofertach przede wszystkim wymagają znajomości najnowsej wersji PHP ale w dalszym ciągu dużo jest projektów przy których przyjedzie wam pracować w PHP 5.X.
Co dalej?
Nie ukrywam, iż przygotowanie samego wprowadzenia zajęło mi dłuższą chwilę dlatego w tym momencie zastanawiam się nad najbardziej optymalną i wygodną formą przygotowania kolejnych części tutoriali. Jednym z głównym powodów dla krótych porzuciłem idee warsztatów w ramach „Women in Technology” było bardzo wąskie grono odbiorców w stosunku do czasu jaki nalży poświęcić na takie zajęcia. Dodatko warsztaty nie były w żaden sposób nagrywane przez co dodatkowo traciły na wartości – brak możliwości powrotu do omawianego przykładu / zagadnienia, brak możliwości obejrzenia warsztatów w sytuacji gdy ktoś nie mógł w nich uczestniczych itp. Powodów jest wiele. Jako dużo bardziej przemyślaną alternatywę, szanując swój czas, mogę zaproponować formułę krótkich filmów na YouTube w których mógłbym omawiać / pokazywać / opisywać konkretne zagadnienia dotyczące podstaw (i nie tylko) tworzenia prostych aplikacji w PHP. Sama formuła udostępnianych materiałów jest do doprecyzowania ale nieukrywam, iż liczę na waszą pomoc w kwestii zakresu poruszonego materiału – jeżeli oczywiście pomysł znajdzie grupę docelową.
Kiedyś już próbowałem swoich sił w podobnym temacie w ramach „Akademii Kodu” – jedne z pierwszych VIDEO możecie zobaczyć w kilku częsiowym tutorialu z PHP i Smyfony2:
Kolejne części serii dostępne są na kanale Akademii Kodu lub po kliknięciu w video.
Inne artykuły, które mogę cie zainteresować:
- Czy warto uczyć się PHP?
Masz jakieś pytania? Potrzebujesz pomocy / konsultacji / szkolenia lub po prostu chcesz się ze mną skontaktować? Skorzystaj z formularza kontaktowego – odpowiadam na wszystkie wiadomości!