O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Mistrz PHP. Pisz nowoczesny kod

Book Description

Dzięki lekturze tej publikacji przemienisz się ze sprawnego programisty w pewnego siebie inżyniera — stosującego najlepsze praktyki programistyczne, pracującego szybko i solidnie.

Table of Contents

  1. Mistrz PHP. Pisz Nowoczesny Kod
  2. Dedykacja
  3.  
    1. Lorna Mitchell
    2. Davey Shafik
    3. Matthew Turland
    4. Luke Cawood
    5. Tom Museth
  4.  
    1. Wstęp
    2. Adresaci książki
    3. Zawartość książki
    4. Strona internetowa książki
      1. Archiwum kodu
      2. Aktualizacje i errata
    5. Podziękowania
      1. Lorna Mitchell
      2. Davey Shafik
      3. Matthew Turland
    6. Konwencje typograficzne
      1. Przykłady kodu
    7. Wskazówki, uwagi i ostrzeżenia
  5. 1. Programowanie obiektowe
    1. Dlaczego programowanie obiektowe
      1. Terminologia obiektowa
    2. Wprowadzenie do programowania obiektowego
      1. Deklarowanie klas
      2. Konstruktory
      3. Tworzenie obiektów
      4. Automatyczne ładowanie
      5. Używanie obiektów
      6. Własności i metody statyczne
      7. Obiekty i przestrzenie nazw
    3. Dziedziczenie
    4. Obiekty i funkcje
      1. Określanie typów parametrów
      2. Polimorfizm
      3. Obiekty i referencje
      4. Przekazywanie obiektów jako parametrów funkcji
      5. Płynne interfejsy
    5. Słowa kluczowe public, private i protected
      1. Modyfikator public
      2. Modyfikator private
      3. Modyfikator protected
      4. Wybór zakresu dostępności
      5. Kontrola dostępności przy użyciu metod sprawdzających i ustawiających
      6. Magiczne metody __get i __set
    6. Interfejsy
      1. Interfejs Countable z biblioteki SPL
      2. Liczenie obiektów
      3. Deklarowanie i używanie interfejsów
      4. Identyfikowanie obiektów i interfejsów
    7. Wyjątki
      1. Obsługa wyjątków
      2. Dlaczego należy używać wyjątków
      3. Zgłaszanie wyjątków
      4. Rozszerzanie klas wyjątków
      5. Przechwytywanie wybranych typów wyjątków
      6. Ustawianie globalnej procedury obsługi wyjątków
      7. Wywołania zwrotne
    8. Metody magiczne — zaawansowane wiadomości
      1. Metody __call() i __callStatic()
      2. Drukowanie zawartości obiektów przy użyciu metody __toString()
      3. Serializacja obiektów
    9. Osiągnięte cele
  6. 2. Bazy danych
    1. Dane trwałe i aplikacje sieciowe
    2. Sposoby składowania danych
    3. Budowanie serwisu z przepisami na podstawie bazy MySQL
      1. Tworzenie tabel
    4. Rozszerzenie PDO
      1. Łączenie się z bazą MySQL przy użyciu PDO
      2. Pobieranie danych z tabel w bazie
      3. Tryby pobierania danych
      4. Parametry i instrukcje preparowane
      5. Wiązanie wartości i zmiennych z instrukcjami preparowanymi
      6. Wstawianie wiersza i pobieranie jego identyfikatora
      7. Sprawdzanie liczby wstawionych, zmienionych i usuniętych rekordów
      8. Usuwanie danych
    5. Obsługa błędów w PDO
      1. Obsługa błędów związanych z przygotowywaniem zapytań
      2. Obsługa błędów związanych z wykonywaniem zapytań
      3. Obsługa błędów związanych z pobieraniem danych
    6. Zaawansowane funkcje PDO
      1. Transakcje a PDO
      2. Procedury składowane i PDO
    7. Projektowanie bazy danych
      1. Klucze główne i indeksy
      2. Polecenie MySQL Explain
        1. Klucze obce
        2. Relacje typu „wiele do wielu”
      3. Złączenia wewnętrzne
      4. Złączenia zewnętrzne
      5. Funkcje agregujące i grupowanie
      6. Normalizacja danych
    8. Podsumowanie
  7. 3. Interfejsy programistyczne
    1. Zanim zaczniesz
      1. Narzędzia do pracy z API
      2. Dodawanie API do systemu
    2. Architektura usługowa
    3. Formaty danych
      1. Format JSON
      2. Format XML
    4. HTTP — protokół przesyłania hipertekstu
      1. Dane przesyłane w nagłówkach HTTP
      2. Wysyłanie żądań HTTP
        1. cURL
        2. Rozszerzenie cURL języka PHP
        3. Rozszerzenie pecl_http języka PHP
        4. Strumienie PHP
      3. Kody statusu HTTP
      4. Nagłówki HTTP
        1. Nagłówki Accept i Content-Type
      5. Czasowniki HTTP
    5. Kryteria wyboru typów usług
      1. PHP i SOAP
      2. Opis usług SOAP za pomocą języka WSDL
    6. Diagnozowanie HTTP
      1. Gromadzenie informacji w dzienniku
      2. Kontrola ruchu HTTP
    7. Usługi RPC
      1. Korzystanie z usług RPC: przykład na podstawie serwisu Flickr
      2. Tworzenie usługi RPC
    8. Usługi sieciowe a Ajax
      1. Żądania międzydomenowe
    9. Usługi RESTful
      1. Więcej niż piękne adresy URL
      2. Zasady usług RESTful
      3. Budowanie usługi RESTful
        1. Przekierowywanie do strony index.php za pomocą reguł przepisywania
        2. Gromadzenie przychodzących danych
        3. Kierowanie żądań
        4. Uwaga na temat przechowywania danych
        5. Pobieranie po jednym wydarzeniu lub po kilka wydarzeń
        6. Tworzenie danych przy użyciu żądań POST
        7. Modyfikowanie zasobów metodą PUT
        8. Usuwanie rekordów
    10. Projektowanie usługi sieciowej
    11. Do usług
  8. 4. Wzorce projektowe
    1. Czym są wzorce projektowe
      1. Wybieranie wzorca
      2. Wzorzec singleton
        1. Problemy z singletonami
      3. Cechy
      4. Wzorzec rejestr
      5. Wzorzec fabryka
      6. Wzorzec iterator
      7. Wzorzec obserwator
      8. Wzorzec wstrzykiwanie zależności
      9. Wzorzec model-widok-kontroler
        1. Kontroler
        2. Model
        3. Widok
    2. Tworzenie wzorców
  9. 5. Bezpieczeństwo
    1. Działaj jak paranoik
    2. Filtruj dane wejściowe, koduj dane wyjściowe
      1. Filtrowanie i weryfikacja
    3. Cross-site scripting
      1. Atak
      2. Obrona
      3. Materiały w internecie
    4. Cross-site Request Forgery
      1. Atak
      2. Obrona
      3. Materiały w internecie
    5. Session fixation
      1. Atak
      2. Obrona
      3. Materiały w internecie
    6. Session hijacking
      1. Atak
      2. Obrona
      3. Materiały w internecie
    7. SQL injection
      1. Atak
      2. Obrona
      3. Materiały w internecie
    8. Przechowywanie haseł
      1. Atak
      2. Obrona
      3. Materiały w internecie
    9. Atak siłowy
      1. Atak
      2. Obrona
      3. Materiały w internecie
    10. SSL
      1. Atak
      2. Obrona
      3. Materiały w internecie
    11. Dodatkowe zasoby
  10. 6. Wydajność
    1. Benchmarking
    2. Dostrajanie systemu
      1. Zapisywanie kodu w pamięci podręcznej
      2. Ustawienia inicjacyjne
    3. Bazy danych
    4. System plików
      1. Buforowanie
        1. Bufor dyskowy
        2. APC
        3. Memcached
    5. Profilowanie
      1. Instalowanie narzędzia XHProf
      2. Instalowanie XHGui
    6. Podsumowanie
  11. 7. Automatyzacja testów
    1. Testy jednostkowe
      1. Instalowanie narzędzia PHPUnit
      2. Pisanie przypadków testowych
      3. Wykonywanie testów
      4. Dublery
      5. Pisanie kodu przystosowanego do testowania
      6. Pisanie testów dla widoków i kontrolerów
    2. Testowanie baz danych
      1. Przypadki testowe baz danych
      2. Połączenia
      3. Zbiory danych
      4. Asercje
    3. Testowanie systemowe
      1. Wstępna konfiguracja
      2. Polecenia
      3. Lokalizatory
      4. Asercje
      5. Integracja z bazą danych
      6. Diagnozowanie usterek
      7. Automatyzacja pisania testów
    4. Testowanie obciążeniowe
      1. ab
      2. Siege
    5. Wypróbowane i przetestowane
  12. 8. Kontrola jakości
    1. Pomiar jakości za pomocą narzędzi analizy statycznej
      1. Narzędzie phploc
      2. Narzędzie phpcpd
      3. Narzędzie phpmd
    2. Standardy kodowania
      1. Weryfikacja kodu pod kątem standardów kodowania przy użyciu narzędzia PHP_CodeSniffer
      2. Przeglądanie przypadków naruszenia reguł standardów kodowania
      3. Standardy kodowania w narzędziu PHP_CodeSniffer
    3. Dokumentacja i kod
      1. Narzędzie phpDocumentor
      2. Inne narzędzia dokumentacyjne
    4. Kontrola źródła
      1. Praca z centralnym systemem kontroli wersji
      2. Kontrola źródła przy użyciu systemu Subversion
      3. Projektowanie struktury repozytorium
        1. Gałąź dla każdej wersji
        2. Gałąź dla każdej funkcji
      4. Rozproszone systemy kontroli wersji
      5. Społecznościowe narzędzia dla programistów
      6. Kontrola kodu źródłowego przy użyciu narzędzia Git
      7. Repozytorium jako centrum procesu budowy
    5. Automatyzacja procesu wdrażania
      1. Natychmiastowe przełączanie na nową wersję
      2. Zarządzanie zmianami w bazie danych
      3. Automatyzacja wdrażania i plik konfiguracyjny Phing
    6. Gotowi do wdrażania
  13. A. Biblioteki PEAR i PECL
    1. Biblioteka PEAR
    2. Biblioteka PECL
    3. Instalowanie pakietów
      1. Kanały PEAR
      2. Używanie kodu PEAR
    4. Instalowanie rozszerzeń
      1. Ręczne kompilowanie rozszerzeń
    5. Tworzenie pakietów
    6. Kontrola wersji pakietów
    7. Tworzenie kanału
    8. Co dalej
  14. B. SPL: Standard PHP Library
    1. Interfejsy ArrayAccess i ArrayObject
    2. Automatyczne wczytywanie
    3. Praca na katalogach i plikach
    4. Interfejs Countable
    5. Struktury danych
      1. Tablice o stałym rozmiarze
      2. Listy
      3. Stosy i kolejki
      4. Sterty
      5. Kolejki priorytetowe
      6. Funkcje
  15. C. Dalszy rozwój
    1. Czytaj, czytaj, czytaj
    2. Uczestnictwo w wydarzeniach
    3. Grupy użytkowników
    4. Społeczności internetowe
    5. Projekty typu open source
  16. Indeks
  17. Copyright