php. programowanie obiektowe full.pdf

(5210 KB) Pobierz
747431425 UNPDF
IDZ DO
PRZYK£ADOW Y ROZDZIA£
PHP. Programowanie
SPIS TREœCI
obiektowe
KATALOG KSI¥¯EK
Autor: Peter Lavin
T³umaczenie: Julia Szajkowska
ISBN: 83-246-0697-1
Tytu³ orygina³ u: Object Oriented PHP
Format: B5, stron: 232
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Jêzyk PHP od dawna cieszy siê zas³u¿onym uznaniem wœród twórców witryn WWW
i aplikacji internetowych. Prosta sk³adnia, ogromne mo¿liwoœci i dostêp na licencji
open-source przysporzy³y mu liczne grono zwolenników. W najnowszej wersji PHP,
oznaczonej numerem 5, twórcy jêzyka wprowadzili kolejn¹ ciekaw¹ i niezwykle
u¿yteczn¹ cechê — programowanie obiektowe. Otwiera to przed programistami nowe
mo¿liwoœci tworzenia wydajnych i bezpiecznych aplikacji. Dla tych, którzy nie znaj¹
jeszcze zasad programowania obiektowego, PHP 5 jest idealnym narzêdziem do nauki,
bowiem stosowany w nim model obiektowy jest niezwykle prosty i czytelny.
„PHP. Programowanie obiektowe” to œwietny podrêcznik, dziêki któremu opanujesz
mo¿liwoœci i sekrety tej techniki. Czytaj¹c go, poznasz nie tylko jêzyk PHP 5, ale tak¿e
ogólne zasady programowania obiektowego. Dowiesz siê, czym s¹ obiekt, klasa,
konstruktor, destruktor, dziedziczenie, polimorfizm i interfejs. Nauczysz siê tworzyæ
w³asne klasy i korzystaæ z nich w projektach. Przeczytasz tak¿e o komunikacji z baz¹
danych, stosowaniu jêzyka XML, protoko³u SOAP oraz zaznajomisz siê
z automatycznym tworzeniem dokumentacji kodu.
Podstawy programowania obiektowego
Obiektowe cechy PHP 5
Tworzenie klas
Po³¹czenia z bazami danych
Dziedziczenie i interfejsy
Przetwarzanie kana³ów RSS
Korzystanie z protoko³u SOAP
Generowanie dokumentacji za pomoc¹ klas Reflection
Praca z SQLite
Jeœli chcesz poznaæ PHP 5 i zasady programowania obiektowego,
ta ksi¹¿ka jest w³aœnie dla Ciebie
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
ONOWOœCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
747431425.002.png 747431425.003.png 747431425.004.png 747431425.005.png
PODZIĘKOWANIA .................................................................................... 11
WSTĘP ....................................................................................................... 13
1
JAKĄŻ SPLĄTANĄ SIEĆ PLECIEMY .......................................................... 21
Czy naprawdę potrzebujemy obiektów? ...............................................................................22
Tylko język skryptowy .......................................................................................................22
Obiekty tylko dla wielkich ..................................................................................................23
Zostawcie go w spokoju ....................................................................................................24
Zwiększona złożoność .......................................................................................................24
Kultura PHP ...........................................................................................................................24
2
PODSTAWY PROGRAMOWANIA OBIEKTOWEGO .................................... 27
Klasa .......................................................................................................................................28
Klasy kontra rekordy ..........................................................................................................28
Spójna całość ......................................................................................................................28
Obiekty są instancjami ........................................................................................................29
Obiekty potrzebują modyfikatorów dostępu .........................................................................29
Ponowne wykorzystanie obiektu i dziedziczenie ...................................................................30
Dziedziczenie wielokrotne .................................................................................................30
Mieć ciastko i zjeść ciastko .................................................................................................30
Co dalej? .................................................................................................................................31
747431425.001.png
3
NOWE CECHY OBIEKTOWE W PHP 5 ........................................................33
Modyfikatory dostępu ...........................................................................................................34
Klasy wbudowane .................................................................................................................. 34
Wyjątki ............................................................................................................................... 35
Klasy baz danych ................................................................................................................ 35
Usługi internetowe ............................................................................................................ 35
Klasy Reflection ................................................................................................................. 36
Iterator .............................................................................................................................. 36
Wsteczna kompatybilność ..................................................................................................... 36
Przekazany przez referencję ............................................................................................. 37
Prognozy ............................................................................................................................ 37
Co dalej? ................................................................................................................................ 38
Adaptacja PHP 5 ................................................................................................................38
Kompromis ........................................................................................................................ 39
4
POKAŻ ODROBINĘ KLASY .......................................................................41
Projekt ................................................................................................................................... 42
Definiowanie problemu ..................................................................................................... 42
Niekoniecznie kod Leonarda ................................................................................................. 43
Konstruktor ....................................................................................................................... 44
Odwoływanie się do zmiennych wystąpienia .................................................................... 44
Metody osłonowe .............................................................................................................. 45
Tworzenie egzemplarza ........................................................................................................ 46
Co osiągnęliśmy? .................................................................................................................... 47
Ale czy poleci? ....................................................................................................................... 48
5
ZMIEŃMY NASZĄ KLASĘ ..........................................................................49
Przejście do PHP 5 ................................................................................................................ 49
Modyfikatory dostępu ....................................................................................................... 50
Konstruktor ....................................................................................................................... 52
Modyfikowanie klasy ............................................................................................................. 53
Przebudowa konstruktora ................................................................................................. 53
Filtrowanie zawartości ....................................................................................................... 55
Przywrócenie pierwotnej postaci tablicy ........................................................................... 57
Podsumowanie zmian ............................................................................................................ 58
6
KLASA THUMBNAILIMAGE ......................................................................59
Zadania Projektanta ............................................................................................................... 60
Naśladowanie Projektanta ................................................................................................. 60
Pomoc ze strony funkcji PHP ............................................................................................ 60
4
Spis treści
Klasa ThumbnailImage ............................................................................................................61
Dane składowe ...................................................................................................................61
Przebudowa konstruktora .................................................................................................61
Dwa sposoby skonstruowania obiektu ..............................................................................62
Zachowanie wewnętrzne — metody prywatne ................................................................63
Czy musi być prywatna? .....................................................................................................64
Metoda pomocnicza ...........................................................................................................64
Metody publiczne ...............................................................................................................65
Czyszczenie pamięci ..........................................................................................................65
Wyświetlanie obrazu ..........................................................................................................66
Metody „pobierz” i „ustaw” ...............................................................................................66
Jakość obrazu .....................................................................................................................67
Kiedy zmieniać jakość? .......................................................................................................68
Wyświetlanie miniaturki .........................................................................................................68
Zbierając to razem .................................................................................................................69
Co dalej? .................................................................................................................................70
7
BUDOWANIE KLASY PAGENAVIGATOR .................................................. 71
Jak zachowuje się nawigator? .................................................................................................72
Różne rodzaje wyszukiwań ................................................................................................72
Jak to będzie wyglądać? ..........................................................................................................72
Kod .........................................................................................................................................73
Konstruktor ........................................................................................................................76
Stop złemu zachowaniu .....................................................................................................76
Inne wywołania metod konstruktora .................................................................................77
Metoda getNavigator .............................................................................................................79
„Przejdź do pierwszej” i „Przejdź do poprzedniej” ...........................................................79
Ciało nawigatora ................................................................................................................80
„Przejdź do następnej” i „Przejdź do ostatniej” .................................................................81
Bieżący i ostatni numer strony ...........................................................................................81
Co dalej? .................................................................................................................................82
8
WYKORZYSTANIE KLASY PAGENAVIGATOR .......................................... 83
Zmiany w klasie DirectoryItems ............................................................................................84
CSS i możliwość ponownego wykorzystania .........................................................................84
Stronicowanie z klasą .............................................................................................................86
Wyświetlanie fragmentu tablicy .........................................................................................88
Tworzenie obiektu PageNavigator ....................................................................................89
Co dalej? .................................................................................................................................90
Spis treści
5
9
KLASY BAZY DANYCH .............................................................................91
Korzystając z tego, co znane ................................................................................................. 91
Jedną kostkę cukru czy dwie? ................................................................................................ 92
Klasa MySQLConnect ............................................................................................................ 92
Zmienne świadome klasy .................................................................................................. 93
Tworzenie kolejnych połączeń .......................................................................................... 94
Droga do celu rozpoczyna się tutaj ................................................................................... 95
Klasa MySQLResultSet ...........................................................................................................95
Nawigator stron .................................................................................................................... 97
Sortowanie, filtrowanie i wydobywanie ............................................................................ 98
Przemierzanie zestawienia wyników ................................................................................. 99
Nawigator potrzebuje wskazówek ................................................................................... 99
Co po nawigatorze? ............................................................................................................. 101
10
Z DZIEDZICZENIEM LEPIEJ .....................................................................103
Standardowa biblioteka PHP — Standard PHP Library ...................................................... 104
Rozszerzenie klasy przez dziedziczenie .............................................................................. 104
Klasa wyjątków ................................................................................................................ 105
Słowo kluczowe protected .............................................................................................. 105
Słowo kluczowe final ....................................................................................................... 106
Więcej metod magicznych ............................................................................................... 106
Zamiana błędów na wyjątki ................................................................................................. 107
Klasa MySQLException ........................................................................................................ 108
Zmiany w klasie MySQLConnect ........................................................................................ 110
Pchnąć klasę do przodu ................................................................................................... 111
Przechwytywanie wyjątków ................................................................................................ 112
Implementacja interfejsu ...................................................................................................... 113
Kilka słów o interfejsie Iterator ....................................................................................... 114
Implementacja ................................................................................................................. 115
Zostawmy ją niezdefiniowaną ......................................................................................... 117
Implementacja i dostęp .................................................................................................... 118
Iteracja przez MySQLResultSet ....................................................................................... 119
Co dalej? .............................................................................................................................. 119
11
ZAAWANSOWANE POJĘCIA Z ZAKRESU PROGRAMOWANIA
OBIEKTOWEGO ........................................................................................121
Klasy abstrakcyjne ................................................................................................................ 122
Metody prywatne nie mogą być abstrakcyjne ................................................................. 122
Interfejs czy klasa czysto abstrakcyjna? ............................................................................ 123
Polimorfizm ......................................................................................................................... 123
Kontrola nad użyciem funkcji .......................................................................................... 124
6
Spis treści
Zgłoś jeśli naruszono regulamin