PHP5 Zaawansowane programowanie.pdf

(512 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
PHP5. Zaawansowane
programowanie
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
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¿liwo ci 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
TWÓJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWO CIACH
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
Je li chcesz poznaæ zaawansowane mo¿liwo ci PHP 5, siêgnij po t¹ ksi¹¿kê
Spis treści
O Autorach ................................................................................................................................................ 13
Wstęp ....................................................................................................................................................... 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 użycia ................................................................................... 53
Diagramy klas ............................................................................................................ 54
Modelowanie dziedziny .......................................................................................... 55
Relacje ................................................................................................................ 56
Implementacja ...................................................................................................... 58
Diagramy aktywności .................................................................................................. 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 menedżera kontaktów .................................................................................. 69
Diagramy UML dla menedżera kontaktów ................................................................. 70
Klasa PropertyObject ............................................................................................. 74
Klasy z informacjami kontaktowymi ......................................................................... 76
Klasa DataManager ............................................................................................... 80
Klasy Entity, Individual i Organization ....................................................................... 81
Użycie systemu ..................................................................................................... 88
Podsumowanie .......................................................................................................... 90
Rozdział 4. Wzorce projektowe .............................................................................................................. 91
Wzorzec złożony ......................................................................................................... 92
Implementacja ...................................................................................................... 93
Przemyślenia ........................................................................................................ 97
Wzorzec obserwatora .................................................................................................. 98
Widget ................................................................................................................. 98
Przemyślenia ...................................................................................................... 104
Wzorzec dekoratora .................................................................................................. 104
Implementacja .................................................................................................... 106
Korzystanie z dekoratora ...................................................................................... 107
Przemyślenia ...................................................................................................... 108
Wzorzec fasady ........................................................................................................ 109
Wzorzec budowniczego .............................................................................................. 111
Implementacja .................................................................................................... 111
Przemyślenia ...................................................................................................... 115
Podsumowanie ........................................................................................................ 115
Część II Tworzenie obiektowego zestawu narzędziowego. Proste klasy i interfejsy
117
Rozdział 5. Klasa Collection ...........................................................................................................................119
Założenia klasy Collection ............................................................................................. 119
Projektowanie klasy Collection ....................................................................................... 120
Fundamenty klasy Collection ......................................................................................... 121
Metoda addItem ...................................................................................................... 122
Metody getItem i removeItem ................................................................................... 123
Pozostałe metody .................................................................................................... 123
Użycie 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 zawartości iteratora ......................................................................................... 146
Podsumowanie ............................................................................................................. 147
Spis treści
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łasności 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 użyteczne 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 narzędzi do wielokrotnego wykorzystania.
Narzędzia 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 możliwości pakietu Smarty ............................................................... 283
Kiedy korzystać z pakietu Smarty, a kiedy z tradycyjnych szablonów? ......................... 285
Podsumowanie ............................................................................................................. 285
Zgłoś jeśli naruszono regulamin