PHP5. Zaawansowane programowanie.pdf

(526 KB) Pobierz
PHP5. Zaawansowane programowanie
IDZ DO
PRZYK£ADOW Y ROZDZIA£
PHP5. Zaawansowane
SPIS TRECI
programowanie
KATALOG KSI¥¯EK
Autorzy: Edward Lecky-Thompson, Heow
Eide-Goodman, Steven D. Nowicki, Alec Cove
T³umaczenie: Adam Byrtek,
Jaros³aw Dobrzañski, Pawe³ Gonera
ISBN: 83-7361-825-2
Tytu³ orygina³u: Professional PHP5
Format: B5, stron: 664
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
PHP to jêzyk umo¿liwiaj¹cy tworzenie aplikacji sieciowych uruchamianych po stronie
serwera. Jego najnowsza wersja, oznaczona numerem 5, to w pe³ni obiektowy jêzyk,
za pomoc¹ którego mo¿na budowaæ nawet najbardziej z³o¿one systemy portalowe,
intranetowe i ekstranetowe. Dziêki nowym funkcjom wprowadzonym w PHP 5 mo¿liwe
jest korzystanie z plików XML i protoko³u SOAP, wydajna komunikacja z baz¹ danych
i stosowanie technik obiektowych znacznie u³atwiaj¹cych i przyspieszaj¹cych tworzenie
rozbudowanych aplikacji.
„PHP5. Zaawansowane programowanie” to ksi¹¿ka przedstawiaj¹ca potê¿ne
mo¿liwoci i elastycznoæ najnowszej wersji tej popularnej platformy programistycznej.
Opisuje podstawowe zasady programowania obiektowego i prowadzenia
rozbudowanych projektów informatycznych. Zawiera informacje o modelowaniu
aplikacji w jêzyku UML, stosowaniu wzorców projektowych i tworzeniu narzêdzi,
które bêdzie mo¿na wykorzystaæ w ka¿dym projekcie. Przedstawia równie¿ analizê
prawdziwego przypadku — systemu automatyzuj¹cego pracê dzia³u sprzeda¿y
w przedsiêbiorstwie handlowym.
• Programowanie obiektowe
• Jêzyk UML i modelowanie systemów
• Wzorce projektowe
• Tworzenie prostych narzêdzi obiektowych
• Po³¹czenia z bazami danych
• Model MVC
• Stosowanie protoko³u SOAP
• Komunikacja z u¿ytkownikiem i mechanizmy sesji
• Testowanie aplikacji
• Studium przypadku — automatyzacja pracy dzia³u sprzeda¿y
Jeli chcesz poznaæ zaawansowane mo¿liwoci PHP 5, siêgnij po t¹ ksi¹¿kê
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
119562174.001.png 119562174.002.png 119562174.003.png 119562174.004.png
 
Spis treci
O Autorach ................................................................................................................................................ 13
Wstp ....................................................................................................................................................... 15
Cz I Technologia obiektowa
21
Rozdział 1. Wprowadzenie do programowania obiektowego ................................................................23
Czym jest programowanie obiektowe? ..........................................................................23
Zalety programowania obiektowego .........................................................................24
Przykład z ycia .....................................................................................................25
Poj!cia zwi"zane z programowaniem obiektowym ...........................................................25
Klasy ...................................................................................................................26
Obiekty ................................................................................................................27
Dziedziczenie ........................................................................................................36
Interfejsy ..............................................................................................................45
Hermetyzacja ........................................................................................................48
Zmiany w PHP5 dotycz"ce programowania obiektowego ..................................................49
Podsumowanie ..........................................................................................................50
Rozdział 2. Unified Modeling Language (UML) ........................................................................................ 51
Zbieranie wymaga/ .....................................................................................................51
Rozmowa z klientem ..............................................................................................52
Diagramy przypadków uycia ...................................................................................53
Diagramy klas ............................................................................................................54
Modelowanie dziedziny ..........................................................................................55
Relacje ................................................................................................................56
Implementacja ......................................................................................................58
Diagramy aktywno4ci ..................................................................................................61
Diagramy przebiegu ....................................................................................................63
Diagramy stanów ........................................................................................................65
Diagram komponentów i instalacji ................................................................................66
Podsumowanie ..........................................................................................................67
4 PHP5. Zaawansowane programowanie
Rozdział 3. Obiekty zaczynaj- działa. ....................................................................................................69
Tworzenie menedera kontaktów ..................................................................................69
Diagramy UML dla menedera kontaktów .................................................................70
Klasa PropertyObject .............................................................................................74
Klasy z informacjami kontaktowymi .........................................................................76
Klasa DataManager ...............................................................................................80
Klasy Entity, Individual i Organization .......................................................................81
Uycie systemu .....................................................................................................88
Podsumowanie ..........................................................................................................90
Rozdział 4. Wzorce projektowe .............................................................................................................. 91
Wzorzec złoony .........................................................................................................92
Implementacja ......................................................................................................93
Przemy4lenia ........................................................................................................97
Wzorzec obserwatora ..................................................................................................98
Widget .................................................................................................................98
Przemy4lenia ......................................................................................................104
Wzorzec dekoratora ..................................................................................................104
Implementacja ....................................................................................................106
Korzystanie z dekoratora ......................................................................................107
Przemy4lenia ......................................................................................................108
Wzorzec fasady ........................................................................................................109
Wzorzec budowniczego ..............................................................................................111
Implementacja ....................................................................................................111
Przemy4lenia ......................................................................................................115
Podsumowanie ........................................................................................................115
Cz II Tworzenie obiektowego zestawu narzdziowego. Proste klasy i interfejsy 117
Rozdział 5. Klasa Collection ...........................................................................................................................119
Załoenia klasy Collection .............................................................................................119
Projektowanie klasy Collection .......................................................................................120
Fundamenty klasy Collection .........................................................................................121
Metoda addItem ......................................................................................................122
Metody getItem i removeItem ...................................................................................123
Pozostałe metody ....................................................................................................123
Uycie klasy Collection .............................................................................................124
Implementacja leniwej konkretyzacji ..............................................................................125
Funkcje zwrotne ......................................................................................................126
Metoda setLoadCallback w klasie Collection .............................................................130
Wykorzystanie klasy Collection ......................................................................................133
Ulepszanie klasy Collection ...........................................................................................139
Podsumowanie .............................................................................................................139
Rozdział 6. Klasa CollectionIterator .............................................................................................................141
Interfejs Iterator ............................................................................................................141
Klasa CollectionIterator ...........................................................................................143
Interfejs IteratorAggregate .............................................................................................144
Ochrona zawarto4ci iteratora .........................................................................................146
Podsumowanie .............................................................................................................147
Spis tre5ci 5
Rozdział 7. Klasa GenericObject ..................................................................................................................149
Klasa GenericObject .....................................................................................................149
Kiedy korzysta@ z GenericObject? .............................................................................150
Na co pozwala GenericObject? .................................................................................150
Decyzje w sprawie implementacji .............................................................................151
Typowa implementacja GenericObject .......................................................................152
Poznawanie rodzica .................................................................................................154
Współpraca z baz" danych .......................................................................................157
Metody i własno4ci GenericObject ............................................................................159
Zalety klasy GenericObject .......................................................................................161
Klasa GenericObjectCollection .......................................................................................162
Tradycyjna implementacja ........................................................................................163
Kiedy tradycyjna implementacja zawodzi ...................................................................163
Działanie klasy GenericObjectCollection ....................................................................164
Kod klasy ................................................................................................................165
Typowa implementacja GenericObjectCollection ........................................................167
Próba ......................................................................................................................168
Jak to działa? ..........................................................................................................168
Podsumowanie klasy GenericObjectCollection ...........................................................170
Podsumowanie .............................................................................................................171
Rozdział 8. Warstwa abstrakcji dla bazy danych ....................................................................................173
Czym jest warstwa abstrakcji? .......................................................................................174
Prosta implementacja ...................................................................................................174
Plik konfiguracyjny ...................................................................................................174
Nawi"zywanie poł"czenia .........................................................................................175
Pobieranie danych ...................................................................................................175
Modyfikacja danych .................................................................................................176
Korzystanie z klasy Database ...................................................................................178
Wprowadzenie do PEAR DB ...........................................................................................180
Nawi"zywanie poł"czenia za pomoc" DB ..................................................................181
Pobieranie danych ...................................................................................................182
Inne uyteczne funkcje .............................................................................................183
Wi!cej informacji .....................................................................................................186
Gotowa warstwa abstrakcji ............................................................................................186
Obsługa transakcji ...................................................................................................189
Wzorzec projektowy Singleton ..................................................................................191
Podsumowanie .............................................................................................................193
Rozdział 9. Interfejs fabryki ........................................................................................................................195
Wzorzec fabryki .............................................................................................................195
Przykład interfejsu fabryki ..............................................................................................196
Rozwi"zanie staromodne .........................................................................................196
Wykorzystanie interfejsu fabryki ...............................................................................197
Zastosowanie wzorca w abstrakcji bazy danych .........................................................198
Wi!ksza liczba fabryk ....................................................................................................200
Wykorzystanie klas istniej"cych .....................................................................................201
Podsumowanie .............................................................................................................201
6 PHP5. Zaawansowane programowanie
Rozdział 10. Programowanie oparte na zdarzeniach .............................................................................203
Czym s" zdarzenia? ......................................................................................................204
Obiektowa obsługa zdarze/ ...........................................................................................205
Projekt rozwi"zania ..................................................................................................205
Implementacja rozwi"zania ......................................................................................207
Implementacja zabezpiecze/ ....................................................................................211
Chwila zastanowienia ..............................................................................................213
Podsumowanie .............................................................................................................214
Rozdział 11. Pliki dziennika i debugowanie .................................................................................................215
Tworzenie mechanizmu logowania .................................................................................215
Proste logowanie do pliku ........................................................................................215
Przykładowa struktura katalogów ..............................................................................216
Klasa Logger ...........................................................................................................217
Rozbudowa klasy Logger ..........................................................................................221
Mechanizm debugowania ..............................................................................................231
Podsumowanie .............................................................................................................234
Rozdział 12. SOAP ..........................................................................................................................................235
SOAP i PHP5 ................................................................................................................235
Rozszerzenie PHP5 SOAP ........................................................................................236
Klient SOAP ..................................................................................................................239
Za kulisami .............................................................................................................241
Obsługa wyj"tków w kliencie SOAP ...........................................................................245
Serwer SOAP ................................................................................................................246
Podsumowanie .............................................................................................................248
Cz III Tworzenie zestawu narzdzi do wielokrotnego wykorzystania.
Narzdzia zło$one (cho nieskomplikowane)
249
Rozdział 13. Model, widok, kontroler (MVC) ..............................................................................................251
Wprowadzenie do MVC ..................................................................................................252
Model .....................................................................................................................253
Widok .....................................................................................................................253
Kontroler .................................................................................................................253
Infrastruktura ..........................................................................................................253
MVC w aplikacjach WWW .........................................................................................253
MVC w PHP .............................................................................................................254
Mały zestaw narz!dzi MVC ............................................................................................256
Prezentacja zestawu narz!dzi ...................................................................................256
Korzystanie z zestawu narz!dzi ................................................................................268
Zestaw narz!dzi a praktyka ......................................................................................275
Prawdziwe szablony ......................................................................................................275
Powtórka z szablonów macierzystych PHP .................................................................275
Wady szablonów macierzystych ................................................................................276
Prawdziwe szablony a szablony pakietu Smarty .........................................................276
Instalowanie pakietu Smarty ....................................................................................277
Korzystanie z pakietu Smarty ...................................................................................278
Zaawansowane moliwo4ci pakietu Smarty ...............................................................283
Kiedy korzysta@ z pakietu Smarty, a kiedy z tradycyjnych szablonów? .........................285
Podsumowanie .............................................................................................................285
Zgłoś jeśli naruszono regulamin