Details zum E-Book

PHP. Obiekty, wzorce, narzędzia. Wydanie IV

PHP. Obiekty, wzorce, narzędzia. Wydanie IV

Matt Zandstra

E-book

Twój przewodnik po obiektowym PHP!

Język PHP przebył długą drogę od swoich początków do obecnego poziomu rozwoju. Dziś jest pełnoprawnym, obiektowym językiem programowania, wciąż zdobywającym większe zaufanie i używanym w coraz większych projektach. Jeżeli znasz ten język od dawna, lecz nie jesteś przekonany, że nadaje się on do zaawansowanych zastosowań, albo dopiero zaczynasz karierę i potrzebujesz szybkiego wprowadzenia w świat obiektów czy wzorców projektowych w języku PHP, to jest właśnie książka dla Ciebie!

Sięgnij po nią i przekonaj się na własnej skórze, że PHP to dojrzały język, który nie ustępuje konkurentom. W trakcie lektury poznasz podstawowe zagadnienia związane z programowaniem obiektowym, a następnie przejdziesz do nauki zaawansowanej obsługi obiektów w języku PHP. Kolejne rozdziały zostały poświęcone między innymi wzorcom projektowym, dobrym i złym praktykom, zastosowaniu PEAR i Pyrus oraz sposobom automatycznego generowania dokumentacji i tworzenia kodu wysokiej jakości dzięki testom automatycznym. Książka ta jest doskonałą lekturą dla każdego programisty PHP chcącego podnieść swoje kwalifikacje.

Dzięki tej książce:

  • poznasz podstawowe zagadnienia związane z programowaniem obiektowym
  • nauczysz się operować na obiektach w PHP
  • poznasz przydatne wzorce projektowe
  • unikniesz typowych problemów
  • przygotujesz testy jednostkowe

Poznaj zaawansowane możliwości języka PHP!

O autorze (13)

O recenzencie technicznym (15)

Podziękowania (17)

Wprowadzenie (19)

Rozdział 1. PHP - projektowanie i zarządzanie (21)

  • Problem (21)
  • PHP a inne języki programowania (22)
  • O książce (24)
    • Obiekty (24)
    • Wzorce (24)
    • Narzędzia (25)
    • Nowości w czwartym wydaniu (26)
  • Podsumowanie (26)

Rozdział 2. Obiekty (27)

  • Nieoczekiwany sukces obiektów w PHP (27)
    • PHP/FI - u zarania języka (27)
    • PHP3 - składniowy lukier (27)
    • Cicha rewolucja - PHP4 (28)
    • PHP5 - nieuchronne zmiany (29)
  • Debata obiektowa - za czy przeciw? (30)
  • Podsumowanie (30)

Rozdział 3. Obiektowy elementarz (31)

  • Klasy i obiekty (31)
    • Pierwsza klasa (31)
    • Pierwszy obiekt (lub dwa) (32)
  • Definiowanie składowych klasy (33)
  • Metody (35)
    • Metoda konstrukcji obiektu (36)
  • Typy argumentów metod (37)
    • Typy elementarne (38)
    • Typy obiektowe (40)
  • Dziedziczenie (42)
    • Problemy związane z dziedziczeniem (42)
    • Stosowanie dziedziczenia (46)
    • Zarządzanie dostępem do klasy - słowa public, private i protected (50)
  • Podsumowanie (54)

Rozdział 4. Zaawansowana obsługa obiektów (55)

  • Metody i składowe statyczne (55)
  • Składowe stałe (58)
  • Klasy abstrakcyjne (59)
  • Interfejsy (61)
  • Cechy typowe (62)
    • Zadanie dla cech typowych (62)
    • Definiowanie i stosowanie cechy typowej (63)
    • Stosowanie wielu cech typowych (64)
    • Łączenie cech z interfejsami (64)
    • Unikanie kolizji nazw metod za pomocą słowa insteadof (65)
    • Aliasy metod cech typowych (67)
    • Cechy typowe z metodami statycznymi (68)
    • Dostęp do składowych klasy włączającej (68)
    • Definiowanie metody abstrakcyjnej cechy typowej (69)
    • Zmiana dostępności metod cech typowych (70)
  • Późne wiązanie statyczne: słowo static (71)
  • Obsługa błędów (73)
    • Wyjątki (75)
  • Klasy i metody finalne (80)
  • Przechwytywanie chybionych wywołań (81)
  • Definiowanie destruktorów (86)
  • Wykonywanie kopii obiektów (87)
  • Reprezentacja obiektu w ciągach znaków (90)
  • Wywołania zwrotne, funkcje anonimowe i domknięcia (91)
  • Podsumowanie (94)

Rozdział 5. Narzędzia obiektowe (95)

  • PHP a pakiety (95)
    • Pakiety i przestrzenie nazw w PHP (95)
    • Automatyczne wczytywanie kodu (103)
  • Klasy i funkcje pomocnicze (105)
    • Szukanie klasy (106)
    • Badanie obiektów i klas (107)
    • Pozyskiwanie ciągu pełnej nazwy klasy (108)
    • Badanie metod (108)
    • Badanie składowych (110)
    • Badanie relacji dziedziczenia (110)
    • Badanie wywołań metod (110)
  • Interfejs retrospekcji - Reflection API (112)
    • Zaczynamy (112)
    • Pora zakasać rękawy (112)
    • Badanie klasy (114)
    • Badanie metod (116)
    • Badanie argumentów metod (117)
    • Korzystanie z retrospekcji (118)
  • Podsumowanie (121)

Rozdział 6. Obiekty a projektowanie obiektowe (123)

  • Czym jest projektowanie? (123)
  • Programowanie obiektowe i proceduralne (124)
    • Odpowiedzialność (127)
    • Spójność (127)
    • Sprzęganie (127)
    • Ortogonalność (128)
  • Zasięg klas (128)
  • Polimorfizm (129)
  • Hermetyzacja (131)
  • Nieważne jak (132)
  • Cztery drogowskazy (132)
    • Zwielokrotnianie kodu (133)
    • Przemądrzałe klasy (133)
    • Złota rączka (133)
    • Za dużo warunków (133)
  • Język UML (133)
    • Diagramy klas (134)
    • Diagramy sekwencji (139)
  • Podsumowanie (141)

Rozdział 7. Czym są wzorce projektowe? Do czego się przydają? (143)

  • Czym są wzorce projektowe? (143)
  • Wzorzec projektowy (145)
    • Nazwa (145)
    • Problem (146)
    • Rozwiązanie (146)
    • Konsekwencje (146)
  • Format wzorca według Bandy Czworga (146)
  • Po co nam wzorce projektowe? (147)
    • Wzorzec projektowy definiuje problem (147)
    • Wzorzec projektowy definiuje rozwiązanie (147)
    • Wzorce projektowe są niezależne od języka programowania (147)
    • Wzorce definiują słownictwo (148)
    • Wzorce są wypróbowane (148)
    • Wzorce mają współpracować (149)
    • Wzorce promują prawidła projektowe (149)
    • Wzorce są stosowane w popularnych frameworkach (149)
  • Wzorce projektowe a PHP (149)
  • Podsumowanie (150)

Rozdział 8. Wybrane prawidła wzorców (151)

  • Olśnienie wzorcami (151)
  • Kompozycja i dziedziczenie (152)
    • Problem (152)
    • Zastosowanie kompozycji (155)
  • Rozprzęganie (157)
    • Problem (157)
    • Osłabianie sprzężenia (158)
  • Kod ma używać interfejsów, nie implementacji (160)
  • Zmienne koncepcje (161)
  • Nadmiar wzorców (161)
  • Wzorce (161)
    • Wzorce generowania obiektów (162)
    • Wzorce organizacji obiektów i klas (162)
    • Wzorce zadaniowe (162)
    • Wzorce korporacyjne (162)
    • Wzorce baz danych (162)
  • Podsumowanie (162)

Rozdział 9. Generowanie obiektów (163)

  • Generowanie obiektów - problemy i rozwiązania (163)
  • Wzorzec Singleton (167)
    • Problem (167)
    • Implementacja (168)
    • Konsekwencje (169)
  • Wzorzec Factory Method (170)
    • Problem (170)
    • Implementacja (172)
    • Konsekwencje (174)
  • Wzorzec Abstract Factory (174)
    • Problem (174)
    • Implementacja (175)
    • Konsekwencje (177)
  • Prototyp (178)
    • Problem (178)
    • Implementacja (179)
  • Ależ to oszustwo! (181)
  • Podsumowanie (182)

Rozdział 10. Wzorce elastycznego programowania obiektowego (183)

  • Strukturalizacja klas pod kątem elastyczności obiektów (183)
  • Wzorzec Composite (183)
    • Problem (184)
    • Implementacja (186)
    • Konsekwencje (189)
    • Composite - podsumowanie (191)
  • Wzorzec Decorator (192)
    • Problem (192)
    • Implementacja (194)
    • Konsekwencje (197)
  • Wzorzec Facade (197)
    • Problem (197)
    • Implementacja (199)
    • Konsekwencje (199)
  • Podsumowanie (200)

Rozdział 11. Reprezentacja i realizacja zadań (201)

  • Wzorzec Interpreter (201)
    • Problem (201)
    • Implementacja (202)
    • Ciemne strony wzorca Interpreter (209)
  • Wzorzec Strategy (209)
    • Problem (209)
    • Implementacja (211)
  • Wzorzec Observer (214)
    • Implementacja (215)
  • Wzorzec Visitor (220)
    • Problem (220)
    • Implementacja (221)
    • Wady wzorca Visitor (225)
  • Wzorzec Command (226)
    • Problem (226)
    • Implementacja (226)
  • Podsumowanie (230)

Rozdział 12. Wzorce korporacyjne (231)

  • Przegląd architektury (231)
    • Wzorce (232)
    • Aplikacje i warstwy (232)
  • Małe oszustwo na samym początku (235)
    • Wzorzec Registry (235)
    • Implementacja (236)
  • Warstwa prezentacji (244)
    • Wzorzec Front Controller (244)
    • Wzorzec Application Controller (253)
    • Wzorzec Page Controller (264)
    • Wzorce Template View i View Helper (268)
  • Warstwa logiki biznesowej (270)
    • Wzorzec Transaction Script (270)
    • Wzorzec Domain Model (274)
  • Podsumowanie (277)

Rozdział 13. Wzorce bazodanowe (279)

  • Warstwa danych (279)
  • Wzorzec Data Mapper (280)
    • Problem (280)
    • Implementacja (280)
  • Wzorzec Identity Map (293)
    • Problem (293)
    • Implementacja (294)
    • Konsekwencje (296)
  • Wzorzec Unit of Work (297)
    • Problem (297)
    • Implementacja (297)
    • Konsekwencje (301)
  • Wzorzec Lazy Load (301)
    • Problem (301)
    • Implementacja (302)
    • Konsekwencje (303)
  • Wzorzec Domain Object Factory (303)
    • Problem (303)
    • Implementacja (304)
    • Konsekwencje (305)
  • Wzorzec Identity Object (306)
    • Problem (306)
    • Implementacja (307)
    • Konsekwencje (311)
  • Wzorce Selection Factory i Update Factory (312)
    • Problem (312)
    • Implementacja (312)
    • Konsekwencje (315)
  • Co zostało z wzorca Data Mapper? (316)
  • Podsumowanie (318)

Rozdział 14. Dobre (i złe) praktyki (319)

  • Nie tylko kod (319)
  • Pukanie do otwartych drzwi (320)
  • Jak to zgrać? (321)
  • Uskrzydlanie kodu (322)
  • Dokumentacja (323)
  • Testowanie (324)
  • Ciągła integracja (325)
  • Podsumowanie (325)

Rozdział 15. PEAR i Pyrus (327)

  • Czym jest PEAR? (327)
  • Pyrus (328)
  • Instalowanie pakietu (329)
    • Kanały PEAR (331)
  • Korzystanie z pakietu z PEAR (333)
    • Obsługa błędów w pakietach PEAR (334)
  • Tworzenie własnych pakietów PEAR (337)
    • Plik package.xml (337)
    • Składniki pakietu (338)
    • Element contents (339)
    • Zależności (342)
    • Dookreślanie instalacji - phprelease (343)
    • Przygotowanie pakietu do dystrybucji (344)
    • Konfigurowanie własnego kanału PEAR (345)
  • Podsumowanie (348)

Rozdział 16. Generowanie dokumentacji - phpDocumentor (349)

  • Po co nam dokumentacja? (349)
  • Instalacja (350)
  • Generowanie dokumentacji (350)
  • Komentarze DocBlock (352)
  • Dokumentowanie klas (354)
  • Dokumentowanie plików (354)
  • Dokumentowanie składowych (355)
  • Dokumentowanie metod (357)
  • Namespace support (357)
  • Tworzenie odnośników w dokumentacji (359)
  • Podsumowanie (361)

Rozdział 17. Zarządzanie wersjami projektu z systemem Git (363)

  • Po co mi kontrola wersji? (363)
  • Skąd wziąć klienta Git? (364)
  • Konfigurowanie serwera Git (365)
    • Tworzenie repozytorium zdalnego (365)
  • Rozpoczynamy projekt (367)
    • Klonowanie repozytorium (369)
  • Wprowadzanie i zatwierdzanie zmian (370)
  • Dodawanie i usuwanie plików i katalogów (373)
    • Dodawanie pliku (373)
    • Usuwanie pliku (374)
    • Dodawanie katalogu (374)
    • Usuwanie katalogów (374)
  • Etykietowanie wersji (375)
  • Rozgałęzianie projektu (375)
  • Podsumowanie (379)

Rozdział 18. Testy jednostkowe z PHPUnit (381)

  • Testy funkcjonalne i testy jednostkowe (381)
  • Testowanie ręczne (382)
  • PHPUnit (384)
    • Tworzenie przypadku testowego (384)
    • Metody asercji (385)
    • Testowanie wyjątków (386)
    • Uruchamianie zestawów testów (387)
    • Ograniczenia (388)
    • Atrapy i imitacje (389)
    • Dobry test to oblany test (392)
  • Testy dla aplikacji WWW (394)
    • Przygotowanie aplikacji WWW do testów (395)
    • Proste testy aplikacji WWW (396)
    • Selenium (398)
  • Słowo ostrzeżenia (402)
  • Podsumowanie (404)

Rozdział 19. Automatyzacja instalacji z Phing (405)

  • Czym jest Phing? (406)
  • Pobieranie i instalacja pakietu Phing (406)
  • Montowanie dokumentu kompilacji (407)
    • Różnicowanie zadań kompilacji (408)
    • Właściwości (410)
    • Typy (416)
    • Operacje (420)
  • Podsumowanie (424)

Rozdział 20. Ciągła integracja kodu (425)

  • Czym jest ciągła integracja? (425)
    • Przygotowanie projektu do ciągłej integracji (427)
  • Jenkins (436)
    • Instalowanie Jenkinsa (436)
    • Instalowanie rozszerzeń Jenkinsa (438)
    • Konfigurowanie klucza publicznego serwera Git (439)
    • Instalowanie projektu (439)
    • Pierwsza kompilacja (441)
    • Konfigurowanie raportów (441)
    • Automatyzacja kompilacji (444)
  • Podsumowanie (446)

Rozdział 21. Obiekty, wzorce, narzędzia (447)

  • Obiekty (447)
    • Wybór (448)
    • Hermetyzacja i delegowanie (448)
    • Osłabianie sprzężenia (448)
    • Zdatność do wielokrotnego stosowania kodu (449)
    • Estetyka (449)
  • Wzorce (450)
    • Co dają nam wzorce? (450)
    • Wzorce a zasady projektowe (451)
  • Narzędzia (452)
    • Testowanie (453)
    • Dokumentacja (453)
    • Zarządzanie wersjami (453)
    • Automatyczna kompilacja (instalacja) (454)
    • System integracji ciągłej (454)
    • Co pominęliśmy? (454)
  • Podsumowanie (455)

Dodatek A. Bibliografia (457)

  • Książki (457)
  • Publikacje (458)
  • Witryny WWW (458)

Dodatek B. Prosty analizator leksykalny (461)

  • Skaner (461)
  • Analizator leksykalny (468)

Skorowidz (481)

  • Titel: PHP. Obiekty, wzorce, narzędzia. Wydanie IV
  • Autor: Matt Zandstra
  • Originaler Titel: PHP Objects, Patterns, and Practice, Fourth Edition
  • Übersetzung: Przemysław Szeremiota
  • ISBN: 978-83-246-9181-4, 9788324691814
  • Veröffentlichungsdatum: 2014-09-12
  • Format: E-book
  • Artikelkennung: phpob4
  • Verleger: Helion