PHP 8. Obiekty, wzorce, narzędzia. Poznaj obiektowe usprawnienia języka PHP, wzorce projektowe i niezbędne narzędzia programistyczne. Wydanie 4 - ebook
PHP 8. Obiekty, wzorce, narzędzia. Poznaj obiektowe usprawnienia języka PHP, wzorce projektowe i niezbędne narzędzia programistyczne. Wydanie 4 - ebook
PHP długo nie był postrzegany jako obiektowy język programowania, jednak w ciągu ostatnich kilku lat to podejście się zmieniło. Równocześnie pojawiły się różnego rodzaju frameworki, dzięki którym praca projektantów znacznie się uprościła. Profesjonalni programiści jednak powinni rozumieć, w jaki sposób działa dany framework i jak rozwiązuje różne problemy projektowe. Powinni też umieć samodzielnie stworzyć choćby niewielki zbiór kodu bibliotecznego.
To wydanie książki zostało zaktualizowane pod kątem języka PHP 8. Za jej pomocą opanujesz solidne podstawy programowania zorientowanego obiektowo w PHP, a następnie zapoznasz się z zasadami projektowania kodu, narzędziami i zalecanymi rozwiązaniami, które ułatwiają tworzenie, testowanie i wdrażanie niezawodnych aplikacji. Sporo miejsca poświęcono tu wzorcom projektowym, w tym wzorcom biznesowym i bazodanowym. Omówiono również narzędzia i praktyki pomocne w pracy zespołowej, jak praca z systemem Git czy zarządzanie wersjami i zależnościami przy użyciu Composera. Nie zabrakło także takich ważnych zagadnień jak strategie automatycznych testów i zasady ciągłej integracji.
W książce między innymi:
- podstawy i zaawansowane aspekty programowania zorientowanego obiektowo
- uznane zasady projektowania i tworzenie efektywnych struktur
- skuteczne wzorce projektowe
- testowanie kodu, systemy kontroli wersji i środowiska ciągłej
- tworzenie, instalowanie pakietów oraz zarządzanie nimi
PHP: tak zaprojektujesz elegancki i niezawodny system!
Spis treści
O autorze
O recenzencie technicznym
Podziękowania
Wprowadzenie
Część I. Obiekty
- Rozdział 1. PHP - projektowanie
- Problem
- PHP a inne języki programowania
- O książce
- Obiekty
- Wzorce
- Narzędzia
- Nowości w szóstym wydaniu
- Podsumowanie
- Rozdział 2. PHP i obiekty
- Nieoczekiwany sukces obiektów w PHP
- PHP/FI - u zarania języka
- PHP3 - składniowy lukier
- Cicha rewolucja - PHP4
- PHP5 - nieuchronne zmiany
- PHP7 - doganianie reszty świata
- PHP8 - dalsza konsolidacja
- Debata obiektowa - za czy przeciw?
- Podsumowanie
- Nieoczekiwany sukces obiektów w PHP
- Rozdział 3. Obiektowy elementarz
- Klasy i obiekty
- Pierwsza klasa
- Pierwszy obiekt (lub dwa)
- Definiowanie składowych klasy
- Metody
- Metoda konstrukcji obiektu
- Promocja składowych konstruktora
- Argumenty domyślne i nazwane
- Typy argumentów metod
- Typy elementarne
- Niektóre inne funkcje kontroli typów
- Deklaracje typów - typy obiektowe
- Deklaracje typów - typy elementarne
- Typ mixed
- Unia
- Typy przyjmujące wartość null
- Deklaracje typów zwracanych
- Dziedziczenie
- Problemy, które można rozwiązać poprzez dziedziczenie
- Stosowanie dziedziczenia
- Zarządzanie dostępem do klasy - słowa public, private i protected
- Podsumowanie
- Klasy i obiekty
- Rozdział 4. Zaawansowana obsługa obiektów
- Metody i składowe statyczne
- Składowe stałe
- Klasy abstrakcyjne
- Interfejsy
- Cechy typowe
- Zadanie dla cech typowych
- Definiowanie i stosowanie cechy typowej
- Stosowanie wielu cech typowych
- Łączenie cech z interfejsami
- Unikanie kolizji nazw metod za pomocą słowa insteadof
- Aliasy przesłoniętych metod cech typowych
- Cechy typowe z metodami statycznymi
- Dostęp do składowych klasy włączającej
- Definiowanie metody abstrakcyjnej cechy typowej
- Zmiana dostępności metod cech typowych
- Późne wiązanie statyczne: słowo static
- Obsługa błędów
- Wyjątki
- Klasy i metody finalne
- Klasa do obsługi błędów wewnętrznych
- Przechwytywanie chybionych wywołań
- Definiowanie destruktorów
- Wykonywanie kopii obiektów
- Reprezentacja obiektu w ciągach znaków
- Wywołania zwrotne, funkcje anonimowe i domknięcia
- Klasy anonimowe
- Podsumowanie
- Rozdział 5. Narzędzia obiektowe
- PHP a pakiety
- Pakiety i przestrzenie nazw w PHP
- Automatyczne wczytywanie kodu
- Klasy i funkcje pomocnicze
- Szukanie klasy
- Badanie obiektów i klas
- Pozyskiwanie ciągu pełnej nazwy klasy
- Badanie metod
- Badanie składowych
- Badanie relacji dziedziczenia
- Badanie wywołań metod
- Reflection API
- Zaczynamy
- Pora zakasać rękawy
- Badanie klasy
- Badanie metod
- Badanie argumentów metod
- Zastosowanie Reflection API
- Atrybuty
- Podsumowanie
- PHP a pakiety
- Rozdział 6. Obiekty
- Czym jest projektowanie?
- Programowanie obiektowe i proceduralne
- Odpowiedzialność
- Spójność
- Sprzęganie
- Ortogonalność
- Zasięg klas
- Polimorfizm
- Hermetyzacja
- Nieważne jak
- Cztery drogowskazy
- Zwielokrotnianie kodu
- Przemądrzałe klasy
- Złota rączka
- Za dużo warunków
- Język UML
- Diagramy klas
- Diagramy sekwencji
- Podsumowanie
Część II. Wzorce
- Rozdział 7. Czym są wzorce projektowe?
- Czym są wzorce projektowe?
- Wzorzec projektowy
- Nazwa
- Problem
- Rozwiązanie
- Konsekwencje
- Format wzorca według Bandy Czworga
- Po co nam wzorce projektowe?
- Wzorzec projektowy definiuje problem
- Wzorzec projektowy definiuje rozwiązanie
- Wzorce projektowe są niezależne od języka programowania
- Wzorce definiują słownictwo
- Wzorce są wypróbowane
- Wzorce mają współpracować
- Wzorce promują prawidła projektowe
- Wzorce są stosowane w popularnych frameworkach
- Wzorce projektowe a PHP
- Podsumowanie
- Rozdział 8. Wybrane prawidła wzorców
- Olśnienie wzorcami
- Kompozycja i dziedziczenie
- Problem
- Zastosowanie kompozycji
- Rozprzęganie
- Problem
- Osłabianie sprzężenia
- Kod ma używać interfejsów, nie implementacji
- Zmienne koncepcje
- Nadmiar wzorców
- Wzorce
- Wzorce generowania obiektów
- Wzorce organizacji obiektów i klas
- Wzorce zadaniowe
- Wzorce korporacyjne
- Wzorce baz danych
- Podsumowanie
- Rozdział 9. Generowanie obiektów
- Generowanie obiektów - problemy i rozwiązania
- Wzorzec Singleton
- Problem
- Implementacja
- Konsekwencje
- Wzorzec Factory Method
- Problem
- Implementacja
- Konsekwencje
- Wzorzec Abstract Factory
- Problem
- Implementacja
- Konsekwencje
- Prototyp
- Problem
- Implementacja
- Naginanie rzeczywistości - wzorzec Service Locator
- Doskonała izolacja - wstrzykiwanie zależności
- Problem
- Implementacja
- Konsekwencje
- Podsumowanie
- Rozdział 10. Wzorce elastycznego programowania obiektowego
- Strukturalizacja klas pod kątem elastyczności obiektów
- Wzorzec Composite
- Problem
- Implementacja
- Konsekwencje
- Composite - podsumowanie
- Wzorzec Decorator
- Problem
- Implementacja
- Konsekwencje
- Wzorzec Facade
- Problem
- Implementacja
- Konsekwencje
- Podsumowanie
- Rozdział 11. Reprezentacja i realizacja zadań
- Wzorzec Interpreter
- Problem
- Implementacja
- Ciemne strony wzorca Interpreter
- Wzorzec Strategy
- Problem
- Implementacja
- Wzorzec Observer
- Implementacja
- Wzorzec Visitor
- Problem
- Implementacja
- Wady wzorca Visitor
- Wzorzec Command
- Problem
- Implementacja
- Wzorzec Null Object
- Problem
- Implementacja
- Podsumowanie
- Wzorzec Interpreter
- Rozdział 12. Wzorce korporacyjne
- Przegląd architektury
- Wzorce
- Aplikacje i warstwy
- Małe oszustwo na samym początku
- Wzorzec Registry
- Implementacja
- Warstwa prezentacji
- Wzorzec Front Controller
- Wzorzec Application Controller
- Wzorzec Page Controller
- Wzorce Template View i View Helper
- Warstwa logiki biznesowej
- Wzorzec Transaction Script
- Wzorzec Domain Model
- Podsumowanie
- Przegląd architektury
- Rozdział 13. Wzorce bazodanowe
- Warstwa danych
- Wzorzec Data Mapper
- Problem
- Implementacja
- Konsekwencje
- Wzorzec Identity Map
- Problem
- Implementacja
- Konsekwencje
- Wzorzec Unit of Work
- Problem
- Implementacja
- Konsekwencje
- Wzorzec Lazy Load
- Problem
- Implementacja
- Konsekwencje
- Wzorzec Domain Object Factory
- Problem
- Implementacja
- Konsekwencje
- Wzorzec Identity Object
- Problem
- Implementacja
- Konsekwencje
- Wzorce Selection Factory i Update Factory
- Problem
- Implementacja
- Konsekwencje
- Co zostało z wzorca Data Mapper?
- Podsumowanie
Część III. Narzędzia
- Rozdział 14. Dobre (i złe) praktyki
- Nie tylko kod
- Pukanie do otwartych drzwi
- Jak to zgrać?
- Uskrzydlanie kodu
- Standardy
- Vagrant
- Testowanie
- Ciągła integracja
- Podsumowanie
- Rozdział 15. Standardy PHP
- Po co te standardy?
- Jakie są standardowe rekomendacje PHP?
- Dlaczego akurat PSR?
- Rekomendacje PSR - dla kogo?
- Kodowanie z klasą
- Podstawowy standard kodowania PSR-1
- Rozszerzona rekomendacja stylu kodowania PSR-12
- Sprawdzanie i poprawianie kodu
- PSR-4 - automatyczne ładowanie
- Zasady, które są dla nas ważne
- Podsumowanie
- Rozdział 16. Używanie i tworzenie
- Czym jest Composer?
- Instalowanie Composera
- Instalowanie (zbioru) pakietów
- Instalowanie pakietu z poziomu wiersza poleceń
- Wersje
- Element require-dev
- Composer i automatyczne ładowanie kodu
- Tworzenie własnego pakietu
- Dodawanie informacji o pakiecie
- Pakiety systemowe
- Dystrybucja za pośrednictwem repozytorium Packagist
- Odrobina prywatności
- Podsumowanie
- Rozdział 17. Zarządzanie wersjami projektu
- Po co mi kontrola wersji?
- Skąd wziąć klienta Git?
- Obsługa repozytorium Git online
- Konfigurowanie serwera Git
- Tworzenie repozytorium zdalnego
- Rozpoczynamy projekt
- Klonowanie repozytorium
- Wprowadzanie i zatwierdzanie zmian
- Dodawanie i usuwanie plików i katalogów
- Dodawanie pliku
- Usuwanie pliku
- Dodawanie katalogu
- Usuwanie katalogów
- Etykietowanie wersji
- Rozgałęzianie projektu
- Podsumowanie
- Rozdział 18. Testy jednostkowe z PHPUnit
- Testy funkcjonalne i testy jednostkowe
- Testowanie ręczne
- PHPUnit
- Tworzenie przypadku testowego
- Metody asercji
- Testowanie wyjątków
- Uruchamianie zestawów testów
- Ograniczenia
- Atrapy i imitacje
- Dobry test to oblany test
- Testy dla aplikacji WWW
- Refaktoryzacja aplikacji WWW pod kątem testów
- Proste testy aplikacji WWW
- Selenium
- Słowo ostrzeżenia
- Podsumowanie
- Rozdział 19. Automatyzacja instalacji z Phingiem
- Czym jest Phing?
- Pobieranie i instalacja pakietu Phing
- Montowanie dokumentu kompilacji
- Różnicowanie zadań kompilacji
- Właściwości
- Typy
- Operacje
- Podsumowanie
- Rozdział 20. Vagrant
- Problem
- Odrobina przygotowań
- Wybór i instalacja środowiska Vagrant
- Montowanie lokalnych katalogów w maszynie wirtualnej Vagranta
- Zaopatrywanie maszyny wirtualnej
- Konfigurowanie serwera WWW
- Konfigurowanie MariaDB
- Konfigurowanie nazwy hosta
- Kilka słów na koniec
- Podsumowanie
- Rozdział 21. Ciągła integracja kodu
- Czym jest ciągła integracja?
- Przygotowanie projektu do ciągłej integracji
- Instalowanie rozszerzeń Jenkinsa
- Konfigurowanie klucza publicznego serwera Git
- Instalowanie projektu
- Pierwsza kompilacja
- Konfigurowanie raportów
- Automatyzacja kompilacji
- Podsumowanie
- Czym jest ciągła integracja?
- Rozdział 22. Obiekty, wzorce, narzędzia
- Obiekty
- Wybór
- Hermetyzacja i delegowanie
- Osłabianie sprzężenia
- Zdatność do wielokrotnego stosowania kodu
- Estetyka
- Wzorce
- Co dają nam wzorce?
- Wzorce a zasady projektowe
- Narzędzia
- Testowanie
- Standardy
- Zarządzanie wersjami
- Automatyczna kompilacja (instalacja)
- System integracji ciągłej
- Co pominęliśmy?
- Podsumowanie
- Obiekty
Dodatki
- Dodatek A. Bibliografia
- Książki
- Publikacje
- Witryny WWW
- Dodatek B. Prosty analizator leksykalny
- Skaner
- Analizator leksykalny
Kategoria: | Webmaster |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-8322-927-0 |
Rozmiar pliku: | 9,7 MB |