PHPięć

Język PHP przebył długą drogę, przeobrażając się z prostego interpretera skryptów w nowoczesny język prawie obiektowy.

Język PHP przebył długą drogę, przeobrażając się z prostego interpretera skryptów w nowoczesny język prawie obiektowy.

W PHP 5.0 wprowadzono wiele zmian, które z jednej strony poprawiają wydajność systemu, a z drugiej rozszerzają jego możliwości. Jednocześnie zadbano, aby większość już istniejącego kodu uruchamiała się bez problemów. W efekcie migracja do nowego PHP przynosi prawie same korzyści. Najważniejszą zmianą w PHP 5.0 jest wykorzystanie jądra Zend Engine II, co pozwoliło wprowadzić do języka nowy model obiektowy.

Obecnie obiekty w PHP 5.0 zachowują się w sposób znany z innych języków programowania. Nie są już zatem typami prostymi przekazywanymi poprzez wartość, lecz strukturami identyfikowanymi za pomocą zmiennych referencyjnych. W związku z nowymi cechami obiektów, obok dostępnych już wcześniej konstruktorów, wprowadzono również destruktory oraz możliwość klonowania obiektów, a zagadnienie ich porównywania nabrało nowego znaczenia. Oddzielne operatory stosuje się bowiem do stwierdzenia zgodności klas i wartości ich atrybutów oraz sprawdzenia, czy dwie zmienne wskazują tę samą instancję klasy.

Obiekty w PHP 5.0 mogą mieć (obok zwykłych atrybutów i metod) statyczne atrybuty, statyczne funkcje oraz stałe klasowe. Możliwe jest ponadto przeciążanie metod i tworzenie interfejsów oraz klas abstrakcyjnych, które wymuszają implementację metod w klasach potomnych. Jednocześnie jest mechanizm chroniący klasy, związany z wykorzystaniem modyfikatora final, który blokuje możliwość zastąpienia w klasie potomnej wybranych metod. Są również inne standardowe modyfikatory dostępu, ograniczające widoczność atrybutów i metod: domyślny public oraz private i protected.

W PHP 5.0 wprowadzony został też znany z innych języków model obsługi wyjątków za pomocą bloków try i catch, iteracyjny dostęp do atrybutów obiektów za pomocą instrukcji foreach oraz mechanizm reflection, dostarczający informacji o strukturze klas, interfejsów, funkcji, metod, a także komentarzy dokumentujących kod.

Małą rewolucją jest też wbudowana obsługa SQLite w miejsce dotychczasowej bazy MySQL, która jest obecnie obsługiwana poprzez zewnętrzny moduł. Oprócz rozwiązania problemów licencyjnych SQLite daje też dodatkowe korzyści. SQLite jest bowiem bazą typu embeddable, co oznacza, że zapisuje dane bezpośrednio w plikach bazy, nie wymaga oddzielnego serwera i jest generalnie szybsza.


Zobacz również