Wiem, że w Internecie jest wiele kursów PHP ale ten wpis powstał jako dopełnienie kursu obiektowego PHP 8, który mam zamiar regularnie publikować na tym blogu. Mimo dużej popularności kursów wideo i wielu małych stron (podzielonych na wiele mniejszych podstron) postanowiłem opublikować ten kurs jako wpis. Taką formę kursu mamy w różnego rodzaju książkach i myślę, że to będzie wygodne zarówno dla mnie jak i dla osób uczących się z moich materiałów.

Na początek mała ciekawostka. Wideotutoriale i filmy – choć mogą wydawać się atrakcyjniejsze – nie są naturalną metodą nauki języka programowania. Zauważ, że osoby, które jako pierwsze stworzyły wideo kurs uczyły się nie z filmów tylko z dokumentacji. Źródłem pierwotnych i najpewniejszych informacji o języku programowania zawsze jest pisemna i oficjalna dokumentacja. Nauka programowania poprzez czytanie – czy to z książki czy ze strony internetowej – naśladuje ten profesjonalny proces, ponieważ programista też wytwarza kod – tekst. Jako zawodowy programista też będziesz łatwiej się adaptować do nowych problemów, bo stack-overflow ma formę forum a nie wideo-porad 🙂

Spis treści – kurs PHP

Ósemka to okrągła liczba w świecie Informatyki, dlatego kurs ten będzie podzielony na 8 rozdziałów.

  1. PHP – podstawy programowania < jesteś tutaj
  2. Programowanie obiektowe w PHP 
  3. Bazy danych SQL – PDO API
  4. Interfejsy API i integracje
  5. Wzorce projektowe i frameworki
  6. Wydajność
  7. Skalowalność
  8. Bezpieczeństwo

Co to jest PHP?

PHP to język przy pomocy którego możemy pisać skrypty po stronie serwera. Język PHP służy do pisania stron i aplikacji internetowych. Jeżeli chcemy stworzyć grę na PC lub zaawansowany program do przetwarzania danych w czasie rzeczywistym to PHP nie jest dobrym wyborem. Jeżeli zaś chcemy stworzyć coś typowo „internetowego” np. aplikację lub grę przeglądarkową to PHP jest wtedy bardzo dobrym wyborem, choć do zapewnienia atrakcyjnego interfejsu będą potrzebne także inne technologie jak CSS i JavaScript..

PHP to najpopularniejszy język w świecie aplikacji Internetowych. To przy jego pomocy stworzono aplikacje: Facebook, Wikipedia, WordPress, Flickr czy serwis Tumblr. Aktualną wersją PHP jest wersja ósma, która miała premierę w 2020 roku. Zaletą PHP jest przede wszystkim:

  • niski próg wejścia w programowanie, bo ma bardzo łatwą i przyjemną składnię,
  • ogromną popularność co daje nam dostęp do wielu materiałów online o tym języku i wsparcie ze strony wielu dużych przedsiębiorstw,
  • niskie koszty obsługi stworzonych aplikacji (serwery PHP są najtańsze w porównaniu z innymi technologiami)

Więcej o zaletach PHP 8 dowiesz się z artykułu czy warto uczyć się PHP?

Przykładowe narzędzia potrzebne do programowania PHP

  • dowolny system operacyjny,
  • dowolna przeglądarka internetowa (Chrome, Firefox, Safari),
  • dowolny edytor kodu (Notepad++, Visual Studio Code, Brackets itd…)
  • serwer PHP

Aby mieć serwer PHP na własnym komputerze, zazwyczaj instaluje się pakiet XAMPP, który uruchamia serwer lokalnie. Wpisz XAMPP w wyszukiwarce i zainstaluj to. Jego uruchomienie, to nic skomplikowanego wystarczy kliknąć dwa przyciski Start i wpisać w przeglądarce localhost

Szybka konfiguracja i uruchomienie serwera XAMPP

Po uruchomieniu aplikacji i zaakceptowaniu wszelkich wyjątków w zaporach i antywirusach klikamy na przycisk Config (1).

Wybieramy Apache (httpd.conf) i szukamy dwóch linijek:

DocumentRoot "G:/jakis_folder"
<<Directory "G:/jakis_folder">

To tutaj należy umieszczać wszelkie skrypty tworzone w ramach tego tutorialu, właściwego kursu PHP lub przyszłych projektów komercyjnych. Jeżeli chcesz możesz sobie zmienić tę ścieżkę na bardziej przyjazną (np. folder na pulpicie) to możesz to tutaj zrobić. W systemie Windows będzie to na przykład: C:\Users\User\Desktop\kursphp. Jeżeli nie zmieniono ścieżki DocumentRoot usuń wszystkie śmieci które znajdują się w folderze htdocs. Kliknij w Start (2) i w przeglądarce wpisz localhost.

Tworzymy pierwszy skrypt w PHP

Utwórz plik index.php i wpisz w nim:

<?php
echo "Witaj Świecie!";

Odśwież stronę w przeglądarce. Tym sposobem stworzyliśmy pierwszy program w PHP. Jego funkcjonalność ogranicza się do wyświetlenia tekstu no ale od czegoś trzeba zacząć 😉

PHP tak jak inne języki pozwala na wykonywania trzech bardzo podstawowych operacji w programowaniu a są nimi:

  • przypisanie,
  • instrukcje warunkowe
  • pętle while.

Po opanowaniu tych trzech rzeczy można powiedzieć, że potrafi się programować, bo nawet najbardziej skomplikowane aplikacje można sprowadzić do tych trzech działań.

Składnia języka PHP

Aby kod w pliku PHP mógł być interpretowany jako kod PHP należy zaznaczyć to otwierając tag <?php można go zamknąć za pomocą ?>. Jeżeli nie będzie tagu otwierającego w pliku PHP kod będzie interpretowany jako kod HTML. Można wielokrotnie „przekładać” kod HTML z kodem PHP np:

<html>
<head>
<title><?php echo $title; ?></title>
</head>
<body>
<?php 
  echo $the_content(); 
?>
</body>
</html>

Ostatni tag zamykający nie jest wymagany a jego pomijanie jest wręcz zalecane.

Każdą pojedynczą instrukcję oddziela średnik;

/* Tutaj jest komentarz
może on mieć wiele linii */

// A to jest komentarz w jednej linii

Nazwy zmiennych rozpoczynamy od znaku $ i kolejnym znakiem w nazwie nie może być cyfra lub inny znak specjalny różny od podkreślenia _

Stałe w PHP możemy deklarować za pomocą wyrażenia:

define("NAZWA", 500);

Wywołujemy ją bardzo wygodnie:

echo NAZWA;

Operatory

Operatory to symbole, które jak sama nazwa wskazuje dokonują operacji.

 $liczba = 100;

Przypisaliśmy liczbę 100 do zmiennej $liczba. Możemy to teraz wyświetlić:

echo $liczba;

lub wykonać jakieś obliczenia:

$liczba = $liczba + 50;
echo $liczba;

Operator przypisania = już poznaliśmy. Wyróżniamy także operatory arytmetyczne, które wykonują działania na liczbach:

  • + dodawanie
  • – odejmowanie
  • * mnożenie
  • / dzielenie
  • % modulo, czyli reszta z dzielenia

W używaniu operatorów arytmetycznych obowiązuje kolejność wykonywania działań jak w klasycznej matematyce. Mimo to dobrą praktyką jest umieszczać poszczególne działania w nawiasach, np:

$c = ($a * $b) + 5

Jest to „bezpieczniejszy” sposób zapisu, który dodatkowo zwiększa czytelność kodu.

Operatory porównania pozwalają na tworzenie wyrażeń logicznych mających na celu porównać dwie wartości.

  • $a == $b zwraca prawdę jeżeli $a i $b przechowują tę samą wartość
  • $a === $b zwraca prawdę jeżeli $a i $b przechowują tę samą wartość i są tego samego typu.
  • $a != $b zwraca prawdę, jeżeli wartości nie są równe
  • $a !== $b zwraca prawdę jeżeli $a i $b przechowują różną wartość lub są różnego typu.
  • $a < $b zwraca prawdę jeżeli $a jest mniejsze
  • $a > $b zwraca prawdę jeżeli $a jest mniejsze
  • $a <= $b zwraca prawdę jeżeli $a jest mniejsze
  • $a >= $b zwraca prawdę jeżeli $a jest mniejsze

Zwróć uwagę, że w dwóch ostatnich przykładach najpierw mamy „dzióbek”.

Istnieją też operatory logiczne AND, OR, XOR i NOT:

  • $a && $b to odpowiednik logicznego $a i $b
  • $a || $b to odpowiednik logicznego $a lub $b
  • !$a to odpowiednik logicznego nie $a
  • $a xor $b to odpowiednik xor

Przykłady i wyjaśnienia: https://www.php.net/manual/en/language.operators.logical.php

Istnieją jeszcze operatory inkrementacji, ich zachowanie jest podobne jak w C++. Załóżmy że $a jest równe 1. Wtedy:

  • echo $a zwróci 1, ponowne wywołanie echo $a zwróci także 1,
  • echo $a++ zwróci 1 a kolejne wywołanie echo $a zwróci 2
  • echo ++$a zwróci 2 a kolejne wywołanie echo $a zwróci 2
  • echo $a– zwróci 1 ale kolejne wywołanie echo $a zwróci 0
  • echo –$a zwróci 0 a kolejne wywołanie echo $a zwróci 0

Przykłady i wyjaśnienia: https://www.php.net/manual/en/language.operators.increment.php

Zwiekszenie wartości zmiennej o jeden można także wykonać za pomocą oczywistej instrukcji: $a = $a + 1

Łączenie ciągów robimy za pomocą kropki, przykłaodowo:

$imie = "Jan";
$nazwisko = "Kowalski";
echo "Imię i nazwisko: ".$imie." ".$nazwisko;

Wyświetli nam:

Imię i nazwisko: Jan Kowalski

W PHP można jeszcze inaczej wyświetlać zawartość zmiennych w tekście. Przy użyciu cudzysłowów podwójnych po prostu posługujemy się nazwą zmiennej np:

echo "Witaj $imie";

Instrukcje warunkowe

Instrukcje warunkowe to struktury, który wykonują kod po spełnieniu warunku a ściślej: kiedy wyrażenie logiczne podane w nawiasie ma wartość logiczną true. W konstrukcji if umieszczonego w nawiasie po słowie kluczowym.

if ($zmienna == 5){
   echo "Twoja zmienna jest równa 5";
}
else{
   echo "Twoja zmienna nie jest równa 5
}

Istnieje jeszcze struktura switch case:

switch ($i) {
   case 0:
      echo "i jest równe 0";
      break;
  case 1:
      echo "i jest równe 1";
      break;
  case 2:
      echo "i jest równe 2";
      break;
 }

Pętle

Pętla for:

 for ($i = 1; $i <= 5; $i++) {
    echo $i;
}

Wyświetli nam: 12345

Pętla while:

 $i = 1;
while ($i <= 5) {
   echo $i; 
   $i++;
} 

Także wyświetli nam: 12345

Wewnątrz nawiasów klamrowych może być dowolny kod. Np. jeżeli zamiast echo $i damy: echo ” – „.$i.” – „;

Wyświetli nam się: – 1 – – 2 – – 3 – – 4 – – 5 –

Funkcje i procedury

Funkcje to konstrukcja do tworzenia sparametryzowanych bloków kodu wielokrotnego przeznaczenia. Przykładowo, w przypadku chęci obliczenia sumy możemy w wielu miejscach „implementować” to działanie.

echo "Suma liczb: 5 i 7 to: "; 
$suma = 5 + 7;
echo $suma;

Takie działania niepotrzebnie generują dodatkowe zmienne, a przy kilku takich sumowaniach kod niepotrzebnie się rozrasta. Możemy stworzyć funkcję która generuje tego typu komunikat dla dwóch liczb:

function suma($a, $b){
   echo "Suma liczb: ".$a." i ".$b." to: ";
   $c = $a + $b;
   return $c;
}

Teraz, w dowolnym miejscu programu możemy wywołać funkcję:

echo suma(5, 7);

PHP nie ma osobnego słowa kluczowego dla procedur, można za to stworzyć funkcję, która poprostu nie pobier argumentów:

function hello (){
   echo "Hello World!";
} 

Tablice i operacje na tablicach

Tablica (ang. array) to zmienna mogą zawierać wiele wartości. Można stworzyć tablicę z nazwami kolorów:

$kolory = array("czerwony", "pomarańczowy", "żółty", "zielony", "niebieski", "granatowy", "fioletowy");

Możemy teraz zdobyć nazwę trzeciego koloru za pomocą poniższej instrukcji. W nawiasie kwadratowym znajduje się indeks – jak widać liczone są one od zera.

echo $kolory[2];

Wyświetli nam napis żółty.

Do takiej tablicy można dodawać kolejne elementy za pomocą takich przypisań:

$kolory[] = "złoty";

Możemy zmieniać wartości posługując się indeksami:

$kolory[3] = "seledynowy";

Istnieje też coś takiego jak tablica asocjacyjna. Zawiera ona pary klucz – wartość np:

$post["nazwa"] = "Kurs PHP";
$post["autor"] = "Paweł Mansfeld";
$post["data"] = "02.01.2021";

W przypadku tablic możemy wykonywać wiele operacji automatyzujących ich przetwarzanie. Przykładem może być pętla foreach:

foreach($kolory as $klucz => $wartosc){
   echo "Indeks ".$klucz.", wartość: ".$wartosc."<br>";
}

/* Działa to też w tablicach asocjacyjnych */

foreach($post as $klucz => $wartosc){
   echo "Indeks ".$klucz.", wartość: ".$wartosc."<br>";
}

Tablice można sortować, transponować i obcinać. W dokumentacji znajdują się wszystkie operacje jakie możemy wykorzystać wraz z opisami i przykładami: https://www.php.net/manual/en/ref.array.php

Operacje na ciągach znaków

Znajomość operacji na ciągach znaków jest bardzo przydatną umiejętnością, która pozwoli tworzyć proste i przydatne algorytmy.

  • trim(” Kurs PHP „); zwróci ciąg obcinając spacje,
  • mb_substr(’Kurs PHP', 0, 4); zwróci tylko napis „Kurs”,
  • str_replace(’Kurs', 'Nauka', 'Kurs PHP'); podmienia napotkane wyrażenia,
  • strpos(’Kurs PHP', 'PHP'); – zwróci pozycję napotkanego ciągu w innym ciągu ten przykład zwróci 5. W przypadku braku wystąpienia zwraca fałsz.

Zobacz więcej ciekawych funkcji do operacji na ciągach znaków: https://www.php.net/manual/en/ref.strings.php

Debugowanie kodu PHP

Na tym etapie nie warto zawracać sobie głowy rozbudowanymi środowiskami IDE. Dla początkującego programisty PHP wystarczy przeglądarka i dwie linijki na początku programu:

error_reporting(E_ALL);
ini_set('display_errors', '1');

Spowoduje to wyświetlanie się błędów i ostrzeżeń zamiast mało szczegółowego błędu: 500 Internal Server Error.

W przypadku błędów logicznych i zabawy z rekurencją przydatną funkcją może być die(), która kończy działanie programu i zwraca zawartość w nawiasie np.

die("test");

Dopiero kiedy bardziej poznasz i polubisz PHP warto instalować rozbudowane IDE z przeróżnymi pluginami do PHP.

Podsumowanie

Tyle chyba wystarczy na sam początek. Teraz możesz przejść do kursu obiektowego PHP. Artykuł będzie stale aktualizowany w miarę popularności / liczby odsłon.

Oceń artykuł na temat: Kurs PHP 8 – podstawy programowania
Średnia : 4.9 , Maksymalnie : 5 , Głosów : 7