PHP_Obiekty_wzorce_narzedzia_Wydanie_III_phpob3.pdf

(638 KB) Pobierz
Idź do
• Spis treści
• Przykładowy rozdział
• Skorowidz
Katalog książek
• Katalog online
• Zamów drukowany
katalog
Twój koszyk
• Dodaj do koszyka
Cennik i informacje
• Zamów informacje
o nowościach
• Zamów cennik
Czytelnia
• Fragmenty książek
online
PHP. Obiekty, wzorce,
narzędzia. Wydanie III
Autor: Matt Zandstra
Tłumaczenie: Przemysław Szeremiota
ISBN: 978-83-246-3026-4
Tytuł oryginału:
PHP Objects, Patterns and Practice, Third Edition
Format: 168×237, stron: 496
Kontakt
Helion SA
ul. Kościuszki 1c
44-100 Gliwice
tel. 32 230 98 63
e-mail: helion@helion.pl
© Helion 1991–2011
Kompendium wiedzy na temat obiektów w PHP!
• Jak wykorzystać techniki obiektowe w PHP?
• Jaka obsługiwać wyjątkowe sytuacje?
• Jak zapewnić ciągłą integrację kodu?
PHP jest dowodem na to, że czas potrzebny na opanowanie języka programowania oraz uzyskanie
pierwszych efektów wcale nie musi zmierzać do nieskończoności! Łatwa konfiguracja środowiska
programistycznego, tanie i ogólnodostępne serwery do umieszczania własnych aplikacji oraz
witryn opartych o PHP, a ponadto duża liczba publikacji i chętna do pomocy społeczność
użytkowników sprawiły, że język PHP błyskawicznie zdobył uznanie. W ciągu ostatnich lat język
ten przeszedł obiektową rewolucję. Dostęp do zaawansowanych narzędzi, wzrost świadomości
oraz zmiany w samym języku wystarczyły, by programiści coraz powszechniej zaczęli stosować
techniki obiektowe w trakcie tworzenia rozwiązań w PHP.
W trakcie lektury tej książki zostaniesz wprowadzony w świat obiektów w PHP. Poznasz pojęcia
ściśle związane z tym podejściem do programowania – klasa, obiekt, metoda, dziedziczenie czy
widoczność zmiennych to słowa, które nabiorą dla Ciebie nowego znaczenia. Na kolejnych stronach
przeczytasz o tym, jak obsługiwać wyjątkowe sytuacje, korzystać z interfejsów, domknięć i funkcji
zwrotnych. Ponadto zdobędziesz wiedzę na temat projektowania obiektowego. Zasada hermetyzacji
i diagramy UML staną się dla Ciebie całkowicie jasne. Autor bardzo dużo czasu poświęca wzorcom
projektowym w PHP. Dzięki nim Twój kod stanie się przejrzysty, a nawet najtrudniejsze problemy
będą zdecydowanie łatwiejsze do rozwiązania. Na sam koniec sprawdzisz, jak najlepiej dokumentować
kod, korzystać z dodatkowych bibliotek oraz wykonywać testy jednostkowe. Książka ta stanowi
kompendium wiedzy na temat obiektowego programowania w PHP, dlatego musi się znaleźć na
półce każdej osoby choć trochę związanej z tym popularnym językiem programowania!
• Historia obiektowości w PHP
• Elementarz pojęć z programowania obiektowego
• Obsługa błędów
• Wykorzystanie interfejsów, klas abstrakcyjnych oraz metod statycznych
• Projektowanie obiektowe – diagramy UML, hermetyzacja
• Wzorce projektowe
• Wykorzystanie PEAR i Pyrus
• Generowanie dokumentacji za pomocą phpDocumentor
• Zarządzanie kodem za pomocą Subversion
• Przygotowywanie testów jednostkowych
• Automatyzacja instalacji
• Ciągła integracja kodu
Twórz lepszy, czytelniejszy i wydajniejszy kod w PHP!
Spis tre ci
O autorze .....................................................................................................................................11
O recenzencie technicznym ..........................................................................................................13
PodziÚkowania ............................................................................................................................15
Przedmowa do trzeciego wydania .................................................................................................17
CzÚ Ê I
Rozdziaï 1.
Wprowadzenie ................................................................................. 19
PHP — projektowanie i zarzÈdzanie ......................................................................21
Problem ................................................................................................................................................. 21
PHP a inne języki programowania .................................................................................................... 22
O książce ............................................................................................................................................... 24
Obiekty ........................................................................................................................................... 24
Wzorce ............................................................................................................................................ 24
Narzędzia ....................................................................................................................................... 25
Nowości w trzecim wydaniu ....................................................................................................... 26
Podsumowanie ..................................................................................................................................... 26
CzÚ Ê II
Rozdziaï 2.
Obiekty ............................................................................................. 27
PHP a obiekty ........................................................................................................29
Nieoczekiwany sukces obiektów w PHP ........................................................................................... 29
PHP/FI — u zarania języka ......................................................................................................... 29
PHP3 — składniowy lukier ......................................................................................................... 30
Cicha rewolucja — PHP4 ............................................................................................................ 30
PHP5 — nieuchronne zmiany .................................................................................................... 31
W przyszłości ........................................................................................................................................ 32
Debata obiektowa — za czy przeciw? ............................................................................................... 32
Podsumowanie ..................................................................................................................................... 32
Rozdziaï 3.
Obiektowy elementarz ..........................................................................................33
Klasy i obiekty ...................................................................................................................................... 33
Pierwsza klasa ................................................................................................................................ 33
Pierwszy obiekt (lub dwa) ........................................................................................................... 34
Definiowanie składowych klasy ......................................................................................................... 35
SPIS TRE¥CI
Metody .................................................................................................................................................. 37
Metoda konstrukcji obiektu ........................................................................................................ 38
Typy argumentów metod ................................................................................................................... 39
Typy elementarne ......................................................................................................................... 40
Typy obiektowe ............................................................................................................................. 42
Dziedziczenie ........................................................................................................................................ 44
Problemy związane z dziedziczeniem ........................................................................................ 44
Stosowanie dziedziczenia ............................................................................................................. 48
Zarządzanie dostępem do klasy — słowa public, private i protected ................................... 52
Podsumowanie ..................................................................................................................................... 56
Rozdziaï 4.
Zaawansowana obsïuga obiektów ........................................................................57
Metody i składowe statyczne .............................................................................................................. 57
Składowe stałe ...................................................................................................................................... 60
Klasy abstrakcyjne ............................................................................................................................... 61
Interfejsy ................................................................................................................................................ 62
Późne wiązanie statyczne: słowo static ............................................................................................. 64
Obsługa błędów .................................................................................................................................... 66
Wyjątki ........................................................................................................................................... 68
Klasy i metody finalne ......................................................................................................................... 72
Przechwytywanie chybionych wywołań ........................................................................................... 73
Definiowanie destruktorów ................................................................................................................ 77
Wykonywanie kopii obiektów ........................................................................................................... 78
Reprezentacja obiektu w ciągach znaków ........................................................................................ 80
Wywołania zwrotne, funkcje anonimowe i domknięcia .................................................................. 81
Podsumowanie ..................................................................................................................................... 85
Rozdziaï 5.
NarzÚdzia obiektowe .............................................................................................87
PHP a pakiety ....................................................................................................................................... 87
Pakiety i przestrzenie nazw w PHP ............................................................................................ 87
Ratunek — przestrzenie nazw ..................................................................................................... 88
Symulowanie systemu pakietów na bazie systemu plików ..................................................... 92
Nazwy à la PEAR .......................................................................................................................... 93
Ścieżki przeszukiwania ................................................................................................................. 93
Automatyczne wczytywanie kodu .............................................................................................. 95
Klasy i funkcje pomocnicze ................................................................................................................ 96
Szukanie klasy ................................................................................................................................ 97
Badanie obiektów i klas ................................................................................................................ 98
Badanie metod ............................................................................................................................... 99
Badanie składowych ................................................................................................................... 100
Badanie relacji dziedziczenia ..................................................................................................... 100
Badanie wywołań metod ............................................................................................................ 101
Interfejs retrospekcji — Reflection API .......................................................................................... 102
Zaczynamy ................................................................................................................................... 102
Pora zakasać rękawy ................................................................................................................... 103
Badanie klasy ............................................................................................................................... 104
Badanie metod ............................................................................................................................. 106
Badanie argumentów metod ..................................................................................................... 107
Korzystanie z retrospekcji ......................................................................................................... 108
Podsumowanie ................................................................................................................................... 111
4
SPIS TRE¥CI
Rozdziaï 6.
Obiekty a projektowanie obiektowe ...................................................................113
Czym jest projektowanie? ................................................................................................................. 113
Programowanie obiektowe i proceduralne .................................................................................... 114
Odpowiedzialność ...................................................................................................................... 117
Spójność ....................................................................................................................................... 117
Sprzęganie .................................................................................................................................... 118
Ortogonalność ............................................................................................................................. 118
Zasięg klas ........................................................................................................................................... 118
Polimorfizm ........................................................................................................................................ 119
Hermetyzacja ...................................................................................................................................... 121
Nieważne jak ....................................................................................................................................... 122
Cztery drogowskazy .......................................................................................................................... 122
Zwielokrotnianie kodu ............................................................................................................... 123
Przemądrzałe klasy ..................................................................................................................... 123
Złota rączka ................................................................................................................................. 123
Za dużo warunków ..................................................................................................................... 123
Język UML .......................................................................................................................................... 123
Diagramy klas .............................................................................................................................. 124
Diagramy sekwencji ................................................................................................................... 129
Podsumowanie ................................................................................................................................... 131
CzÚ Ê III
Rozdziaï 7.
Wzorce ........................................................................................... 133
Czym sÈ wzorce projektowe? Do czego siÚ przydajÈ? .........................................135
Czym są wzorce projektowe? ........................................................................................................... 135
Wzorzec projektowy .......................................................................................................................... 137
Nazwa ........................................................................................................................................... 137
Problem ........................................................................................................................................ 138
Rozwiązanie ................................................................................................................................. 138
Konsekwencje .............................................................................................................................. 138
Format wzorca według Bandy Czworga ......................................................................................... 138
Po co nam wzorce projektowe? ....................................................................................................... 139
Wzorzec projektowy definiuje problem .................................................................................. 139
Wzorzec projektowy definiuje rozwiązanie ............................................................................ 139
Wzorce projektowe są niezależne od języka programowania .............................................. 139
Wzorce definiują słownictwo .................................................................................................... 140
Wzorce są wypróbowane ........................................................................................................... 140
Wzorce mają współpracować .................................................................................................... 141
Wzorce promują prawidła projektowe .................................................................................... 141
Wzorce projektowe a PHP ............................................................................................................... 141
Podsumowanie ................................................................................................................................... 141
Rozdziaï 8.
Wybrane prawidïa wzorców ................................................................................143
Olśnienie wzorcami ........................................................................................................................... 143
Kompozycja i dziedziczenie ............................................................................................................. 144
Problem ........................................................................................................................................ 144
Zastosowanie kompozycji .......................................................................................................... 147
Rozprzęganie ...................................................................................................................................... 149
Problem ........................................................................................................................................ 149
Osłabianie sprzężenia ................................................................................................................. 150
5
Zgłoś jeśli naruszono regulamin