Dynamika stron na każde żądanie

Język PHP służy do tworzenia dynamicznych stron WWW po stronie serwera. Rozwija się jako projekt open source.

Język PHP służy do tworzenia dynamicznych stron WWW po stronie serwera. Rozwija się jako projekt open source.

Początki PHP sięgają roku 1994. Pierwsza wersja powstała jako narzędzie, które Rasmusowi Lerdorfowi, twórcy PHP, służyło do analizowania, kto przegląda jego życiorys umieszczony na stronach internetowych. Dostępnego w sieci pakietu Personal Home Page Tools zaczęli wkrótce używać inni internauci i w połowie 1995 r. powstał PHP/FI 2.0 - zestaw, który zawierał prosty interpreter formularzy i umożliwiał łatwą współpracę z darmową bazą danych mSQL.

W połowie 1997 r. rozpoczęto prace nad PHP 3.0. Ta wersja PHP zyskała solidne podstawy teoretyczne m.in. w pełni zdefiniowano gramatykę formalną języka. Została też staranniej zaprojektowana. Wersja 2.0 powstawała jako zlepek wielu rozwiązań, które mogły być przydatne programistom tworzącym dynamiczne strony WWW. W połowie br. powstała czwarta wersja PHP, oparta na nowym motorze przetwarzającym skrypty - Zend.

Zasady licencjonowania PHP są znacznie mniej restrykcyjne niż wersja 3. Aby rozpowszechniać PHP 3 z produktem komercyjnym, niezbędna była pisemna zgoda autorów. Ta klauzula została usunięta z licencji PHP 4.

Wszystkiego po trochę

PHP różni się od technologii JSP i ASP. W Java Server Pages do tworzenia dynamicznych stron jest używany język Java. W przypadku Active Server Pages programiści dysponują środowiskiem, które udostępnia pewne obiekty realizujące operacje związane z obsługą plików cookies, połączeniem do bazy danych itp. Język, w jakim jest programowana strona, zależy od ustawień w nagłówku. Może to być JScript, VBScript, Perl i wiele innych.

PHP od początku był opracowywany jako język do tworzenia dynamicznych stron. Wielu programistów uważa go za najwygodniejsze narzędzie. Koncepcja PHP jest oparta na zapożyczeniach z C, Perla i Javy. Składnia przypomina C, co pozwala szybko nauczyć się tego języka nawet początkującym programistom. Wyrażenia regularne są takie same, jak stosowane w języku Perl. Z Javy zaczerpnięto mechanizmy obiektowe.

Zmiany wersji czwartej

W PHP 4.0 zmieniono podstawowy mechanizm przetwarzania stron. Wcześniej strona była wczytywana i podczas jej analizy były wykonywane poszczególne operacje. Nowa wersja PHP korzysta z maszyny Zend, która najpierw wstępnie kompiluje kod, potem go wykonuje, tworząc ostateczną postać strony (podobny mechanizm ma być dostępny w ASP+). To znacznie przyspiesza wysyłanie stron do wielu użytkowników jednocześnie.

PHP może działać w dwóch trybach: jako moduł współpracujący z konkretnym serwerem bazodanowym bądź osobny program, uruchamiany jako skrypt CGI. Wersja 4.0 może wykorzystywać wielowątkowe serwery WWW. Poprzednia 3.0 nie miała tej właściwości (thread-safe), co sprawiało, że w wielu przypadkach PHP stawał się wąskim gardłem. W architekturze 4.0 została zdefiniowana specjalna warstwa abstrakcji (SAPI, Server API), odpowiadająca wirtualnemu serwerowi WWW, która komunikuje się z konkretnym serwerem we właściwy dla niego sposób za pośrednictwem ISAPI z IIS/Zeus (wsparcie dla Zeusa jest testowane) czy bezpośrednio z serwerem Apache.

Język zyskał kilka mechaniz-mów, które sprawiły, że stał się jeszcze wygodniejszy. Po pierwsze, w motor Zend wbudowano mechanizm zliczania referencji. W ten sposób programista ma do dyspozycji swego rodzaju automatyczny "odśmiecacz" pamięci. To z kolei powoduje, że strony uruchamiane w PHP 4.0 mają mniejsze wymagania pamięciowe. Można też przypisywać zmiennym referencje do innych zmiennych. Warto podkreślić, że w składni języka PHP istnieją specjalne operatory, pozwalające rozróżnić przypisywanie referencji i wartości.

W nowej wersji dobrze rozwiązano wywoływanie metod w Javie. Możliwy jest dostęp do zewnętrznych modułów napisanych w tym języku.

Dostęp do baz danych

Od początku integralną częścią PHP były mechanizmy dostępu do baz danych. Brak jest jednak uniwersalnego modułu, który umożliwiałby dostęp do każdej bazy. Zamiast tego, istnieją spec- jalne biblioteki, zapewniające wydajną obsługę poszczególnych baz. W motor PHP może być wkompilowana obsługa mSQL, mySQL, PostgreSQL itp.

Każdy z interfejsów API umożliwiających dostęp do danych opiera się na niemal identycznej koncepcji. Funkcje mają inne nazwy, ale dla wszystkich baz dostępny jest mechanizm zwracający zestaw rekordów jako tablicę.

Programiści mają również do dyspozycji interfejs zgodny z ADO, nazywany ADODB. Do PHP częściowo przeniesiono koncepcję obiektów ADO z Windows, sposób łączenia z bazą czy mechanizmy pracy z rekordami/polami w bazie. Autorzy tego rozszerzenia opracowali specyfikację sterowników, pozwalających na obsługę różnych baz. Obecnie są dostępne rozwiązania m.in. dla MS SQL, Oracle, Sybase lub ODBC.

Rozszerzenia języka

W APS czy JSP można łatwo skorzystać z zewnętrznych modułów, które implementują dodatkowe funkcje przydat- ne programistom. Moduły te w przypadku ASP to prawie dowolne obiekty COM, w przypadku JSP - "ziarnka" Javy. Inaczej jest w PHP.

W wersji 4.0 bardzo dokładnie określono specyfikację tworzenia rozszerzeń. Można tworzyć moduły, które stają się de facto częścią PHP i pozwalają programiście na wykorzystanie dodatkowych funkcji, np. szyf-rowanie i obsługę XML. Niektóre z tych modułów są integralną częścią dystrybucji PHP, inne można znaleźć w Internecie.

Na uwagę zasługują dwa moduły. Jeden pozwala generować dynamicznie strony zgodne ze standardem Shockwave Flash. W ten sposób serwer z wbudowanym motorem PHP może tworzyć animowane strony, które na komputerze klienta będą widoczne jak strony Flash. Dostępne są funkcje do tworzenia grafiki wektorowej, translacje i inne operacje na macierzach. Drugi moduł pozwala tworzyć pliki w formacie PDF. Dzięki temu, posługując się PHP, możliwe jest stworzenie trzech wersji witryny. Jedna, klasyczna, gdzie powstaje plik HTML, druga - bardziej rozbudowana, we Falshu, trzecia - oferująca wydruk w formacie PDF.

Braki

Niestety, dla PHP nie ma zintegrowanego środowiska programistycznego. Istnieje wiele edytorów, które np. wyróżniają kolorami składnię PHP, ale w przypadku bardzo złożonych witryn może to być niewystarczające ułatwienie.

PHP nie ma jeszcze wygodnego debuggera, który pozwoliłby prześledzić krok po kroku działanie strony. Programista ma do dyspozycji kilka funkcji, które mogą być wykorzystywane do zapisywania błędów do pliku lub wyświetlania ich na stronie WWW. Opracowano protokół pozwalający na komunikowanie się z procedurami wbudowanymi w PHP, które mogą być wykorzystane przez debugger. Firma Zend pracuje nad pełnoekranowym narzędziem do śledzenia stron PHP. Jednak obsługa błędów w ColdFusion czy ASP jest wygodniejsza.

--------------------------------------------------------------------------------

Dodatkowe informacje dostępne są na stronie http://pl.php.net/

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200