PHP. Wzorce projektowe

Book description

Ci?g?y rozwój j?zyka PHP sprawia, ?e za jego pomoc? mo?na ju? tworzy? bardzo zaawansowane aplikacje. Wszyscy programi?ci wiedz?, ?e wraz ze wzrostem skomplikowania tworzonego oprogramowania konieczne staje si? zastosowanie sprawdzonych, przemy?lanych i przetestowanych rozwi?za?. Takim zbiorem najlepszych metod rozwi?zywania typowych problemów s? wzorce projektowe. Zawita?y one równie? do ?wiata PHP!

Na rynku znajdziesz wiele ksi??ek po?wi?conych wzorcom projektowym, jednak dotycz? one zazwyczaj j?zyków Java lub C. Ta wyj?tkowa ksi??ka zajmuje si? wzorcami w j?zyku PHP. W trakcie lektury poznasz podstawowe za?o?enia programowania obiektowego, wzorce czynno?ciowe, kreacyjne i strukturalne. Przekonasz si? te?, jak bardzo wzro?nie jako?? Twojego kodu, je?eli do komunikacji z baz? danych MySQL zastosujesz wzorzec Proxy. Ksi??ka ta jest obowi?zkow? lektur? ka?dego programisty pisz?cego w j?zyku PHP. Zobacz, jak dobry mo?e by? Twój kod!

Wzorce projektowe w PHP to:

  • najlepsze rozwi?zania typowych problemów
  • sposób na popraw? jako?ci Twojego kodu
  • ?atwiejsza komunikacja z baz? danych MySQL
  • mniej b??dów w Twoich aplikacjach

Przekonaj si?, jak tworzy? kod wysokiej jako?ci!

Table of contents

  1. PHP. Wzorce projektowe
  2. Dedykacja
  3. Przedmowa
    1. Do kogo skierowana jest ta książka?
    2. Założenia w tej książce
    3. Zawartość książki
      1. Konwencje wykorzystywane w książce
    4. Przykłady kodu
    5. Podziękowania
  4. I. Wstęp do wzorców projektowych
    1. 1. PHP a programowanie obiektowe
      1. Wstęp do średnio zaawansowanego i zaawansowanego programowania
      2. Dlaczego programowanie zorientowane obiektowo?
        1. W jaki sposób ułatwić rozwiązywanie problemów?
        2. Modularyzacja
      3. Klasy i obiekty
        1. Zasada jednej odpowiedzialności
        2. Konstruktory w PHP
      4. Klient jako klasa żądająca
      5. Co z wydajnością?
        1. Szybkość tworzenia i modyfikacji rozwiązań
        2. Szybkość w zespole
      6. Problemy z programowaniem sekwencyjnym i proceduralnym
        1. Programowanie sekwencyjne
        2. Programowanie proceduralne
        3. Zapłać teraz lub zapłać potem
    2. 2. Podstawowe zagadnienia programowania obiektowego
      1. Abstrakcja
        1. Klasy abstrakcyjne
        2. Właściwości i metody abstrakcyjne
        3. Interfejsy
        4. Interfejsy i stałe
        5. Podpowiadanie typów: prawie typowanie
      2. Enkapsulacja
        1. Enkapsulacja w życiu codziennym
        2. Zapewnienie enkapsulacji poprzez widoczność
          1. Private
          2. Protected
          3. Public
        3. Funkcje ustawiające i pobierające
      3. Dziedziczenie
      4. Polimorfizm
        1. Jedna nazwa, wiele implementacji
        2. Polimorfizm wbudowany we wzorcach projektowych
      5. Tylko spokojnie
    3. 3. Podstawowe zagadnienia wzorców projektowych
      1. Wprowadzenie do MVC
      2. Podstawowe zasady wzorców projektowych
        1. Pierwsza zasada wzorców projektowych
        2. Wykorzystanie typów interfejsowych przy podpowiadaniu typów
        3. Klasy abstrakcyjne i ich interfejsy
        4. Druga zasada wzorców projektowych
        5. Przykład złożoności przy wykorzystaniu klienta
        6. Delegacja: różnica między MA a JEST
      3. Wzorce projektowe jako wielka ściąga
        1. Organizacja wzorców projektowych
          1. Wzorce kreacyjne
          2. Wzorce strukturalne
          3. Wzorce czynnościowe
          4. Kategoria klas
          5. Kategoria obiektów
      4. Wybór wzorca projektowego
        1. Czym spowodowana jest konieczność powtórnego projektowania?
        2. Co się zmienia?
        3. Czym różnią się wzorce projektowe od frameworków?
    4. 4. Wykorzystanie UML-a we wzorcach projektowych
      1. Po co język modelowania UML?
      2. Diagramy klas
      3. Symbole uczestnictwa
      4. Notacja relacji
        1. Relacje asocjacji
        2. Relacje agregacji
        3. Relacje implementacji i dziedziczenia
        4. Relacje tworzenia
        5. Relacje wielokrotne
      5. Diagramy obiektów
      6. Diagramy interakcji
      7. Rola diagramów i notacji w programowaniu obiektowym
      8. Narzędzia dla UML
      9. Inne diagramy UML
  5. II. Wzorce kreacyjne
    1. 5. Wzorzec Metoda Fabrykująca
      1. Czym jest wzorzec Metoda Fabrykująca?
      2. Kiedy korzystać z Metody Fabrykującej
      3. Minimalistyczny przykład
        1. Praca z fabryką
          1. Produkt
        2. Klient
      4. Wprowadzanie zmian w klasach
        1. Dodanie elementów graficznych
        2. Koordynowanie produktów
        3. Zmiany w produkcie tekstowym
        4. Zmiany w produkcie graficznym
        5. Dodanie nowych produktów i parametryzowanych żądań
        6. Jedna fabryka i wiele produktów
        7. Nowe fabryki
        8. Nowe produkty
        9. Klient z parametrem
        10. Klasy pomocnicze
        11. Diagram plików
        12. Produkty się zmieniają, interfejs zostaw w spokoju
    2. 6. Wzorzec Prototyp
      1. Czym jest wzorzec Prototyp?
      2. Kiedy wykorzystać wzorzec Prototyp
      3. Funkcja klonująca
        1. Podczas klonowania konstruktor nie jest wywoływany
        2. W funkcji konstruktora nie powinny być wykonywane żadne zadania
      4. Minimalistyczny przykład
        1. Badanie muszek owocówek
          1. Interfejs w postaci klasy abstrakcyjnej i konkretna implementacja
          2. Klient
      5. Dodanie do prototypu elementów obiektowych
        1. Nowoczesna organizacja biznesowa
        2. Enkapsulacja w interfejsie
        3. Implementacje interfejsów
        4. Klient
        5. Wprowadzanie zmian, rozbudowa funkcjonalności
        6. Dynamiczne tworzenie instancji obiektów
          1. Zmienne i obiekty
      6. Wzorzec Prototyp w świecie PHP
  6. III. Wzorce strukturalne
    1. 7. Wzorzec Adapter
      1. Czym jest wzorzec Adapter?
      2. Kiedy wykorzystywać wzorzec Adapter
      3. Wzorzec Adapter zaimplementowany przy wykorzystaniu dziedziczenia
        1. Minimalistyczny przykład adaptera klas: wymiana walut
          1. Wprowadzenie euro
          2. Tworzenie adaptera dla euro
      4. Wzorzec Adapter zaimplementowany przy wykorzystaniu kompozycji
        1. Z komputerów osobistych na urządzenia mobilne
          1. Tylko komputery osobiste
          2. Adaptacja na potrzeby urządzeń mobilnych
          3. Klasa Client jako uczestnik wzorca
        2. Adaptery a zmiany
    2. 8. Wzorzec Dekorator
      1. Czym jest wzorzec Dekorator?
      2. Kiedy wykorzystywać wzorzec Dekorator
      3. Minimalistyczny przykład dekoratora
        1. Interfejs komponentu
        2. Interfejs dekoratora
        3. Konkretny komponent
        4. Konkretne dekoratory
          1. Obsługa
          2. Wideo
          3. Baza danych
        5. Klient
      4. Co z opakowywaniem?
        1. Opakowywanie prymitywów
        2. Klasy i funkcje opakowujące wbudowane w PHP
        3. Wzorce projektowe polegające na opakowywaniu
      5. Dekoratory z wieloma komponentami
        1. Wiele konkretnych komponentów
        2. Konkretne komponenty z wieloma stanami i wartościami
        3. Usługi randkowe dla programistów
          1. Interfejs komponentu
          2. Konkretne komponenty
          3. Dekorator z metodami komponentu
          4. Konkretne dekoratory
          5. Klasa Client
      6. Interfejs użytkownika (UI) w HTML
        1. Klasa Client przekazująca dane z HTML
        2. Od nazwy zmiennej do instancji obiektu
        3. Dodawanie dekoracji
  7. IV. Wzorce czynnościowe
    1. 9. Wzorzec Metoda Szablonowa
      1. Czym jest wzorzec Metoda Szablonowa?
      2. Kiedy wykorzystywać wzorzec Metoda Szablonowa
      3. Wykorzystanie wzorca Metoda Szablonowa z obrazami i podpisami: minimalistyczny przykład
        1. Klasa abstrakcyjna
        2. Klasa konkretna
      4. Klasa Client
      5. Zasada Hollywood
      6. Wykorzystanie Metody Szablonowej z innymi wzorcami projektowymi
        1. Zmniejszenie obowiązków klienta
        2. Uczestnicy wzorca Metoda Szablonowa
        3. Uczestnicy wzorca Metoda Fabrykująca
      7. Hak we wzorcu Metoda Szablonowa
        1. Ustawienie haka
        2. Implementacja haka
        3. Klasa Client i uruchomienie haka
          1. Ustawianie zmiennej boolowskiej za pomocą operatorów porównania
          2. Klasa Client
      8. Mały, ale potężny wzorzec Metoda Szablonowa
    2. 10. Wzorzec Stan
      1. Czym jest wzorzec Stan?
      2. Kiedy korzystać ze wzorca Stan
      3. Maszyna stanowa
      4. Światło włączone i wyłączone: minimalistyczna implementacja wzorca
        1. Kontekst jest najważniejszy
          1. Instancje stanów w klasie Context
          2. Wywoływanie metod stanu: metody-wyzwalacze
          3. Ustawienie aktualnego stanu
          4. Akcesory stanu
          5. Podsumowanie klasy Context
        2. Stany
          1. OnState
          2. OffState
        3. Klasa Client wykonuje żądanie przez Context
      5. Dodawanie stanów
        1. Zmiana interfejsu
        2. Zmiana stanów
          1. OffState
          2. OnState
          3. BrighterState
          4. BrightestState
        3. Aktualizacja klasy Context
        4. Zaktualizowana klasa Client
      6. Nawigator: więcej wyborów i komórek
        1. Ustalenie szablonu stanów dla macierzy
        2. Przygotowanie interfejsu
        3. Kontekst
        4. Stany
          1. Cell1State
          2. Cell2State
          3. Cell3State
          4. Cell4State
          5. Cell5State
          6. Cell6State
          7. Cell7State
          8. Cell8State
          9. Cell9State
        5. Klient wybiera ścieżkę
      7. Wzorzec Stan a PHP
  8. V. MySQL i wzorce projektowe PHP
    1. 11. Uniwersalna klasa połączeniowa i wykorzystanie wzorca Proxy dla bezpieczeństwa
      1. Prosty interfejs i klasa do połączeń MySQL
        1. Interfejs w ciąży
        2. Uniwersalna klasa połączeniowa MySQL i zmienne statyczne
        3. Prosty klient
      2. Proxy zabezpieczające proces logowania
        1. Stworzenie formularza rejestracji
        2. Implementacja proxy logowania
          1. Formularz logowania i klasa Client
          2. Proxy w akcji
          3. Prawdziwy podmiot
      3. Proxy i bezpieczeństwo w prawdziwym świecie
    2. 12. Elastyczny wzorzec projektowy Strategia
      1. Algorytmy enkapsulujące
        1. Różnica między wzorcami Strategia i Stan
        2. Żadnych poleceń warunkowych, proszę
        3. Rodzina algorytmów
      2. Minimalistyczny wzorzec Strategia
        1. Klasa Client i skrypty wyzwalające
        2. Klasa Context i interfejs strategii
        3. Konkretne strategie
          1. DataEntry
          2. DisplayData
          3. SearchData
          4. UpdateData
          5. DeleteRecord
          6. Interfejs i klasa połączeniowa
      3. Rozszerzony wzorzec Strategia uwzględniający bezpieczeństwo danych i parametryzowane algorytmy
        1. Klasa pomocnicza odpowiedzialna za bezpieczeństwo danych
        2. Dodanie parametru do metody algorithm
        3. Tabela survey
        4. Moduły wprowadzania danych
        5. Klasa Client wzywa pomocy
        6. Drobna, ale ważna zmiana w klasie Context
        7. Konkretne strategie
          1. DataEntry
          2. DisplayAll
          3. SearchData
          4. UpdateData
          5. DeleteRecord
      4. Elastyczny wzorzec Strategia
    3. 13. Wzorzec projektowy Łańcuch Odpowiedzialności
      1. Podaj dalej
      2. Łańcuch Odpowiedzialności w aplikacji pomocy technicznej
        1. Utworzenie i uzupełnienie tabeli odpowiedzi
          1. InsertData.php
          2. UpdateData.php
        2. Łańcuch Odpowiedzialności pomocy technicznej
          1. Wprowadzanie danych za pośrednictwem HTML, klasa Client i uczestnicy żądania
          2. Konkretne klasy obsługujące i ich interfejs
      3. Zautomatyzowany Łańcuch Odpowiedzialności i Metoda Fabrykująca
        1. Łańcuch Odpowiedzialności i żądania w oparciu o datę
        2. Metoda Fabrykująca wieńczy dzieło
          1. Klasy Creator i HungerFactory
          2. Produkt i poszczególne kraje
          3. Klasy pomocnicze, zasoby i style
      4. Łatwość aktualizacji
    4. 14. Budowa systemu CMS za pomocą wzorca Obserwator
      1. Wbudowane interfejsy Obserwatora
      2. Kiedy korzystać ze wzorca Obserwator
      3. Wykorzystanie SPL we wzorcu Obserwator
        1. SplSubject
        2. SplObserver
        3. SplObjectStorage
        4. Konkretny podmiot SPL
        5. Konkretny obserwator SPL
        6. Klient SPL
      4. Czyste PHP i wzorzec Obserwator
        1. Implementacja klas abstrakcyjnych Subject i ConcreteSubject
        2. Interfejs Observer i wiele konkretnych obserwatorów
          1. ConcreteObserverDT (implementacja dla komputera PC)
          2. ConcreteObserverTablet (implementacja dla tabletu)
          3. ConcreteObserverPhone (implementacja dla telefonu)
        3. Klient
      5. Budowa prostego systemu CMS
        1. Infrastruktura programu
          1. Tabela dla systemu CMS
          2. Wprowadzanie i aktualizacja danych w systemie CMS
        2. Obserwator dla wielu urządzeń
          1. Dwa dokumenty HTML dla interfejsów
          2. Klasa SniffClient
          3. Klasy dla podmiotu
          4. Wiele konkretnych obserwatorów
            1. Obserwator dla telefonów komórkowych
            2. Obserwator dla tabletów
            3. Obserwator dla komputerów stacjonarnych
      6. Myślenie obiektowe
  9. A. O autorze
  10. Indeks
  11. Kolofon
  12. Copyright

Product information

  • Title: PHP. Wzorce projektowe
  • Author(s): William Sanders
  • Release date: August 2013
  • Publisher(s): Helion
  • ISBN: 9781457178672