PHP5_Tajniki_programowania_php5tp.pdf

(441 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI
PHP5. Tajniki
programowania
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
Odkryj potêgê najnowszej wersji jêzyka PHP
• Zaawansowane techniki programowania w PHP5
• Wzorce projektowe i stosowanie technologii XML i SOAP
• Sposoby poprawy wydajno ci 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¿liwo ciom, pozwalaj¹cym na pisanie
rozbudowanych aplikacji, znacznie przekraczaj¹cych funkcjonalno ci¹ „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¿liwo ci tej
platformy. Autorzy przedstawiaj¹ sposoby wykorzystania PHP5 w projektach
informatycznych o dowolnej skali z³o¿ono ci. 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 wydajno ci aplikacji.
• Nowe mo¿liwo ci 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
Je li tworzysz aplikacje WWW, pakiety lub rozszerzenia PHP, w tej ksi¹¿ce znajdziesz
odpowiedzi na wszystkie pytania.
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
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treści
Słowo wstępne ............................................................................... 15
Przedmowa ..................................................................................... 17
Rozdział 1. Co nowego w PHP5? ...................................................................... 25
1.1. Wprowadzenie ..................................................................................................... 25
1.2. Własności języka ................................................................................................. 25
1.2.1. Nowy model zorientowany obiektowo ................................................... 25
1.2.2. Nowe mechanizmy zorientowane obiektowo ......................................... 27
1.2.3. Pozostałe nowe mechanizmy języka ...................................................... 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 pamięci ........................................................................ 36
1.4.2. Wycofana obsługa Windows 95 ............................................................. 36
1.5. Podsumowanie ..................................................................................................... 36
Rozdział 2. Podstawy języka PHP5 .................................................................... 37
2.1. Wprowadzenie ..................................................................................................... 37
2.2. Osadzanie w HTML ............................................................................................. 38
2.3. Komentarze .......................................................................................................... 38
2.4. Zmienne ............................................................................................................... 39
2.4.1. Pośrednie referencje do zmiennych ........................................................ 40
2.4.2. Zarządzanie 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. Łańcuchy ................................................................................................ 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 pętli ........................................................ 65
2.7.3. Struktury kontrolne dołączania kodu ...................................................... 68
2.8. Funkcje ................................................................................................................ 70
2.8.1. Funkcje definiowane przez u ytkownika ............................................... 71
2.8.2. Zasięg funkcji ......................................................................................... 71
2.8.3. Zwracanie wartości przez wartość .......................................................... 72
2.8.4. Zwracanie wartości przez referencję ...................................................... 73
2.8.5. Definiowanie parametrów funkcji .......................................................... 73
2.8.6. Zmienne statyczne .................................................................................. 75
2.9. Podsumowanie ..................................................................................................... 75
Rozdział 3. Język 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łaściwości przy u yciu zmiennej $this ................ 81
3.6.1. Właściwości public, protected i private .................................................. 81
3.6.2. Metody public, protected i private .......................................................... 83
3.6.3. Właściwości 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 wyjątkó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 liwości przecią ania .................................................................................... 105
4.2.1. Przecią anie właściwości i metod ........................................................ 106
4.2.2. Przecią anie składni dostępu 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 treści
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 wejściowych ....................................................... 137
5.5.2. Weryfikacja HMAC ............................................................................. 139
5.5.3. PEAR::Crypt_HMAC .......................................................................... 140
5.5.4. Program filtrujący ................................................................................ 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 przychodzącego 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łączenia ............................................................................................ 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 są abstrahowane ............................................................. 192
6.4.4. Połączenia z bazą danych ..................................................................... 193
8
PHP5. Tajniki programowania
6.4.5. Wykonywanie zapytań ......................................................................... 195
6.4.6. Pobieranie wyników ............................................................................. 198
6.4.7. Sekwencje ............................................................................................ 200
6.4.8. Funkcje związane z przenośnością ....................................................... 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 dotyczące przenośności .............................................................. 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. Wyjątki .............................................................................................................. 235
7.4.1. Co to są wyjątki .................................................................................... 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. Przeglądanie 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 pośrednictwem XML .............................................................. 261
8.7.1. XML-RPC ............................................................................................ 262
8.7.2. SOAP ................................................................................................... 269
8.8. Podsumowanie ................................................................................................... 275
Rozdział 9. Najważniejsze rozszerzenia ............................................................ 277
9.1. Wprowadzenie ................................................................................................... 277
9.2. Pliki i strumienie ................................................................................................ 278
9.2.1. Dostęp do plików ................................................................................. 278
9.2.2. Dane wejściowe i wyjściowe z programu ............................................ 280
9.2.3. Strumienie wejścia/wyjścia .................................................................. 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