E-book details

Mistrz PHP. Pisz nowoczesny kod

Mistrz PHP. Pisz nowoczesny kod

Matthew Turland, Davey Shafik, Lorna Mitchell

Ebook

Wykorzystaj najnowsze techniki programowania, dzięki którym osiągniesz wyższy poziom zaawansowania

"Mistrz PHP. Pisz nowoczesny kod" to książka przeznaczona dla programistów PHP, którzy znają już podstawy tego języka i chcą rozwinąć swoje umiejętności, by tworzyć bardziej zaawansowane rozwiązania. Znajdziesz w niej cenne rady, jak udoskonalić swoje aplikacje serwerowe, oraz wszystko, czego potrzeba do stosowania najefektywniejszych technik obiektowych, zabezpieczania kodu czy pisania programów idealnie spełniających swoje zadania. W każdym rozdziale poznasz nowe sposoby wykonywania pewnych zadań oraz nowe teorie, leżące u podłoża stosowanych przez Ciebie technik.

Dzięki lekturze tej publikacji przemienisz się ze sprawnego programisty w pewnego siebie inżyniera - stosującego najlepsze praktyki programistyczne, pracującego szybko i solidnie. Autorzy przedstawiają praktyczne problemy i użyteczne rozwiązania, które zaprowadzą Cię na szczyt kariery! Jeśli szukasz możliwości scementowania całej swojej wiedzy i chcesz zdobyć solidne podstawy, ta książka jest dla Ciebie.

Dowiesz się z niej, jak:

  • tworzyć profesjonalne dynamiczne aplikacje w oparciu o obiektowe wzorce programowania
  • używać zaawansowanych narzędzi do oceny wydajności programów, aby zmaksymalizować ich możliwości
  • stosować nowoczesne techniki testowania, pozwalające uzyskać niezawodny kod
  • zabezpieczać programy przed atakami zewnętrznymi przy użyciu najskuteczniejszych technik
  • używać funkcji dostępnych w bibliotekach i interfejsach programistycznych języka PHP

…i wiele więcej

Praktyczne problemy i użyteczne rozwiązania,
które zaprowadzą Cię na szczyt kariery!


Wstęp (13)

Adresaci książki (13)

Zawartość książki (14)

Strona internetowa książki (16)

Podziękowania (16)

Konwencje typograficzne (17)

Wskazówki, uwagi i ostrzeżenia (18)

Rozdział 1. Programowanie obiektowe (19)

  • Dlaczego programowanie obiektowe (19)
    • Terminologia obiektowa (19)
  • Wprowadzenie do programowania obiektowego (20)
    • Deklarowanie klas (20)
    • Konstruktory (21)
    • Tworzenie obiektów (21)
    • Automatyczne ładowanie (22)
    • Używanie obiektów (23)
    • Własności i metody statyczne (23)
    • Obiekty i przestrzenie nazw (24)
  • Dziedziczenie (27)
  • Obiekty i funkcje (29)
    • Określanie typów parametrów (29)
    • Polimorfizm (29)
    • Obiekty i referencje (30)
    • Przekazywanie obiektów jako parametrów funkcji (31)
    • Płynne interfejsy (32)
  • Słowa kluczowe public, private i protected (33)
    • Modyfikator public (33)
    • Modyfikator private (33)
    • Modyfikator protected (34)
    • Wybór zakresu dostępności (34)
    • Kontrola dostępności przy użyciu metod sprawdzających i ustawiających (35)
    • Magiczne metody __get i __set (36)
  • Interfejsy (37)
    • Interfejs Countable z biblioteki SPL (37)
    • Liczenie obiektów (37)
    • Deklarowanie i używanie interfejsów (38)
    • Identyfikowanie obiektów i interfejsów (39)
  • Wyjątki (40)
    • Obsługa wyjątków (40)
    • Dlaczego należy używać wyjątków (41)
    • Zgłaszanie wyjątków (41)
    • Rozszerzanie klas wyjątków (41)
    • Przechwytywanie wybranych typów wyjątków (42)
    • Ustawianie globalnej procedury obsługi wyjątków (43)
    • Wywołania zwrotne (44)
  • Metody magiczne - zaawansowane wiadomości (44)
    • Metody __call() i __callStatic() (45)
    • Drukowanie zawartości obiektów przy użyciu metody __toString() (46)
    • Serializacja obiektów (46)
  • Osiągnięte cele (48)

Rozdział 2. Bazy danych (49)

  • Dane trwałe i aplikacje sieciowe (49)
  • Sposoby składowania danych (50)
  • Budowanie serwisu z przepisami na podstawie bazy MySQL (51)
    • Tworzenie tabel (51)
  • Rozszerzenie PDO (53)
    • Łączenie się z bazą MySQL przy użyciu PDO (53)
    • Pobieranie danych z tabel w bazie (54)
    • Tryby pobierania danych (54)
    • Parametry i instrukcje preparowane (55)
    • Wiązanie wartości i zmiennych z instrukcjami preparowanymi (57)
    • Wstawianie wiersza i pobieranie jego identyfikatora (58)
    • Sprawdzanie liczby wstawionych, zmienionych i usuniętych rekordów (59)
    • Usuwanie danych (60)
  • Obsługa błędów w PDO (60)
    • Obsługa błędów związanych z przygotowywaniem zapytań (60)
    • Obsługa błędów związanych z wykonywaniem zapytań (61)
    • Obsługa błędów związanych z pobieraniem danych (62)
  • Zaawansowane funkcje PDO (63)
    • Transakcje a PDO (63)
    • Procedury składowane i PDO (64)
  • Projektowanie bazy danych (65)
    • Klucze główne i indeksy (65)
    • Polecenie MySQL Explain (65)
    • Złączenia wewnętrzne (69)
    • Złączenia zewnętrzne (70)
    • Funkcje agregujące i grupowanie (71)
    • Normalizacja danych (72)
  • Podsumowanie (74)

Rozdział 3. Interfejsy programistyczne (75)

  • Zanim zaczniesz (75)
    • Narzędzia do pracy z API (75)
    • Dodawanie API do systemu (76)
  • Architektura usługowa (76)
  • Formaty danych (77)
    • Format JSON (77)
    • Format XML (79)
  • HTTP - protokół przesyłania hipertekstu (82)
    • Dane przesyłane w nagłówkach HTTP (82)
    • Wysyłanie żądań HTTP (83)
    • Kody statusu HTTP (87)
    • Nagłówki HTTP (87)
    • Czasowniki HTTP (91)
  • Kryteria wyboru typów usług (92)
    • PHP i SOAP (92)
    • Opis usług SOAP za pomocą języka WSDL (94)
  • Diagnozowanie HTTP (95)
    • Gromadzenie informacji w dzienniku (95)
    • Kontrola ruchu HTTP (96)
  • Usługi RPC (96)
    • Korzystanie z usług RPC: przykład na podstawie serwisu Flickr (97)
    • Tworzenie usługi RPC (98)
  • Usługi sieciowe a Ajax (100)
    • Żądania międzydomenowe (104)
  • Usługi RESTful (106)
    • Więcej niż piękne adresy URL (107)
    • Zasady usług RESTful (107)
    • Budowanie usługi RESTful (108)
  • Projektowanie usługi sieciowej (114)
  • Do usług (115)

Rozdział 4. Wzorce projektowe (117)

  • Czym są wzorce projektowe (117)
    • Wybieranie wzorca (117)
    • Wzorzec singleton (118)
    • Cechy (119)
    • Wzorzec rejestr (120)
    • Wzorzec fabryka (124)
    • Wzorzec iterator (125)
    • Wzorzec obserwator (133)
    • Wzorzec wstrzykiwanie zależności (136)
    • Wzorzec model-widok-kontroler (139)
  • Tworzenie wzorców (150)

Rozdział 5. Bezpieczeństwo (151)

  • Działaj jak paranoik (151)
  • Filtruj dane wejściowe, koduj dane wyjściowe (152)
    • Filtrowanie i weryfikacja (152)
  • Cross-site scripting (153)
    • Atak (154)
    • Obrona (155)
    • Materiały w internecie (155)
  • Cross-site Request Forgery (156)
    • Atak (156)
    • Obrona (157)
    • Materiały w internecie (159)
  • Session fixation (159)
    • Atak (159)
    • Obrona (160)
    • Materiały w internecie (160)
  • Session hijacking (161)
    • Atak (161)
    • Obrona (162)
    • Materiały w internecie (163)
  • SQL injection (163)
    • Atak (163)
    • Obrona (164)
    • Materiały w internecie (165)
  • Przechowywanie haseł (165)
    • Atak (165)
    • Obrona (166)
    • Materiały w internecie (167)
  • Atak siłowy (167)
    • Atak (167)
    • Obrona (169)
    • Materiały w internecie (169)
  • SSL (170)
    • Atak (170)
    • Obrona (171)
    • Materiały w internecie (171)
  • Dodatkowe zasoby (172)

Rozdział 6. Wydajność (173)

  • Benchmarking (173)
  • Dostrajanie systemu (179)
    • Zapisywanie kodu w pamięci podręcznej (179)
    • Ustawienia inicjacyjne (184)
  • Bazy danych (184)
  • System plików (185)
    • Buforowanie (185)
  • Profilowanie (192)
    • Instalowanie narzędzia XHProf (193)
    • Instalowanie XHGui (197)
  • Podsumowanie (204)

Rozdział 7. Automatyzacja testów (205)

  • Testy jednostkowe (205)
    • Instalowanie narzędzia PHPUnit (206)
    • Pisanie przypadków testowych (206)
    • Wykonywanie testów (208)
    • Dublery (210)
    • Pisanie kodu przystosowanego do testowania (213)
    • Pisanie testów dla widoków i kontrolerów (217)
  • Testowanie baz danych (221)
    • Przypadki testowe baz danych (221)
    • Połączenia (222)
    • Zbiory danych (223)
    • Asercje (225)
  • Testowanie systemowe (226)
    • Wstępna konfiguracja (226)
    • Polecenia (227)
    • Lokalizatory (228)
    • Asercje (229)
    • Integracja z bazą danych (230)
    • Diagnozowanie usterek (231)
    • Automatyzacja pisania testów (232)
  • Testowanie obciążeniowe (233)
    • ab (233)
    • Siege (234)
  • Wypróbowane i przetestowane (236)

Rozdział 8. Kontrola jakości (237)

  • Pomiar jakości za pomocą narzędzi analizy statycznej (237)
    • Narzędzie phploc (238)
    • Narzędzie phpcpd (239)
    • Narzędzie phpmd (240)
  • Standardy kodowania (241)
    • Weryfikacja kodu pod kątem standardów kodowania przy użyciu narzędzia PHP_CodeSniffer (241)
    • Przeglądanie przypadków naruszenia reguł standardów kodowania (243)
    • Standardy kodowania w narzędziu PHP_CodeSniffer (244)
  • Dokumentacja i kod (244)
    • Narzędzie phpDocumentor (246)
    • Inne narzędzia dokumentacyjne (248)
  • Kontrola źródła (248)
    • Praca z centralnym systemem kontroli wersji (249)
    • Kontrola źródła przy użyciu systemu Subversion (250)
    • Projektowanie struktury repozytorium (252)
    • Rozproszone systemy kontroli wersji (254)
    • Społecznościowe narzędzia dla programistów (255)
    • Kontrola kodu źródłowego przy użyciu narzędzia Git (255)
    • Repozytorium jako centrum procesu budowy (257)
  • Automatyzacja procesu wdrażania (257)
    • Natychmiastowe przełączanie na nową wersję (257)
    • Zarządzanie zmianami w bazie danych (258)
    • Automatyzacja wdrażania i plik konfiguracyjny Phing (259)
  • Gotowi do wdrażania (261)

Dodatek A: Biblioteki PEAR i PECL (263)

  • Biblioteka PEAR (263)
  • Biblioteka PECL (263)
  • Instalowanie pakietów (264)
    • Kanały PEAR (266)
    • Używanie kodu PEAR (268)
  • Instalowanie rozszerzeń (268)
    • Ręczne kompilowanie rozszerzeń (269)
  • Tworzenie pakietów (272)
  • Kontrola wersji pakietów (276)
  • Tworzenie kanału (277)
  • Co dalej (280)

Dodatek B: SPL: Standard PHP Library (281)

  • Interfejsy ArrayAccess i ArrayObject (281)
  • Automatyczne wczytywanie (282)
  • Praca na katalogach i plikach (283)
  • Interfejs Countable (285)
  • Struktury danych (286)
    • Tablice o stałym rozmiarze (286)
    • Listy (286)
    • Stosy i kolejki (287)
    • Sterty (287)
    • Kolejki priorytetowe (288)
    • Funkcje (288)

Dodatek C: Dalszy rozwój (289)

  • Czytaj, czytaj, czytaj (289)
  • Uczestnictwo w wydarzeniach (290)
  • Grupy użytkowników (291)
  • Społeczności internetowe (291)
  • Projekty typu open source (292)

Skorowidz (293)

  • Title: Mistrz PHP. Pisz nowoczesny kod
  • Author: Davey Shafik, Lorna Mitchell, Matthew Turland
  • Original title: PHP Master: Write Cutting Edge Code
  • Translation: Łukasz Piwko
  • ISBN: 978-83-246-5706-3, 9788324657063
  • Date of issue: 2012-10-29
  • Format: Ebook
  • Item ID: misphp
  • Publisher: Helion