PHP 8. Obiekty, wzorce, narz - Helion
Autor: Matt Zandstra
Tytuł oryginału: PHP 8 Objects, Patterns, and Practice: Mastering OO Enhancements, Design Patterns, and Essential Development Tools, 6th Edition
Tłumaczenie: Piotr Cie
ISBN: 978-83-8322-926-3
stron: 828, Format: 165x235, okładka: mi
Data wydania: 2023-11-01
Księgarnia: Helion
Cena książki: 83,85 zł (poprzednio: 129,00 zł)
Oszczędzasz: 35% (-45,15 zł)
Tytuł oryginału: PHP 8 Objects, Patterns, and Practice: Mastering OO Enhancements, Design Patterns, and Essential Development Tools, 6th Edition
Tłumaczenie: Piotr Cie
ISBN: 978-83-8322-926-3
stron: 828, Format: 165x235, okładka: mi
Data wydania: 2023-11-01
Księgarnia: Helion
Cena książki: 83,85 zł (poprzednio: 129,00 zł)
Oszczędzasz: 35% (-45,15 zł)
Tagi: PHP - Programowanie
Osoby które kupowały "PHP 8. Obiekty, wzorce, narz", wybierały także:
- PHP 8 Programming Tips, Tricks and Best Practices 157,37 zł, (29,90 zł -81%)
- Domain-Driven Design in PHP 135,91 zł, (29,90 zł -78%)
- PHP Microservices 135,91 zł, (29,90 zł -78%)
- Drupal 8 Module Development. Second edition 124,58 zł, (29,90 zł -76%)
- Mastering The Faster Web with PHP, MySQL, and JavaScript 124,58 zł, (29,90 zł -76%)
Spis treści
PHP 8. Obiekty, wzorce, narzędzia. Poznaj obiektowe usprawnienia języka PHP, wzorce projektowe i niezbędne narzędzia programistyczne. Wydanie VI -- 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