Professional Documents
Culture Documents
8 komponentw dla
kreatywnych webmasterw
Autor: Jono Bacon
Tumaczenie: Piotr Pilch
ISBN: 978-83-246-0957-4
Tytu oryginau: Practical PHP and MySQL(R):
Building Eight Dynamic Web Applications
Format: B5, stron: 528
Wydawnictwo Helion
ul. Kociuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Spis treci
O autorze .....................................................................................9
Przedmowa ................................................................................11
Wprowadzenie ..........................................................................13
Rozdzia 1. Nowa metodyka ........................................................................19
Technologia ........................................................................................................20
Dziaanie dynamicznej aplikacji internetowej ..................................................23
Podsumowanie ...................................................................................................27
Rozdzia 2. Jzyk PHP i serwer MySQL wprowadzenie ...........................29
Konfigurowanie interpretera jzyka PHP i serwera MySQL ..........................30
Rozpoczcie korzystania z jzyka PHP .............................................................32
Instalowanie serwera MySQL ...........................................................................50
czenie si z serwerem MySQL za pomoc skryptu PHP .............................59
Podsumowanie ...................................................................................................65
Rozdzia 3. Uruchamianie projektw ..........................................................67
Zastosowanie rodowiska XAMPP ....................................................................67
Podsumowanie ...................................................................................................70
Rozdzia 4. Dziennik internetowy ...............................................................71
Przegld projektu przypadek uycia dziennika Blogtastic ..........................72
Definiowanie bazy danych .................................................................................73
Rozpoczcie pisania kodu ..................................................................................76
Spis treci
Nowa metodyka
witryna informacyjna,
niezalena aplikacja PHP,
prosty kalendarz w technologii AJAX.
Kady projekt daje moliwo opanowania nowych umiejtnoci i koncentruje si na konkretnych wyzwaniach.
Technologia
Nie powinno by zaskoczeniem, e technologia wykorzystana w ksice do tworzenia aplikacji internetowych to jzyk PHP i serwer MySQL. Jeli Czytelnik
znalaz ksik w dziale ksigarni dotyczcym technologii ASP (Active Server
Pages), obawiam si, e kto sobie w niemiy sposb zaartowa.
Gdy jzyk PHP i serwer MySQL poczy si ze sob, uzyska si solidny szkielet
pozwalajcy projektowa elastyczne aplikacje internetowe o duych moliwociach.
Powodem dobrej wsppracy obu technologii jest to, e kada zapewnia rozbudowany zestaw internetowych narzdzi programistycznych. W przypadku projektowania dowolnej aplikacji internetowej przede wszystkim trzeba mie odpowiednie rodowisko umoliwiajce tworzenie dynamicznych stron oraz funkcji
obsugujcych i przetwarzajcych dane, czcych si z zasobami, zarzdzajcych
uytkownikami i wykonujcych inne zadania. Jzyk PHP spenia te wymagania.
Jest to wyjtkowo elastyczny jzyk oferujcy pokany wachlarz funkcji radzcych
sobie z typowymi wyzwaniami towarzyszcymi projektowaniu aplikacji internetowych, z ktrych wiele przedstawiono w ramach projektw zamieszczonych
w ksice. Nastpnie trzeba mie rozwizanie pozwalajce magazynowa spore
iloci danych, ktre bd wywietlane, aktualizowane, usuwane, modyfikowane
i w inny sposb przetwarzane. W tym celu naley skorzysta z bazy danych. MySQL
jest niezawodnym, elastycznym i atwym w obsudze serwerem bazodanowym.
Zanim przyjrzymy si modelowi dziaania aplikacji internetowych, w niniejszym
rozdziale bardziej szczegowo zostan przedstawione niezbdne narzdzia pracy.
20
Rozdzia 1
Jzyk PHP
PHP jest popularnym jzykiem skryptowym wysokiego poziomu wykorzystywanym przez wiele organizacji i projektantw. Pierwotnie jzyk PHP, stworzony
w ramach niewielkiego projektu opartego na jzyku Perl pod koniec 1995 r. przez
Rasmusa Lerdorfa, mia uatwi swojemu twrcy zaprojektowanie wasnej strony
internetowej. W zwizku z tym Lerdorf nada jzykowi nazw PHP (ang. Personal
Home Page osobista strona domowa).
Gdy Lerdorf zacz pracowa dla uczelni University of Toronto i projektowa
system obsugujcy poczenia telefoniczne dajce studentom dostpu do internetu, nie dysponowa adnymi rodkami pozwalajcymi czy strony internetowe
z bazami danych. Dlatego Lerdorf zastpi kod jzyka Perl interfejsem napisanym
w jzyku C, ktry oferowa moliwo nawizania poczenia midzy stronami
internetowymi a serwerem bazodanowym MySQL. Gdy pocztkowo niewielki
projekt Lerdorfa zacz si rozrasta, autor udostpni go w internecie w wersji
open source, liczc na udoskonalenia dokonywane przez innych programistw
zainteresowanych jzykiem PHP. W pniejszym czasie skrt PHP przyj aktualne rekurencyjne rozwinicie, czyli PHP Hypertext Preprocessor (ukute przez
Zeeva Suraskiego i Andiego Gutmansa, ktrzy w 1997 r. ponownie napisali analizator skadni). Oprogramowanie cay czas byo rozwijane i obecnie ma posta
rozbudowanej platformy.
PHP jest solidnym i dobrze zdefiniowanym jzykiem uwzgldniajcym midzy
innymi obsug programowania zorientowanego obiektowo, warunkw, plikw
i operacji arytmetycznych. Pod wzgldem semantycznym jzyk PHP przypomina
jzyk skryptowy powoki rozbudowany o prostsze elementy jzyka C.
Jzyk PHP wpisuje si w filozofi jzykw programowania, ktre oferuj
rozbudowan i uniwersaln standardow bibliotek. Ponadto jzyk ten w duym
zakresie obsuguje mnstwo rozwiza, takich jak pliki cookies, formularze, sesje,
pliki nagwkowe, gniazda sieciowe, poczta elektroniczna oraz protokoy LDAP,
IRC i inne. Obsuga baz danych uwzgldnia nie tylko serwer MySQL, ale rwnie wiele innych, midzy innymi PostgreSQL, Oracle, MS SQL, dBase, Sybase
i DB2. Tak rozbudowana obsuga baz danych okae si przydatna, gdy kiedykolwiek trzeba bdzie przystosowa aplikacj do wsppracy z inn baz.
PHP mona zastosowa nie tylko do tworzenia aplikacji internetowych, ale
take w roli jzyka skryptowego powoki. Oznacza to, e za pomoc jednego jzyka
mona projektowa aplikacje internetowe i pisa skrypty powoki zarzdzajce
prac komputerw. Moliwe jest nawet uycie jzyka PHP do tworzenia aplikacji
przeznaczonych dla stacji roboczych. Cho to zastosowanie zwykle jest zwizane
z bardziej ekscentryczn czci entuzjastw jzyka PHP, coraz wicej programistw si do niego przekonuje.
Jzyk PHP nie ogranicza si do wasnych funkcji i obsuguje zewntrzne funkcje za porednictwem biblioteki PEAR (PHP Extension and Application Repository). Biblioteka ta dziaa podobnie do moduw CPAN jzyka Perl i zapewnia
dodatkow funkcjonalno, ktra jest atwo dostpna za pomoc kilku wbudowanych niezalenych moduw rozwizujcych okrelone problemy. Te specjalne
moduy mona doda do wasnej aplikacji i uzyska dostp do oferowanych przez
Nowa metodyka
21
Serwer MySQL
MySQL jest rozbudowanym relacyjnym serwerem bazodanowym o duych
moliwociach, w pierwotnej wersji stworzonym przez Davida Axmarka, Allana
Larssona i Michaela Monty Wideniusa. Zaoona przez nich komercyjna organizacja MySQL AB zajmuje si rozwijaniem i sprzeda serwera MySQL, a take
towarzyszcych mu produktw. Cho pocztkowo projekt serwera MySQL by
realizowany na zasadach open source, jego twrcy byli przewiadczeni, e mog
rozpocz dziaalno biznesow opart na tym produkcie. Dziki firmie projektanci mog w penym zakresie zajmowa si oprogramowaniem, co przynosi
korzyci zarwno spoecznoci open source, jak i komercyjnym uytkownikom
serwera MySQL. Pod wzgldem funkcjonalnym darmowe i komercyjne wersje
serwera MySQL s jednakowe. Jedyna rnica tkwi w sposobie licencjonowania
(firmy musz naby licencj, jeli zamierzaj zastosowa serwer MySQL w celach
komercyjnych). Serwer MySQL zyska ogromn popularno. Korzystaj z niego
takie firmy, jak Yahoo! Finance, MP3.com, Motorola, NASA, Silicon Graphics
i Texas Instruments.
MySQL jest w peni funkcjonalnym serwerem bazodanowym wykorzystujcym
otwarte standardy, takie jak ANSI SQL 99 (umoliwia komunikacj z bazami
danych za pomoc jzyka SQL Structured Query Language). Standard ten
zapewnia rodki pozwalajce wstawia, aktualizowa i pobiera informacje z bazy
danych przy uyciu jzyka bdcego standardem przemysowym. Jzyk SQL jest
stosowany zarwno w przypadku produktw bazodanowych, jak i innych. Serwer
MySQL obsuguje kilka dodatkowych instrukcji jzyka SQL. Serwer MySQL
nie tylko ma status standardu, jest te wieloplatformowy. Oznacza to, e mona
go uruchomi nie tylko na Linuksie, ale take na innych systemach operacyjnych,
takich jak Windows, Mac OS X, BSD lub inne warianty Uniksa.
Sam serwer bazodanowy uwzgldnia interaktywnego klienta trybu wiersza
polece, ktry umoliwia komunikowanie si z nim. Cho klient jest przydatny,
moe wywoa obawy u pocztkujcych uytkownikw, niezaznajomionych z wierszem polece. Na szczcie istnieje kilka graficznych klientw bazujcych na
przegldarce internetowej, dziki ktrym mona unikn kontaktu z wierszem
polece (w ksice intensywnie wykorzystuje si jednego z takich klientw o nazwie
phpMyAdmin). Serwer MySQL obsuguje te kilka jzykw programowania
pozwalajcych uzyska dostp do bazy danych i pobra z niej informacje. Spord
tych jzykw wymiemy: PHP, Pythona, Perla, C, C++ i Jav. Cho na pocztku
w celu wysyania zapyta bazodanowych mona korzysta wycznie z jzyka PHP,
obsuga wielu jzykw bdzie przydatna, gdy konieczne okae si utworzenie
moduw i aplikacji za pomoc innych jzykw.
22
Rozdzia 1
Nowa metodyka
23
Rysunek 1.3. Po dodaniu bazy danych przepyw informacji jest troch inny
Model widoczny na rysunku 1.3 jest niemal taki sam jak pokazany na rysunku 1.2. Rni si tym, e dodano dodatkowy etap. Poza umieszczeniem informacji
w bazie danych trzeba te mie moliwo ich pobrania w celu wywietlenia wynikw. Na rysunku 1.4 wida klienta dajcego formularza (na przykad wyszukujcego), a nastpnie wysyajcego go z wprowadzonymi szczegami. Wyniki
zwrcone w odpowiedzi na zapytanie skierowane do bazy danych s przekazywane klientowi.
24
Rozdzia 1
Rysunek 1.4. Typowy przypadek: uytkownik wypenia formularz i uzyskuje dane z bazy
W tym przykadzie najpierw od serwera dany jest formularz. Serwer przekazuje formularz przegldarce, a nastpnie uytkownik umieszcza w nim wymagane informacje i wysya go. W dalszej kolejnoci serwer odbiera szukany cig
i da od bazy danych pobrania pozycji, ktre zawieraj szukane dane. Serwer
bazodanowy wyszukuje odpowiednie dane i przekazuje je serwerowi Apache,
ktry przesya je klientowi.
Przedstawione przykady modelu klient-serwer korzystaj z do lunych definicji rnych skadnikw (baza danych, serwer WWW i przegldarka) wchodzcych w ich skad. Chodzi o to, aby mona byo skupi si na tym, w jaki sposb
dane s przekazywane midzy rnymi podstawowymi elementami architektury
klient-serwer.
Ostatni przykad (rysunek 1.5) szczegowo wyjania, jak kady krok przebiega
w kadym z wyej wymienionych skadnikw.
Nowa metodyka
25
26
Rozdzia 1
Podsumowanie
Podobnie jak w przypadku dowolnego materiau, rwnie nauka projektowania
przy wykorzystaniu jzyka PHP i serwera MySQL wie si z koniecznoci
zrozumienia kilku zasadniczych zagadnie, zanim przejdzie si do konkretw.
W celu zapewnienia solidnych podstaw w niniejszym rozdziale przedstawiono
gwne zagadnienia.
W nastpnym rozdziale zostan zaprezentowane podstawy jzyka PHP i serwera MySQL. Czytelnik zapozna si z fundamentalnymi skadnikami jzyka,
a nastpnie od razu zacznie tworzy aplikacj. Kada aplikacja pozwoli zdoby
nowe umiejtnoci, pogbi wiedz i pozna nowe pojcia.
Nowa metodyka
27