php.-zaawansowane-programowanie scan.pdf

(19791 KB) Pobierz
888126100.001.png
Spis treci
O autorach ...................................................................................................................................11
O korektorze merytorycznym .......................................................................................................13
Przedmowa ..................................................................................................................................15
Wprowadzenie do PHP ................................................................................................................17
Rozdzia 1.
Obiektowo ..........................................................................................................21
Klasy ....................................................................................................................................................... 21
Dziedziczenie i przeciążanie ............................................................................................................... 23
„Magiczne” funkcje ............................................................................................................................. 27
Metody __get i __set .................................................................................................................... 27
Metoda __isset ............................................................................................................................... 28
Metoda __call ................................................................................................................................ 28
Metoda __toString() ..................................................................................................................... 29
Kopiowanie, klonowanie oraz porównywanie obiektów ............................................................... 29
Interfejsy, iteratory i klasy abstrakcyjne ........................................................................................... 31
Kontekst klasy i elementy statyczne .................................................................................................. 35
Podsumowanie ..................................................................................................................................... 36
Rozdzia 2.
Wyjtki i referencje ................................................................................................37
Wyjątki .................................................................................................................................................. 37
Referencje .............................................................................................................................................. 41
Podsumowanie ..................................................................................................................................... 45
Rozdzia 3.
Mobilne PHP ..........................................................................................................47
Różnorodność urządzeń ..................................................................................................................... 47
Rozpoznanie urządzenia ..................................................................................................................... 48
Aplikacja kliencka ......................................................................................................................... 48
Wbudowane funkcje PHP ........................................................................................................... 48
Rozpoznawanie możliwości urządzenia ........................................................................................... 51
WURFL .......................................................................................................................................... 51
Tera-WURFL ................................................................................................................................. 57
888126100.002.png
PHP. ZAAWANSOWANE PROGRAMOWANIE
Narzędzia renderujące ........................................................................................................................ 60
WALL ............................................................................................................................................. 60
Reagujący CSS ............................................................................................................................... 62
Emulatory i SDK .................................................................................................................................. 62
Tworzenie dla systemu Android ................................................................................................ 62
Adobe Flash Builder dla PHP ..................................................................................................... 62
Kody QR ................................................................................................................................................ 63
Podsumowanie ..................................................................................................................................... 64
Rozdzia 4.
Media spoecznociowe .........................................................................................65
OAuth .................................................................................................................................................... 65
Twitter ................................................................................................................................................... 66
API publicznego wyszukiwania .................................................................................................. 66
Prywatne REST API ..................................................................................................................... 67
Wykorzystanie mechanizmu OAuth w celu powiązania strony z systemem logowania ........77
Dodatkowe metody API i przykłady jego wykorzystania ....................................................... 80
Facebook ............................................................................................................................................... 83
Dodanie linku wylogowania z Facebooka ................................................................................. 88
Żądanie dodatkowych uprawnień .............................................................................................. 89
Graph API ...................................................................................................................................... 89
Podsumowanie ..................................................................................................................................... 91
Rozdzia 5.
Nowoci technologiczne ........................................................................................93
Przestrzenie nazw ................................................................................................................................ 93
Przestrzenie nazw i autoładowanie ............................................................................................ 96
Przestrzenie nazw — podsumowanie ........................................................................................ 96
Funkcje anonimowe ............................................................................................................................ 96
Nowdoc ................................................................................................................................................. 97
Lokalne instrukcje goto ..................................................................................................................... 100
Standardowa biblioteka PHP — SPL .............................................................................................. 100
SPL — podsumowanie ............................................................................................................... 103
Rozszerzenie phar .............................................................................................................................. 103
Podsumowanie ................................................................................................................................... 106
Rozdzia 6.
Tworzenie formularzy i zarzdzanie nimi ............................................................107
Walidacja danych ............................................................................................................................... 107
Wczytywanie plików i obrazów ....................................................................................................... 113
Konwersja obrazów i miniatury ...................................................................................................... 114
Wyrażenia regularne ......................................................................................................................... 115
Integracja języków ............................................................................................................................. 118
Podsumowanie ................................................................................................................................... 119
Rozdzia 7.
Integracja z bazami danych. Cz I ....................................................................121
Wprowadzenie do MongoDB .......................................................................................................... 122
Zapytania w MongoDB .............................................................................................................. 126
Modyfikowanie dokumentów w MongoDB ........................................................................... 130
Agregacje w MongoDB .............................................................................................................. 132
Podsumowanie MongoDB ........................................................................................................ 134
6
SPIS TRECI
Wprowadzenie do CouchDB ........................................................................................................... 134
Wykorzystanie interfejsu Futon ............................................................................................... 135
Podsumowanie CouchDB ......................................................................................................... 140
Wprowadzenie do SQLite ................................................................................................................. 141
Podsumowanie SQLite ............................................................................................................... 149
Podsumowanie ................................................................................................................................... 149
Rozdzia 8.
Integracja z bazami danych. Cz II ...................................................................151
Wprowadzenie do rozszerzenia MySQLi ....................................................................................... 151
Podsumowanie rozszerzenia MySQLi ..................................................................................... 158
Wprowadzenie do PDO .................................................................................................................... 158
Podsumowanie PDO .................................................................................................................. 161
Wprowadzenie do ADOdb ............................................................................................................... 161
Podsumowanie ADOdb ............................................................................................................. 165
Wyszukiwanie pełnotekstowe przy wykorzystaniu Sphinksa ..................................................... 165
Podsumowanie ................................................................................................................................... 173
Rozdzia 9.
Integracja z bazami danych. Cz III ..................................................................175
Wprowadzenie do Oracle ................................................................................................................. 175
Podstawy. Połączenie i wykonywanie zapytań .............................................................................. 177
Interfejs tablicowy .............................................................................................................................. 180
Procedury i kursory w PL/SQL ........................................................................................................ 183
Praca z typami LOB ........................................................................................................................... 186
Inne podejście do połączeń — pule połączeń ................................................................................ 190
Zestawy znaków w bazie danych i PHP .......................................................................................... 192
Podsumowanie ................................................................................................................................... 193
Rozdzia 10.
Biblioteki .............................................................................................................195
SimplePie ............................................................................................................................................. 196
TCPDF ................................................................................................................................................. 199
Pobieranie danych ze stron internetowych ............................................................................. 204
Integracja z Mapami Google ............................................................................................................ 209
Wiadomości e-mail i SMS ................................................................................................................ 211
gChartPHP — biblioteka wykorzystująca Google Chart API ..................................................... 215
Podsumowanie ................................................................................................................................... 219
Rozdzia 11.
Bezpieczestwo ...................................................................................................221
Nigdy nie ufaj danym ........................................................................................................................ 221
register_globals ........................................................................................................................... 222
Białe i czarne listy ....................................................................................................................... 222
Dane formularzy ......................................................................................................................... 223
$_COOKIES, $_SESSION i $_SERVER .................................................................................. 224
Żądania Ajax ................................................................................................................................ 224
Powszechne ataki ............................................................................................................................... 225
Polityka tego samego pochodzenia .......................................................................................... 225
XSS (Cross Site Scripting) .......................................................................................................... 225
CSRF (Cross-Site Request Forgery) ......................................................................................... 228
Sesje ...................................................................................................................................................... 229
Zapobieganie atakom typu SQL injection ...................................................................................... 229
7
PHP. ZAAWANSOWANE PROGRAMOWANIE
Wyrażenia filtrujące .......................................................................................................................... 230
Plik php.ini i ustawienia serwera ..................................................................................................... 233
Środowisko serwerowe ............................................................................................................... 233
Zabezpieczanie pliku php.ini .................................................................................................... 234
Algorytmy haseł ................................................................................................................................. 235
Podsumowanie ................................................................................................................................... 236
Rozdzia 12.
Programowanie zwinne z wykorzystaniem Zend Studio dla Eclipse, Bugzilli,
Mylyn i Subversion ..............................................................................................237
Zasady programowania zwinnego .................................................................................................. 237
Rajd programowania zwinnego ....................................................................................................... 238
Wprowadzenie do programu Bugzilla ............................................................................................ 239
Mylyn dla Eclipse ............................................................................................................................... 240
Bugzilla i Mylyn w połączeniu z Eclipse ......................................................................................... 242
Maksymalizowanie korzyści ............................................................................................................. 245
Podsumowanie ................................................................................................................................... 246
Rozdzia 13.
Refaktoryzacja, testy jednostkowe i ciga integracja .........................................249
Refaktoryzacja .................................................................................................................................... 249
Niewielka refaktoryzacja ............................................................................................................ 250
Większy przykład ........................................................................................................................ 253
Testy jednostkowe ............................................................................................................................. 265
Ciągła integracja ................................................................................................................................. 279
Serwer ciągłej integracji ............................................................................................................. 280
System kontroli wersji ................................................................................................................ 280
Analiza statyczna ........................................................................................................................ 281
Budowanie automatyzacji .......................................................................................................... 282
Uruchomienie serwera Jenkins ................................................................................................. 282
Podsumowanie ................................................................................................................................... 285
Rozdzia 14.
XML .....................................................................................................................287
Podstawy XML ................................................................................................................................... 287
Schematy ............................................................................................................................................. 288
SimpleXML ......................................................................................................................................... 289
Parsowanie XML z tekstu .......................................................................................................... 289
Parsowanie XML z pliku ............................................................................................................ 290
Przestrzenie nazw ....................................................................................................................... 294
RSS ................................................................................................................................................ 296
Generowanie dokumentów XML za pomocą SimpleXML .................................................. 298
DOMDocument ................................................................................................................................. 303
XMLReader i XMLWriter ................................................................................................................ 305
Podsumowanie ................................................................................................................................... 306
Rozdzia 15.
JSON i Ajax ..........................................................................................................307
JSON .................................................................................................................................................... 308
PHP i JSON .................................................................................................................................. 309
Ajax ...................................................................................................................................................... 312
Tradycyjny model WWW ......................................................................................................... 313
Model Ajax ................................................................................................................................... 313
Zdarzenia synchroniczne kontra asynchroniczne ................................................................. 315
8
Zgłoś jeśli naruszono regulamin