PHP i Flash są dla siebie stworzone.
Oczywiście, Flash potrafi wprawić nas w zachwyt własnymi siłami, ale tworzenie zmieniających się, w pełni interaktywnych witryn Flasha wymaga uzupełnienia go siłami zakulisowymi. Mówiąc najprościej, PHP jest bezpłatnym i łatwym sposobem osiągnięcia tego celu. Dzięki długiej liście funkcji, potrafi on w znaczący sposób zwiększyć dynamikę witryny Flasha, a niniejsza książka jest wstępem do oceanu możliwości, jakie daje wykorzystanie skryptów serwerowych.
Podstawy PHP dla Flasha stanowi część tego oceanu i poprowadzi Was w wybranym tempie.
Książka niniejsza skierowana jest do projektantów, a w szczególności tych, którzy w swej pracy korzystają z Flasha, choć moim celem była zapoznanie Was z PHP w przyjazny, skoncentrowany na projektach, sposób. Z tego też powodu zakładam, mając na względzie omawiane tu przykłady, że każdy Czytelnik dysponuje podstawową wiedzą na temat Flasha, a poprzez zastosowanie PHP, zamierza rozbudować tworzone witryny. Bez względu jednak na to, czy Czytelnik jest mistrzem Flasha czy nowicjuszem, znajdzie tu pełne wyjaśnienia odnoszące się do tego programu, pojawiające się w całej książce.
Wierzę w prostotę, a zatem, w każdym rozdziale omawiać będziemy:
Podstawy określonego aspektu tworzenia skryptów PHP.
Potężny, wielokrotnego użycia i w pełni adaptowalny przykład aplikacji zintegrowanej z Flashem.
Nacisk położony będzie nie na wtłaczanie ogromnych ilości teorii, po którym Czytelnik zostanie pozostawiony sam sobie, ale raczej na pokazanie, w jaki sposób PHP ułatwia życie projektantom Flasha.
Pokażę Wam, od początku do końca, czym jest PHP i, co ważniejsze, jak korzystać z niego w celu tworzenia coraz to bardziej złożonych i ekscytujących aplikacji sieciowych. W każdym rozdziale będziemy pracować na przykładzie prostego kodu, ukierunkowując się na te elementy, które mogą być potrzebne naszym witrynom., od filmów rejestracji i logowania, po pełne forum Flasha — będzie to zestaw 12 wspaniałych aplikacji.
Aby uczynić treść książki bardziej przejrzystą, zastosujemy tu pewne konwencje typograficzne:
· Wprowadzając nowy, istotny termin lub odwołując się do określonego Rozdziału, wyróżnimy tekst poprzez pogrubienie.
· Różne style będą zastosowane do zapisu tego, co widać na ekranie, fragmentów kodu, ważnych fragmentów kodu, a także hiperłączy i ścieżek dostępu.
Jeśli w tekście pojawi się fragment, którego nie powinniśmy pominąć, zostanie on wyróżniony w ten właśnie sposób! Kiedy więc ujrzymy taką ramkę, wytężmy uwagę!
· I wreszcie, omawiając przykłady, będziemy się trzymać sprawdzonych zasad:
Jedna z rzeczy, które dotychczas powiedzieliśmy na temat PHP, która prawdopodobnie jest szczególnie zastanawiająca to fakt, że PHP jest językiem o otwartym źródle (czyli bezpłatnym). Także najpopularniejszy serwer obsługujący PHP, Apache, jest również bezpłatny. Podobnie, technologia obsługi baz danych MySQL, którą PHP w pełni obsługuje, jak się domyślacie, jest także technologią o otwartym źródle!
Teraz należałoby pobrać i zainstalować PHP. W Dodatku A załączyłem obszerny zestaw instrukcji instalacyjnych dla różnych platform. Każdy powinien z nich skorzystać, jeśli dotychczas nie instalował PHP w sowim komputerze.
Mówiąc ogólnie, z książki tej można korzystać na różne sposoby, czy to programując, uruchamiając i testując skrypty na komputerze lokalnym (jeśli ktoś nie bardzo wie, czym są skrypty serwerowe lub jest w tym temacie zupełnym nowicjuszem, niech poczeka chwilę, gdyż zaraz zajmiemy się tym tematem)... czy też ładując skrypty i pliki FLA na serwer zdalny – na przykład, na swój host sieciowy.
W pierwszej opcji potrzebny nam będzie lokalny serwer sieci Web. W systemie Windows może to być PWS (Personal Web Server) lub IIS (Internet Information Service – opcja sieciowa), które powinny być dostępne na dysku instalacyjnym Windows CD lub na witrynie Windows. Platformy Windows, Unix i Mac pozwalają również uruchamiać Apache, popularny serwer o otwartym źródle. Pełne instrukcje instalacji Apache znajdziemy w Dodatku A.
Jeśli korzystamy ze zdalnego hosta, testy możemy wykonywać lokalnie, ale do tego musimy dysponować hostem, który obsługuje PHP i MySQL (ich liczba wciąż wzrasta). Dodatek C — Zasoby zawiera listę kilku oferentów.
Należy także zainstalować mechanizm obsługi baz danych MySQL, a instrukcje instalacyjne znajdziemy w Dodatku A.
Jest jeszcze jedna rzecz, której będziemy potrzebowali. Kod PHP, podobnie jak HTML, może być tworzony w dowolnym edytorze tekstu, takim jak Notatnik czy SimpleText lub jakimkolwiek, spośród wielu, programów do edycji PHP. Programy takie wyposażone są w funkcje wyróżniania składni i kodowania kolorami, co znacznie ułatwia tworzenie skryptów, a kilka przykładów takich programów wymienia Dodatek C. Pliki PHP zapisywane są z rozszerzeniem .php.
Wszystkie powyższe technologie dostarczane są wraz z pełną dokumentacją i jeśli natrafimy na problemy podczas instalacji, powinniśmy skorzystać z pomocy oferowanej przez witrynę www.phpforflash.com. W ten sposób dochodzimy do kolejnego zagadnienia...
Niniejsza książka wydawnictwa Friends of ED ma pełne wsparcie ze strony witryny www.friendsofed.com, jak i własnej, www.phpforflash.com. Pliki źródłowe do książki mogą być pobierane z obu tych witryn. Ponadto, witryny te prowadzą forum dyskusyjne, gdzie można udać się w poszukiwaniu pomocy, inspiracji, czy też po prostu po to, by pogawędzić. Forum dostępne na www.phpforflash.com będzie tematem jednego z późniejszych przykładów, a więc odwiedźmy je i podzielmy się swoimi uwagami!
Witryna PHP for Flash oferuje ponadto dodatkowe pliki i samouczki, uaktualnienia oraz liczne prezentacje działania przykładów opisywanych w książce. Warto również dołączyć do naszej listy wysyłkowej i podzielić się swymi plikami FLA, które zostaną zaprezentowane na witrynie — z chęcią zobaczymy, co osiągnęliście!
Jeśli Waszym celem jest osiągnięcie pełnego profesjonalizmu, poprzez witrynę Friends of ED możecie wymienić się uwagami z czołowymi projektantami, zasięgnąć informacji o innych książkach, przeczytać przykładowe rozdziały i zrobić wiele innych rzeczy. Ta książka, to tylko część większej całości.
Jednakże, napotykając kłopoty, czy też doświadczając problemów z określonym plikiem czy samouczkiem, a nawet wówczas, gdy poczujecie się zupełnie zagubieni, przyjdziemy Wam z pomocą. Wystarczy pozostawić wiadomość na forum, skorzystać z formularza działu łączności z Czytelnikami lub wysłać list elektroniczny pod adresem support@friendsofed.com — nie pozwolimy Wam długo czekać.
Jeśli nawet nie będziecie mieć problemów, podzielcie się z nami swymi spostrzeżeniami. Piszcie na adres feedback@friendsofed.com — jesteśmy tu dla Was i każdy głos będzie dla nas radością!
Po tym wstępie jesteście już gotowi i prawdopodobnie nie możecie się doczekać, kiedy przejdziemy do omawiania PHP i wszystkich zagadnień, o których wspominałem. Rozpocznijmy więc od krótkiego rysu historycznego na temat języka i pomówmy chwilę o tym, czym są skrypty serwerowe.
Dotarłszy do tego miejsca, każdy z nas wie już zapewne, że PHP jest językiem do tworzenia skryptów serwerowych. Wszystko pięknie, ale wydaje mi się, że niektórzy zastanawiają się, czym u licha są te skrypty serwerowe i do czego służą. Odbądźmy więc krótką podróż w czasie, do chwili, gdy wszystko się zaczęło — poznajmy historię powstania PHP i przyczyny, dla których stał się jednym z najpotężniejszych i najpopularniejszych języków skryptowych.
PHP powstał pod koniec 1994 roku jako dzieło Rasmusa Lerdorfa. Początek dała mu kolekcja skryptów w języku Perl, która posłużyła panu Lerdorfowi do obserwacji osób, które zainteresowały się jego życiorysem (CV) udostępnionym w sieci.
Nieuchronnie, podobne skrypty zapragnęli stosować inni. W odpowiedzi na liczne prośby, Rasmus opublikował pakiet nazwany Personal Home Page Tools, co miało miejsce w roku 1995. Na tym wczesnym etapie PHP był czymś więcej niż tylko zestawem prostych narzędzi sieciowych — jak księga gości, licznik czy inne gadżety — dopełnionym prostym parserem makr.
W połowie 1995 roku Rasmus całkowicie przeprojektował parser. Dodał do niego także moduł interpretera formularzy, który zapewnił PHP zdolność przetwarzania formularzy HTML. Całość została ochrzczona jako PHP/FI czyli PHP2. Jednakże, z powodów, które prawdopodobnie powinny pozostać owiane tajemnicą, PHP nazwano także PHP Hypertext Preprocessor, co wprawiło wszystkich w osłupienie!
Choć trudno poprzeć to dokładnymi danymi, szacuje się, że pod koniec roku 1996 PHP stosowano na ponad 15.000 witryn, a liczba ta przekroczyła 50.000 w połowie 1997 roku. Rok 1997 przyniósł także zinstytucjonalizowanie PHP, gdy z przedsięwzięcia indywidualnego, język stał się przedmiotem prac specjalnej organizacji. Wiązało się to z ponownym, całkowitym przeprojektowaniem parsera, co dało podwalny dla wersji PHP3. Składnia języka została udoskonalona, a dzięki zapożyczeniom z języków C oraz Perl, język stał się znacznie silniejszy i łatwiejszy do nauczenia. Dodano ponadto API (ang. Applicatiion Programming Interface – Interfejs programowania aplikacji), który pozwolił programistom zewnętrznym na poszerzanie funkcjonalności PHP, poprzez tworzenie własnych modułów.
Wersja 3 wprawiła w zachwyt wszystkich projektantów i programistów. Oto pojawił się bowiem łatwy do zrozumienia język skryptów serwerowych! Nie trzeba było już być geniuszem CGI, by móc tworzyć liczniki, księgi gości, formularze rejestracyjne czy też jakiekolwiek inne aplikacje serwerowe, które składają się na nowoczesne witryny sieciowe.
Wersja 3 zmieniła oblicze programowania, urzeczywistniając ideę dynamicznej zawartości stron, oferując przy tym prostą składnię i możliwość komunikacji z bazami danych. Oczekiwania rozwoju PHP zapewniają natomiast pojawianie się coraz to nowszych funkcji, w co zaangażowanych jest liczne grono programistów PHP.
Równolegle z kilkoma późniejszymi wydaniami usuwającymi błędy i poszerzającymi wersję 3, dwóch programistów, Zeev Suraski oraz Andi Gutman, którzy byli głęboko zaangażowani w rozwój wczesnych wersji PHP, postanowiła przeprojektować PHP od podstaw.
W rezultacie powstał mechanizm Zend, serce PHP4. Nazwa Zend została utworzona z liter imion obu programistów (Zeev i Andi). Zend (PHP4) wniósł wiele nowości, a wśród nich zwiększenie wydajności języka (do 1000% w stosunku do PHP3), obsługę obszerniejszego wachlarza bibliotek zewnętrznych i rozszerzeń.
Ulepszona została także obsługa programowania obiektowego, z którym zapoznamy się w Dodatku B, o ile będziecie mieć na to ochotę, po lekturze kolejnych niemal 500 stron!
Mówiąc najprościej, skrypt serwerowy to program wykonywany na serwerze, obsługujący żądania udzielenia informacji i zwracający bądź generujący na bieżąco dokumenty, w oparciu o wyznaczone kryteria - — na przykład, witający mnie Welcome back Steve, gdy ponownie odwiedzę witrynę. Skrypt pozwala nam także uzyskiwać dostęp do narzędzi znajdujących się na serwerze, uzupełniając je dodatkowymi funkcjami.
Korzystając z poniższych diagramów wskazemy różnice pomiędzy żądaniami otwarcia normalnego pliku i skryptu serwerowego.
Normalny proces odczytywania standardowej strony sieciowej wygląda następująco:
Rys. str. 6:
1.Żądanie otwarcia strony sieciowej
Komputer klienta
Serwer sieci Web
2.Zwrócona strona Web
Choć jest to dość uproszczony schemat całego procesu, prezentuje on główne etapy otwierania strony sieciowej. Na początku klient (odwiedzający lub lego komputer) wysyła pod adresem serwera żądanie otwarcia określonej strony. Następnie, przy założeniu, że strona ta istnieje, serwer odczytuje ją z jej lokalizacji i zwraca klientowi.
W ten sposób działa większość małych witryn (ale także niektóre duże), obsługując strony i pliki. Strony takie określa się często mianem "statycznych", gdyż ich zawartość można zmienić jedynie drogą modyfikacji pliku HTML — jest to przyczyną dużego wysiłku, gdy zawartość ta jest obszerna. Nawet większość witryn Flasha funkcjonuje w taki sposób, choć po zwróceniu strony, odrębne żądanie wędruje do pliku SWF.
Jednakże, jeśli żądaną stroną jest skrypt serwerowy, na przykład PHP, proces zaczyna wyglądać nieco inaczej.
Rys. str. 7
1.Żądanie otwarcia strony
2.Mechanizm PHP
3.Przetworzona i zwrócona strona
Jak widać, żądanie wysyłane jest przez klienta w normalny sposób, gdyż klient nie wie i wcale nie musi wiedzieć czy żądany plik jest skryptem serwerowym, czy też zwyczajnym plikiem — jak dziecko płaczące w cukierni i krzyczące "Ja chcę jednego". Gdy serwer odbiera żądanie, otwiera plik i przekazuje go mechanizmowi sewerowemu (w tym przypadku PHP).
Strona jest przetwarzana przez mechanizm PHP, a zawarty w niej kod ulega wykonaniu przed zwróceniem do klienta. Na tym etapie procesu dzieją się bardzo ciekawe rzeczy: wygenerowana zostaje dynamiczna zawartość, proste pliki mogą zostać użyte jako część zwracanego dokumentu i uruchomione mogą być narzędzia zainstalowane na serwerze. Informacje mogą być odczytywane z bazy danych lub innego źródła, choć nie uwzględniliśmy tu pobierania danych zewnętrznych — dojdziemy do tego zagadnienia w Rozdziale 7.
Skoro wiemy już, czym jest PHP i omówiliśmy zalety uzupełniania statycznych witryn treściami dynamicznymi, możemy zająć się tworzeniem pierwszych stron w PHP. Tak naprawdę, pierwsze kroki wykonamy dopiero w przykładzie opisanym w Rozdziale 1, a tymczasem zobaczmy jak proste są to zagadnienia.
Zazwyczaj, kod PHP jest osadzany wewnątrz pliku HTML, tworząc w ten sposób dynamiczną stronę sieci Web. Ponieważ jednak interesuje nas wyłącznie korzystanie z PHP, pominiemy w naszych skryptach kod HTML, choć połączymy go z PHP w Rozdziale 10 i 12, gdzie będziemy tworzyć sekcje administratorskie dla naszych aplikacji sieciowych!
1. Jeśli dysponujesz już zainstalowanym PHP i masz dostęp do odpowiedniego serwera, otwórz swój ulubiony edytor tekstu i wpisz następujące dwa znaki:
<?
Jest to znacznik otwierający — informuje on procesor PHP na serwerze, że będzie miał do czynienia ze skryptem PHP. Każdy skrypt musi zawierać parę znaczników <? ?>, pomiędzy którymi znajduje się właściwy kod.
2. Teraz poznaj funkcję echo(), która stanowi prostą metodę nakazywania PHP przesłanie informacji lub tekstu do klienta w celu wyświetlenia.
echo();
Jak się zapewne domyślasz, wyświetlany tekst znajduje się w nawiasach. Zwróć też uwagę na średnik na końcu wiersza — jest on obowiązkowym elementem kodu PHP.
3. Dopisz proste zdanie, ujmując je w cudzysłowy; możesz wpisać cokolwiek:
echo("Hello and welcome to the site!");
4. Teraz zakończ skrypt PHP, wpisując nieodzowny znacznik zmykający:
?>
Wszystko, co pozostało do zrobienia, to przesłanie lub skopiowanie skryptu na serwer obsługujący PHP.
5. Zapisz plik pod nazwą basic.php, w głównym katalogu. Katalog ten powinien być wyznaczony podczas instalacji. W przypadku serwera Apache, jest to zazwyczaj podkatalog htdocs w katalogu Apache. Jeśli nie testujesz skryptu lokalnie, prześlij go na swoją witrynę.
6. Na koniec, aby obejrzeć działanie nowego pliku, wpisz jego adres. Jeśli odbywa się to lokalnie, wówczas w większości przypadków, adres powinien wyglądać następująco: http://localhost.basic.php; jeśli masz z tym problemy, zajrzyj do Dodatku A. Jeżeli korzystasz z hosta zdalnego, po prostu wpisz jego adres, na przykład www.phpforflash.com/basic.php.
No dobrze, takie efekty można uzyskać we Flashu czy HTML w przeciągu kilku sekund. Jednak te niepozorne znaczniki PHP otwierają przed nami wiele drzwi i umożliwiają osiąganie fascynujących rezultatów.
Czy moglibyśmy witać odwiedzających, powracających na naszą witrynę, po imieniu? Jest to bardzo proste:
echo("Hello, $name, and welcome to the site!");
… gdzie $name reprezentuje wartość "cookie" (ciasteczka) czyli niewielkiej porcji danych, zapisanych wraz z imieniem osoby odwiedzającej. Cookie tworzy się za pomocą pojedynczego wiersza kod, a korzystanie z ciasteczek zostanie szczegółowo omówione w Rozdziale 6.
Owe wartości $ są dla nas bardzo istotne. Są to bowiem zmienne, które mogą przechowywać informacje dowolnego typu, od treści wpisanej przez użytkownika w polu tekstowym, poprzez wyniki obliczeń serwerowych (na przykład, odczytu daty i godziny), po całe tabele z bazy danych.
A jeśli zechcielibyśmy pójść dalej — co jeszcze moglibyśmy zaoferować odwiedzającym poza imiennym powitaniem?
· Moglibyśmy udostępniać im wiadomości z archiwum — być może nawet posortowane, za pomocą funkcji time, w taki sposób, by najświeższe zostały wyświetlone na początku.
· Moglibyśmy też wyświetlać wiadomości w oparciu o zainteresowania odwiedzającego – gdybyśmy poprosili go o określenie preferencji, można byłoby utworzyć stronę zawierającą artykuły interesujące użytkownika.
· A jeśli chcielibyśmy odświeżyć wiadomości? Czy należałoby przepisywać skrypty? Nie... wystarczy, jeśli użyjemy łatwo edytowalnych plików tekstowych, a wiadomości będziemy ładować za pomocą PHP — w ten sposób plików PHP nie trzeba będzie modyfikować nigdy. O tym, jak korzystać ze wszelkiego typu plików zewnętrznych, pomówimy w Rozdziale 7.
· A może pozwolilibyśmy użytkownikowi na zachowywanie określonych fragmentów wiadomości lub treści strony i ich późniejsze wyświetlanie? Wystarczyłoby wówczas zapisać te fragmenty w bazie danych, wraz ze szczegółowymi informacjami dotyczącymi użytkownika, dzięki czemu mógłby on odczytać zachowane fragmenty w dowolnej chwili.
· Moglibyśmy też umożliwić użytkownikom przeszukiwanie wiadomości w celu odnalezienia określonych tematów czy słów kluczowych. O tym, jak przeszukiwać pliki tekstowe, będziemy mówić w Rozdziale 5, zaś w Rozdziale 9 zajmiemy się wyszukiwaniem w bazach danych.
Te znaczniki <? ?> są naszym kluczem do nieustannie zmieniającej się, łatwej w użyciu i odświeżaniu informacji, które z łatwością możemy umieścić w swoich projektach Flasha. Kształtować możemy każdy aspekt wrażeń, jakie odnosić będą użytkownicy, zachęcając ich do wielokrotnych powrotów.
W pierwszym rozdziale będziemy się koncentrować na obszarze działania Flasha, choć nawiązania do niego będą bardzo częste w całej książce. Na końcu pierwszego rozdziału zajmiemy się doskonałą, choć niewielką, aplikacją rejestracyjną, opisując część Flasha, fragment po fragmencie, a następnie zapoznając się z prawdziwą potęgą skryptów PHP, zanim wykonamy pierwsze kroki w kierunku pełnego zrozumienia szalonego świata PHP.
PHP ułatwia praktycznie wszystkie zadania, jakie tylko wymyślimy, a po lekturze kolejnych 450 stron, każdy z Was zacznie się zastanawiać, jak dawał sobie bez niego radę dotychczas.
Statyka to dzień wczorajszy, PHP to dzień dzisiejszy, a jeśli książka ta będzie czytana także jutro, tym większy będzie Wasz sukces!
5
SacrA