PHP5. Zaawansowane programowanie - Helion
Tytuł oryginału: Professional PHP5
Tłumaczenie: Adam Byrtek, Jarosław Dobrzański, Paweł Gonera
ISBN: 83-7361-825-2
stron: 664, Format: B5, okładka: twarda
Data wydania: 2005-06-07
Księgarnia: Helion
Cena książki: 79,00 zł
PHP to język umożliwiający tworzenie aplikacji sieciowych uruchamianych po stronie serwera. Jego najnowsza wersja, oznaczona numerem 5, to w pełni obiektowy język, za pomocą którego można budować nawet najbardziej złożone systemy portalowe, intranetowe i ekstranetowe. Dzięki nowym funkcjom wprowadzonym w PHP 5 możliwe jest korzystanie z plików XML i protokołu SOAP, wydajna komunikacja z bazą danych i stosowanie technik obiektowych znacznie ułatwiających i przyspieszających tworzenie rozbudowanych aplikacji.
"PHP5. Zaawansowane programowanie" to książka przedstawiająca potężne możliwości i elastyczność najnowszej wersji tej popularnej platformy programistycznej. Opisuje podstawowe zasady programowania obiektowego i prowadzenia rozbudowanych projektów informatycznych. Zawiera informacje o modelowaniu aplikacji w języku UML, stosowaniu wzorców projektowych i tworzeniu narzędzi, które będzie można wykorzystać w każdym projekcie. Przedstawia również analizę prawdziwego przypadku -- systemu automatyzującego pracę działu sprzedaży w przedsiębiorstwie handlowym.
- Programowanie obiektowe
- Język UML i modelowanie systemów
- Wzorce projektowe
- Tworzenie prostych narzędzi obiektowych
- Połączenia z bazami danych
- Model MVC
- Stosowanie protokołu SOAP
- Komunikacja z użytkownikiem i mechanizmy sesji
- Testowanie aplikacji
- Studium przypadku - automatyzacja pracy działu sprzedaży
Jeśli chcesz poznać zaawansowane możliwości PHP 5, sięgnij po tę książkę.
Osoby które kupowały "PHP5. Zaawansowane programowanie", 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
PHP5. Zaawansowane programowanie -- spis treści
O Autorach (13)
Wstęp (15)
Część I Technologia obiektowa (21)
Rozdział 1. Wprowadzenie do programowania obiektowego (23)
- Czym jest programowanie obiektowe? (23)
- Zalety programowania obiektowego (24)
- Przykład z życia (25)
- Pojęcia związane z programowaniem obiektowym (25)
- Klasy (26)
- Obiekty (27)
- Dziedziczenie (36)
- Interfejsy (45)
- Hermetyzacja (48)
- Zmiany w PHP5 dotyczÄ…ce programowania obiektowego (49)
- Podsumowanie (50)
Rozdział 2. Unified Modeling Language (UML) (51)
- Zbieranie wymagań (51)
- Rozmowa z klientem (52)
- Diagramy przypadków użycia (53)
- Diagramy klas (54)
- Modelowanie dziedziny (55)
- Relacje (56)
- Implementacja (58)
- Diagramy aktywności (61)
- Diagramy przebiegu (63)
- Diagramy stanów (65)
- Diagram komponentów i instalacji (66)
- Podsumowanie (67)
Rozdział 3. Obiekty zaczynają działać (69)
- Tworzenie menedżera kontaktów (69)
- Diagramy UML dla menedżera kontaktów (70)
- Klasa PropertyObject (74)
- Klasy z informacjami kontaktowymi (76)
- Klasa DataManager (80)
- Klasy Entity, Individual i Organization (81)
- Użycie systemu (88)
- Podsumowanie (90)
Rozdział 4. Wzorce projektowe (91)
- Wzorzec złożony (92)
- Implementacja (93)
- Przemyślenia (97)
- Wzorzec obserwatora (98)
- Widget (98)
- Przemyślenia (104)
- Wzorzec dekoratora (104)
- Implementacja (106)
- Korzystanie z dekoratora (107)
- Przemyślenia (108)
- Wzorzec fasady (109)
- Wzorzec budowniczego (111)
- Implementacja (111)
- Przemyślenia (115)
- Podsumowanie (115)
Część II Tworzenie obiektowego zestawu narzędziowego. Proste klasy i interfejsy (117)
Rozdział 5. Klasa Collection (119)
- Założenia klasy Collection (119)
- Projektowanie klasy Collection (120)
- Fundamenty klasy Collection (121)
- Metoda addItem (122)
- Metody getItem i removeItem (123)
- Pozostałe metody (123)
- Użycie klasy Collection (124)
- Implementacja leniwej konkretyzacji (125)
- Funkcje zwrotne (126)
- Metoda setLoadCallback w klasie Collection (130)
- Wykorzystanie klasy Collection (133)
- Ulepszanie klasy Collection (139)
- Podsumowanie (139)
Rozdział 6. Klasa CollectionIterator (141)
- Interfejs Iterator (141)
- Klasa CollectionIterator (143)
- Interfejs IteratorAggregate (144)
- Ochrona zawartości iteratora (146)
- Podsumowanie (147)
Rozdział 7. Klasa GenericObject (149)
- Klasa GenericObject (149)
- Kiedy korzystać z GenericObject? (150)
- Na co pozwala GenericObject? (150)
- Decyzje w sprawie implementacji (151)
- Typowa implementacja GenericObject (152)
- Poznawanie rodzica (154)
- Współpraca z bazą danych (157)
- Metody i własności GenericObject (159)
- Zalety klasy GenericObject (161)
- Klasa GenericObjectCollection (162)
- Tradycyjna implementacja (163)
- Kiedy tradycyjna implementacja zawodzi (163)
- Działanie klasy GenericObjectCollection (164)
- Kod klasy (165)
- Typowa implementacja GenericObjectCollection (167)
- Próba (168)
- Jak to działa? (168)
- Podsumowanie klasy GenericObjectCollection (170)
- Podsumowanie (171)
Rozdział 8. Warstwa abstrakcji dla bazy danych (173)
- Czym jest warstwa abstrakcji? (174)
- Prosta implementacja (174)
- Plik konfiguracyjny (174)
- Nawiązywanie połączenia (175)
- Pobieranie danych (175)
- Modyfikacja danych (176)
- Korzystanie z klasy Database (178)
- Wprowadzenie do PEAR DB (180)
- Nawiązywanie połączenia za pomocą DB (181)
- Pobieranie danych (182)
- Inne użyteczne funkcje (183)
- Więcej informacji (186)
- Gotowa warstwa abstrakcji (186)
- Obsługa transakcji (189)
- Wzorzec projektowy Singleton (191)
- Podsumowanie (193)
Rozdział 9. Interfejs fabryki (195)
- Wzorzec fabryki (195)
- Przykład interfejsu fabryki (196)
- RozwiÄ…zanie staromodne (196)
- Wykorzystanie interfejsu fabryki (197)
- Zastosowanie wzorca w abstrakcji bazy danych (198)
- Większa liczba fabryk (200)
- Wykorzystanie klas istniejÄ…cych (201)
- Podsumowanie (201)
Rozdział 10. Programowanie oparte na zdarzeniach (203)
- Czym sÄ… zdarzenia? (204)
- Obiektowa obsługa zdarzeń (205)
- Projekt rozwiÄ…zania (205)
- Implementacja rozwiÄ…zania (207)
- Implementacja zabezpieczeń (211)
- Chwila zastanowienia (213)
- Podsumowanie (214)
Rozdział 11. Pliki dziennika i debugowanie (215)
- Tworzenie mechanizmu logowania (215)
- Proste logowanie do pliku (215)
- Przykładowa struktura katalogów (216)
- Klasa Logger (217)
- Rozbudowa klasy Logger (221)
- Mechanizm debugowania (231)
- Podsumowanie (234)
Rozdział 12. SOAP (235)
- SOAP i PHP5 (235)
- Rozszerzenie PHP5 SOAP (236)
- Klient SOAP (239)
- Za kulisami (241)
- Obsługa wyjątków w kliencie SOAP (245)
- Serwer SOAP (246)
- Podsumowanie (248)
Część III Tworzenie zestawu narzędzi do wielokrotnego wykorzystania. Narzędzia złożone (choć nieskomplikowane) (249)
Rozdział 13. Model, widok, kontroler (MVC) (251)
- Wprowadzenie do MVC (252)
- Model (253)
- Widok (253)
- Kontroler (253)
- Infrastruktura (253)
- MVC w aplikacjach WWW (253)
- MVC w PHP (254)
- Mały zestaw narzędzi MVC (256)
- Prezentacja zestawu narzędzi (256)
- Korzystanie z zestawu narzędzi (268)
- Zestaw narzędzi a praktyka (275)
- Prawdziwe szablony (275)
- Powtórka z szablonów macierzystych PHP (275)
- Wady szablonów macierzystych (276)
- Prawdziwe szablony a szablony pakietu Smarty (276)
- Instalowanie pakietu Smarty (277)
- Korzystanie z pakietu Smarty (278)
- Zaawansowane możliwości pakietu Smarty (283)
- Kiedy korzystać z pakietu Smarty, a kiedy z tradycyjnych szablonów? (285)
- Podsumowanie (285)
Rozdział 14. Komunikacja z użytkownikami (287)
- Po co się komunikować? (287)
- Powody komunikowania się z użytkownikiem (288)
- Myślenie wykraczające poza przeglądarkę WWW (290)
- Formy komunikacji (291)
- Wszystkie formy komunikacji majÄ…... (291)
- Nie wszystkie formy komunikacji majÄ…... (291)
- Co z adresatami? (291)
- Komunikacja jako hierarchia klas (292)
- Klasa adresata - szybki sprawdzian z myślenia obiektowego (292)
- Klasa Communication (296)
- Wysyłanie wiadomości do użytkowników naszej witryny (298)
- Tworzenie wersji testowej (298)
- Wysyłanie wiadomości (302)
- Zastosowanie szablonów przy wykorzystaniu pakietu Smarty (307)
- Korzystanie z MIME (309)
- Inne podklasy klasy Communication (309)
- Wiadomości tekstowe SMS (309)
- Faks (310)
- Podsumowanie (310)
Rozdział 15. Sesje i uwierzytelnianie (311)
- Wprowadzenie do sesji (312)
- Krótka powtórka z protokołu HTTP (312)
- Definicja sesji (314)
- Ciągłość sesji (314)
- Bezpieczeństwo sesji (317)
- Jak PHP implementuje sesje? (324)
- Podstawowy mechanizm sesji w PHP (324)
- Ograniczenia podstawowego mechanizmu sesji w PHP (326)
- Tworzenie klasy Authentication (327)
- Połączenie zarządzania sesjami PHP z bazą danych (327)
- Klasa UserSession (329)
- Schemat bazy danych (329)
- Kod - usersession.phpm (330)
- Kod - testowanie klasy UserSession (334)
- Jak to działa - klasa UserSession (336)
- Co otrzymaliśmy? (339)
- Podsumowanie (339)
Rozdział 16. Szkielet do testowania modułów (341)
- Metodologia i terminologia (341)
- Projektowanie interfejsu klasy (342)
- Tworzenie pakietu testowego dla klasy (343)
- Pisanie implementacji naszej klasy (344)
- Druga tura (345)
- Wprowadzenie do PHPUnit (345)
- Instalacja PHPUnit (345)
- Korzystanie z PHPUnit (346)
- Przypadki testowania (346)
- Pakiet testujÄ…cy (349)
- Czy warto? (349)
- Powtórne testy (350)
- Użyteczność szkieletu (350)
- Demonstrowalny mechanizm zapewniania jakości (350)
- Redukcja obciążenia testami funkcjonalnymi (351)
- Praktyczny przykład (351)
- Podsumowanie (356)
Rozdział 17. Automat skończony i modyfikowalne pliki konfiguracyjne (357)
- Koncepcja automatu skończonego (358)
- Prosty AS - kalkulator ONP (359)
- Teoretyczna implementacja AS (360)
- Implementacja automatów skończonych w PHP (361)
- Analiza przykładu z kalkulatorem ONP (363)
- Przykłady automatów skończonych w praktyce (366)
- Modyfikowalne pliki konfiguracyjne (367)
- Zastosowanie PHP (367)
- Zastosowanie XML-a (368)
- Korzystanie z plików INI (369)
- Klasa Config z PEAR (371)
- Zalecane praktyki zwiÄ…zane z plikami konfiguracyjnymi (372)
- Podsumowanie (373)
Część IV Studium przypadku - automatyzacja działu sprzedaży (375)
Rozdział 18. Przegląd projektu (377)
- Artykulandia (378)
- Krajobraz Artykulandii (380)
- Wymiar techniczny (380)
- Wymiar finansowy (380)
- Wymiar polityczny (380)
- My (380)
- Czy rzeczywiście chodzi o technologię? (381)
- Podejście do budowy oprogramowania (381)
- Jakie konsekwencje ma to dla nas? (383)
- Technologia (384)
- Podsumowanie (385)
Rozdział 19. Metody zarządzania projektami (387)
- Wstępne rozeznanie (387)
- Dlaczego realizujemy projekt? (388)
- Dla kogo realizujemy projekt? (388)
- Jaka jest historia projektu? (390)
- Jakie są oczekiwane warunki wstępne projektu? (390)
- Odbieranie formalnych wytycznych (391)
- Wymogi obszaru działalności (392)
- Zakres (393)
- Harmonogramy (394)
- Budżet (395)
- Warunki handlowe (397)
- Plany na przyszłość (398)
- Wygląd i obsługa (398)
- Technologia (398)
- Obsługa (399)
- Co dalej? (399)
- Konstruowanie oferty (399)
- Konspekty kontra oferty cenowe (399)
- Oferty w formie konspektu a specyfikacje (400)
- Kogo zaangażować w tworzenie oferty? (401)
- Kiedy można dać z siebie więcej? (401)
- Kiedy powiedzieć "nie"? (402)
- Struktura oferty (402)
- Wybieranie ludzi (404)
- Menedżer projektu (404)
- Account manager (404)
- Główny architekt (405)
- Architekci i inżynierowie oprogramowania (406)
- Programiści interfejsu klienckiego (406)
- Starsi projektanci (406)
- Graficy (406)
- Podwójne role (407)
- Sposób pracy (407)
- Rola klienta (407)
- Podsumowanie (408)
Rozdział 20. Planowanie systemu (409)
- Wybór procesu (409)
- Proces kaskadowy (409)
- Proces spiralny (410)
- Wybór procesu (412)
- Praktyki wspólne dla obydwu procesów (412)
- Faza specyfikacji (412)
- Faza projektowania (415)
- Faza budowy (416)
- Faza testowania (417)
- Odbiór (418)
- Metodyki i praktyki programowania (418)
- Programowanie inicjowane testami (418)
- Programowanie ekstremalne (419)
- ZarzÄ…dzanie zmianami (422)
- Rewizje specyfikacji (422)
- Zmiany w specyfikacji, które pojawiają się po jej podpisaniu (422)
- Dyskusje wynikające z różnych interpretacji (423)
- Błędy zgłoszone przez klienta (423)
- Podsumowanie (423)
Rozdział 21. Architektura systemów (425)
- Czym jest architektura systemu? (425)
- Dlaczego to takie ważne? (426)
- Co musimy zrobić? (426)
- Efektywne tłumaczenie wymagań (427)
- Hosting, łącza, serwery i sieć (427)
- Nadmiarowość i elastyczność (428)
- Utrzymanie (428)
- Bezpieczeństwo (429)
- Projektowanie środowiska (429)
- Hosting i Å‚Ä…cza (429)
- Obliczanie parametru CIR (430)
- Serwery (432)
- Sieć (434)
- Zapis nadmiarowy (434)
- Utrzymanie (435)
- Bezpieczeństwo (435)
- Podsumowanie (436)
Rozdział 22. Tworzenie aplikacji automatyzującej pracę zespołu sprzedaży (437)
- Rozpoczynamy projekt - poniedziałek (438)
- Zamieniamy się w słuch (438)
- Oszacowanie wagi scenariuszy (440)
- Planowanie wersji (447)
- Rozpoczynamy pracÄ™ (448)
- Opis szczegółów scenariusza nr 9 (448)
- Tworzenie testów (449)
- PHPUnit (450)
- Tworzenie ekranu logowania (457)
- Następny scenariusz (460)
- Ponowne oszacowanie (469)
- PorzÄ…dki (471)
- Refaktoring kodu (472)
- Kończenie iteracji (478)
- Scenariusz nr 14. Zmiana tygodnia powoduje odczytanie poprzedniego (478)
- Scenariusz nr 15. Tygodniowe pola na raporcie wizyt klienta (480)
- Raport kosztów podróży (487)
- Składnik kosztów podróży (489)
- Tygodniowe koszty podróży (492)
- Narzut (494)
- Kolejne testy tygodniowych kosztów podróży (495)
- Wypełnianie testów tygodniowego arkusza kosztów podróży (498)
- Zakończony raport kosztów podróży (510)
- Obiekty fikcyjne (522)
- Podsumowanie (527)
Rozdział 23. Zapewnienie jakości (529)
- Wprowadzenie do QA (529)
- Dlaczego warto się starać? (530)
- Co to jest jakość? (531)
- Wymierna jakość (532)
- Testowanie (534)
- Testowanie modułów (535)
- Testowanie funkcjonalne (535)
- Testowanie obciążenia (537)
- Testowanie użyteczności (537)
- Śledzenie błędów (538)
- Efektywne śledzenie błędów z wykorzystaniem systemu Mantis (539)
- Wykorzystanie wszystkich możliwości Mantis (546)
- Podsumowanie (546)
Rozdział 24. Instalacja (549)
- Opracowywanie środowiska programistycznego (549)
- Firmowe środowisko rozwojowe (550)
- Firmowe środowisko testowe (551)
- Åšrodowisko testowe klienta (551)
- Åšrodowisko produkcyjne klienta (552)
- Rozwojowe bazy danych (553)
- Organizacja wdrożenia (554)
- Automatyczne pobieranie z repozytorium kontroli wersji (556)
- Zastosowanie rsync (557)
- Synchronizacja serwerów za pomocą rsync (559)
- Podsumowanie (561)
Rozdział 25. Projektowanie i tworzenie solidnej platformy raportującej (563)
- Wprowadzenie do danych roboczych (563)
- Poznajemy potrzeby klienta (564)
- Zarządzanie żądaniami klientów (564)
- Dostarczanie raportów (566)
- Projektowanie raportu (566)
- Architektura generatora raportów (569)
- Generowanie raportów w tle (571)
- Interfejs raportów (573)
- Interfejs nowego raportu (574)
- Skrypt procesora raportów (578)
- Proces (578)
- Skrypty obsługi raportów (579)
- Strona Moje raporty (581)
- Skrypty tłumaczące (581)
- Przykład użycia platformy raportowej (583)
- Wizualizacja (584)
- Podsumowanie (585)
Rozdział 26. Co dalej? (587)
- Motywacja (587)
- Twoja kariera programisty (588)
- Więcej niż tylko programowanie WWW (588)
- Umiejętności miękkie (589)
- Umiejętności teoretyczne (589)
- Umiejętności społeczne (589)
- Podsumowanie (590)
Dodatki (591)
Dodatek A Dlaczego warto korzystać z kontroli wersji (593)
Dodatek B IDE dla PHP (607)
Dodatek C Strojenie wydajności PHP (621)
Dodatek D Najlepsze praktyki przy instalacji PHP (633)
Skorowidz (645)