PHP5_Tajniki_programowania_php5tp.pdf

(459 KB) Pobierz
IDZ DO
PRZYK£ADOW Y ROZDZIA£
PHP5. Tajniki
programowania
SPIS TRECI
KATALOG KSI¥¯EK
Autorzy: Andi Gutmans,
Stig Saether Bakken, Derick Rethans
T³umaczenie: Daniel Kaczmarek (przedmowa,
rozdz. 1, 8–11), Rados³aw Meryk (rozdz. 12–16,
dod. A–C), Anna Zawadzka (rozdz. 2–7)
ISBN: 83-7361-856-2
Tytu³ orygina³ u: PHP 5 Power Programming
Format: B5, stron: 728
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
Odkryj potêgê najnowszej wersji jêzyka PHP
• Zaawansowane techniki programowania w PHP5
• Wzorce projektowe i stosowanie technologii XML i SOAP
• Sposoby poprawy wydajnoci aplikacji
• Wspó³praca z bazami danych
PHP w ci¹gu ostatnich lat sta³ siê jednym z najpopularniejszych jêzyków
programowania wykorzystywanych do tworzenia aplikacji internetowych.
Swój sukces zawdziêcza prostocie i ogromnym mo¿liwociom, pozwalaj¹cym na pisanie
rozbudowanych aplikacji, znacznie przekraczaj¹cych funkcjonalnoci¹ „zwyk³e” portale
i dynamiczne strony WWW. Najnowsza wersja jêzyka PHP, oznaczona numerem 5,
to w pe³ni obiektowy jêzyk programowania umo¿liwiaj¹cy realizacjê z³o¿onych
projektów. Posiada mechanizmy obs³ugi plików XML i protoko³u SOAP oraz
poprawione i rozbudowane funkcje do komunikacji z bazami danych.
„PHP5. Tajniki programowania” to napisany przez wspó³twórcê jêzyka PHP5 oraz
dwóch doskona³ych programistów przewodnik opisuj¹cy ogromne mo¿liwoci tej
platformy. Autorzy przedstawiaj¹ sposoby wykorzystania PHP5 w projektach
informatycznych o dowolnej skali z³o¿onoci. Omawiaj¹ model obiektowy PHP5,
wzorce projektowe, metody korzystania z plików XML i technologii SOAP oraz techniki
wspó³pracy z bazami danych. W ksi¹¿ce znajdziesz tak¿e szczegó³owe omówienie
biblioteki PEAR, obs³ugi wyj¹tków oraz metod optymalizowania wydajnoci aplikacji.
• Nowe mo¿liwoci PHP5
• Podstawy PHP5 i programowania zorientowanego obiektowo
• Stosowanie wzorców projektowych
• Techniki tworzenia aplikacji WWW
• Komunikacja z bazami danych, wspó³praca z MySQL i SQLite
• Obs³uga b³êdów i wyj¹tków
• Przetwarzanie plików XML
• Instalowanie biblioteki PEAR
• Pakiety PEAR
• Tworzenie komponentów PEAR
• Przenoszenie kodu z PHP4 do wersji PHP5
• Projektowanie wydajnych aplikacji
Jeli tworzysz aplikacje WWW, pakiety lub rozszerzenia PHP, w tej ksi¹¿ce znajdziesz
odpowiedzi na wszystkie pytania.
DODAJ DO KOSZYKA
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
1097908871.016.png 1097908871.017.png 1097908871.018.png 1097908871.019.png 1097908871.001.png 1097908871.002.png 1097908871.003.png 1097908871.004.png 1097908871.005.png 1097908871.006.png 1097908871.007.png 1097908871.008.png 1097908871.009.png 1097908871.010.png 1097908871.011.png 1097908871.012.png 1097908871.013.png 1097908871.014.png 1097908871.015.png
 
Spis treci
Słowo wstpne ...............................................................................15
Przedmowa .....................................................................................17
Rozdział 1. Co nowego w PHP5? ......................................................................25
1.1. Wprowadzenie ..................................................................................................... 25
1.2. Własnoci jzyka ................................................................................................. 25
1.2.1. Nowy model zorientowany obiektowo ................................................... 25
1.2.2. Nowe mechanizmy zorientowane obiektowo ......................................... 27
1.2.3. Pozostałe nowe mechanizmy jzyka ...................................................... 31
1.3. Ogólne zmiany w PHP ......................................................................................... 32
1.3.1. XML i usługi sieciowe ........................................................................... 32
1.4. Pozostałe nowe mechanizmy PHP5 ..................................................................... 36
1.4.1. Nowy mened,er pamici ........................................................................ 36
1.4.2. Wycofana obsługa Windows 95 ............................................................. 36
1.5. Podsumowanie ..................................................................................................... 36
Rozdział 2. Podstawy jzyka PHP5 ....................................................................37
2.1. Wprowadzenie ..................................................................................................... 37
2.2. Osadzanie w HTML ............................................................................................. 38
2.3. Komentarze .......................................................................................................... 38
2.4. Zmienne ............................................................................................................... 39
2.4.1. Porednie referencje do zmiennych ........................................................ 40
2.4.2. Zarz4dzanie zmiennymi ......................................................................... 40
2.4.3. Superglobale ........................................................................................... 42
2.5. Podstawowe typy danych ..................................................................................... 43
2.5.1. Liczby całkowite .................................................................................... 43
2.5.2. Liczby zmiennopozycyjne ...................................................................... 43
2.5.3. Ła7cuchy ................................................................................................ 44
2.5.4. Typ logiczny (boolowski) ...................................................................... 46
2.5.5. Null ........................................................................................................ 47
2.5.6. Identyfikator zasobów (resource) ........................................................... 48
2.5.7. Tablice .................................................................................................... 48
2.5.8. Stałe ....................................................................................................... 54
2.6. Operatory ............................................................................................................. 55
2.6.1. Operatory binarne ................................................................................... 56
2.6.2. Operatory przypisania ............................................................................ 56
2.6.3. Operatory porównania ............................................................................ 57
2.6.4. Operatory logiczne ................................................................................. 58
2.6.5. Operatory bitowe .................................................................................... 59
 
6
PHP5. Tajniki programowania
2.6.6. Operatory jednoargumentowe ................................................................ 59
2.6.7. Operatory negacji ................................................................................... 59
2.6.8. Operatory inkrementacji i dekrementacji ............................................... 60
2.6.9. Operatory rzutowania ............................................................................. 61
2.6.10. Operator kontroli błdów ....................................................................... 61
2.6.11. Jedyny operator trójargumentowy (tzw. ternariusz) ............................... 62
2.7. Struktury kontrolne .............................................................................................. 62
2.7.1. Warunkowe struktury kontrolne ............................................................. 62
2.7.2. Struktury kontrolne w postaci ptli ........................................................ 65
2.7.3. Struktury kontrolne doł4czania kodu ...................................................... 68
2.8. Funkcje ................................................................................................................ 70
2.8.1. Funkcje definiowane przez u,ytkownika ............................................... 71
2.8.2. Zasig funkcji ......................................................................................... 71
2.8.3. Zwracanie wartoci przez warto= .......................................................... 72
2.8.4. Zwracanie wartoci przez referencj ...................................................... 73
2.8.5. Definiowanie parametrów funkcji .......................................................... 73
2.8.6. Zmienne statyczne .................................................................................. 75
2.9. Podsumowanie ..................................................................................................... 75
Rozdział 3. Jzyk obiektowy .............................................................................77
3.1. Wprowadzenie ..................................................................................................... 77
3.2. Obiekty ................................................................................................................ 78
3.3. Deklarowanie klasy .............................................................................................. 79
3.4. Słowo kluczowe new i konstruktory .................................................................... 79
3.5. Destruktory .......................................................................................................... 80
3.6. Odwoływanie si do metod i właciwoci przy u,yciu zmiennej $this ................ 81
3.6.1. Właciwoci public, protected i private .................................................. 81
3.6.2. Metody public, protected i private .......................................................... 83
3.6.3. Właciwoci statyczne ............................................................................ 84
3.6.4. Metody statyczne ................................................................................... 86
3.7. Stałe klasy ............................................................................................................ 86
3.8. Klonowanie obiektów .......................................................................................... 87
3.9. Polimorfizm ......................................................................................................... 89
3.10. parent:: i self:: ...................................................................................................... 91
3.11. Operator instanceof .............................................................................................. 92
3.12. Metody i klasy abstrakcyjne ................................................................................ 93
3.13. Interfejsy .............................................................................................................. 94
3.14. Dziedziczenie interfejsów .................................................................................... 96
3.15. Metody final ........................................................................................................ 96
3.16. Klasy final ............................................................................................................ 97
3.17. Metoda __toString() ............................................................................................. 97
3.18. Obsługa wyj4tków ............................................................................................... 98
3.19. __autoload() ....................................................................................................... 101
3.20. Wskazania typu klasy w parametrach funkcji .................................................... 103
3.21. Podsumowanie ................................................................................................... 104
Rozdział 4. Zaawansowane programowanie obiektowe i wzorce projektowe ......105
4.1. Wprowadzenie ................................................................................................... 105
4.2. Mo,liwoci przeci4,ania .................................................................................... 105
4.2.1. Przeci4,anie właciwoci i metod ........................................................ 106
4.2.2. Przeci4,anie składni dostpu do tablic ................................................. 108
4.3. Iteratory ............................................................................................................. 109
4.4. Wzorce projektowe ............................................................................................ 113
4.4.1. Wzorzec strategii .................................................................................. 114
4.4.2. Wzorzec Singleton ............................................................................... 116
Spis treci
7
4.4.3. Wzorzec fabryki ................................................................................... 117
4.4.4. Wzorzec obserwatora ........................................................................... 120
4.5. Refleksja (ang. reflection) .................................................................................. 122
4.5.1. Wprowadzenie ...................................................................................... 122
4.5.2. Interfejs Reflector ................................................................................. 123
4.5.3. Przykłady u,ycia refleksji .................................................................... 125
4.5.4. Implementowanie wzorca delegata przy u,yciu refleksji ..................... 126
4.6. Podsumowanie ................................................................................................... 128
Rozdział 5. Jak napisa' aplikacj sieci WWW z PHP ........................................129
5.1. Wprowadzenie ................................................................................................... 129
5.2. Osadzanie w kodzie HTML ............................................................................... 130
5.3. Dane wprowadzane przez u,ytkownika ............................................................. 132
5.4. Zabezpieczanie danych wprowadzanych przez u,ytkownika .............................. 134
5.4.1. Pospolite błdy ..................................................................................... 135
5.5. Techniki zabezpieczania skryptów .................................................................... 137
5.5.1. Sprawdzanie danych wejciowych ....................................................... 137
5.5.2. Weryfikacja HMAC ............................................................................. 139
5.5.3. PEAR::Crypt_HMAC .......................................................................... 140
5.5.4. Program filtruj4cy ................................................................................ 143
5.5.5. Praca z hasłami ..................................................................................... 144
5.5.6. Obsługa błdów .................................................................................... 145
5.6. Cookies .............................................................................................................. 146
5.7. Sesje ................................................................................................................... 149
5.8. Wgrywanie plików (ang. upload) ...................................................................... 153
5.8.1. Obsługiwanie przychodz4cego wgrywanego pliku .............................. 153
5.9. Architektura ....................................................................................................... 158
5.9.1. Jeden skrypt obsługuje wszystko .......................................................... 158
5.9.2. Jeden skrypt na funkcj ........................................................................ 159
5.9.3. Oddzielanie logiki od układu ............................................................... 159
5.10. Podsumowanie ................................................................................................... 161
Rozdział 6. Bazy danych z PHP5 .....................................................................163
6.1. Wprowadzenie ................................................................................................... 163
6.2. MySQL .............................................................................................................. 164
6.2.1. Mocne i słabe strony MySQL ............................................................... 164
6.2.2. Interfejs PHP ........................................................................................ 165
6.2.3. Przykładowe dane ................................................................................ 166
6.2.4. Poł4czenia ............................................................................................ 166
6.2.5. Zapytania buforowane i niebuforowane ............................................... 168
6.2.6. Zapytania .............................................................................................. 168
6.2.7. Zapytania z wieloma instrukcjami ........................................................ 169
6.2.8. Tryby pobierania .................................................................................. 170
6.2.9. Zapytania preinterpretowane ................................................................ 170
6.2.10. Obsługa BLOB ..................................................................................... 173
6.3. SQLite ................................................................................................................ 174
6.3.1. Mocne i słabe strony SQLite ................................................................ 174
6.3.2. Najlepsze obszary zastosowania ........................................................... 176
6.3.3. Interfejs PHP ........................................................................................ 176
6.4. PEAR DB .......................................................................................................... 191
6.4.1. Uzyskiwanie PEAR BD ....................................................................... 191
6.4.2. Wady i zalety abstrakcji baz danych .................................................... 191
6.4.3. Które funkcje s4 abstrahowane ............................................................. 192
6.4.4. Poł4czenia z baz4 danych ..................................................................... 193
8
PHP5. Tajniki programowania
6.4.5. Wykonywanie zapyta7 ......................................................................... 195
6.4.6. Pobieranie wyników ............................................................................. 198
6.4.7. Sekwencje ............................................................................................ 200
6.4.8. Funkcje zwi4zane z przenonoci4 ....................................................... 201
6.4.9. Błdy abstrakcyjne ............................................................................... 203
6.4.10. Metody zło,one .................................................................................... 205
6.5. Podsumowanie ................................................................................................... 207
Rozdział 7. Obsługa błdów ............................................................................209
7.1. Wprowadzenie ................................................................................................... 209
7.2. Rodzaje błdów ................................................................................................. 210
7.2.1. Błdy programistyczne ......................................................................... 210
7.2.2. Niezdefiniowane symbole .................................................................... 213
7.2.3. Błdy dotycz4ce przenonoci .............................................................. 215
7.2.4. Błdy wykonania .................................................................................. 219
7.2.5. Błdy PHP ............................................................................................ 219
7.3. Błdy PEAR ...................................................................................................... 225
7.3.1. Klasa PEAR_Error ............................................................................... 228
7.3.2. Obsługa błdów PEAR ......................................................................... 231
7.3.3. Tryby błdów PEAR ............................................................................ 232
7.3.4. Łagodna obsługa błdów ...................................................................... 233
7.4. Wyj4tki .............................................................................................................. 235
7.4.1. Co to s4 wyj4tki .................................................................................... 235
7.4.2. try, catch i throw .................................................................................. 236
7.5. Podsumowanie ................................................................................................... 238
Rozdział 8. XML i PHP5 ..................................................................................239
8.1. Wprowadzenie ................................................................................................... 239
8.2. Słownictwo ........................................................................................................ 240
8.3. Parsowanie XML-a ............................................................................................ 242
8.3.1. SAX ..................................................................................................... 242
8.3.2. DOM .................................................................................................... 246
8.4. SimpleXML ....................................................................................................... 250
8.4.1. Tworzenie obiektu SimpleXML ........................................................... 251
8.4.2. Przegl4danie obiektów SimpleXML .................................................... 251
8.4.3. Zapisywanie obiektów SimpleXML ..................................................... 253
8.5. PEAR ................................................................................................................. 253
8.5.1. XML_Tree ........................................................................................... 253
8.5.2. XML_RSS ............................................................................................ 254
8.6. Przekształcanie XML-a ...................................................................................... 257
8.6.1. XSLT .................................................................................................... 257
8.7. Komunikacja za porednictwem XML .............................................................. 261
8.7.1. XML-RPC ............................................................................................ 262
8.7.2. SOAP ................................................................................................... 269
8.8. Podsumowanie ................................................................................................... 275
Rozdział 9. Najwa6niejsze rozszerzenia ............................................................277
9.1. Wprowadzenie ................................................................................................... 277
9.2. Pliki i strumienie ................................................................................................ 278
9.2.1. Dostp do plików ................................................................................. 278
9.2.2. Dane wejciowe i wyjciowe z programu ............................................ 280
9.2.3. Strumienie wejcia/wyjcia .................................................................. 283
9.2.4. Strumienie kompresji ........................................................................... 284
9.2.5. Strumienie u,ytkownika ....................................................................... 286
9.2.6. Strumienie URL ................................................................................... 288
Zgłoś jeśli naruszono regulamin