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

PHP. Nowe możliwości, najlepsze praktyki

Book Description

Język PHP to obecnie jeden z najbardziej niedocenianych języków programowania. W sieci można znaleźć masę artykułów wykluczających jego zastosowanie w zaawansowanych projektach. A przecież w obecnej wersji język ten jest pełnoprawnym kandydatem do zadań specjalnych! Przekonaj się, jak używać go we właściwy sposób!

Table of Contents

  1. okładka
  2. tytuł strony
  3. Prawa autorskie strony
  4. Spis treści
  5. Wstęp
    1. Co trzeba wiedzieć o tej książce
    2. Organizacja książki
    3. Konwencje typograficzne
    4. Przykłady kodu
    5. Podziękowania
  6. Część I. Składniki języka
    1. Rozdział 1. Nowy PHP
      1. Przeszłość
      2. Teraźniejszość
      3. Przyszłość
    2. Rozdział 2. Funkcjonalność
      1. Przestrzenie nazw
        1. Do czego służą przestrzenie nazw
        2. Deklaracja
        3. Importowanie i aliasy
        4. Porady
          1. Importowanie wielu elementów
          2. Kilka przestrzeni nazw w jednym pliku
          3. Globalna przestrzeń nazw
          4. Automatyczne ładowanie
      2. Interfejsy
      3. Cechy
        1. Do czego służą cechy
        2. Jak utworzyć cechę
        3. Sposób użycia cech
      4. Generatory
        1. Tworzenie generatora
        2. Sposób użycia generatorów
      5. Zamknięcia
        1. Tworzenie zamknięć
        2. Wiązanie stanu
      6. Rozszerzenie Zend OPcache
        1. Włączanie rozszerzenia Zend OPcache
        2. Konfiguracja Zend OPcache
        3. Korzystanie z Zend OPcache
      7. Wbudowany serwer HTTP
        1. Uruchamianie serwera
        2. Konfiguracja serwera
        3. Skrypty trasujące
        4. Wykrywanie serwera wbudowanego
      8. Wady
      9. Co dalej
  7. Część II. Najlepsze praktyki
    1. Rozdział 3. Standardy
      1. PHP-FIG na ratunek
      2. Współpraca między systemami szkieletowymi
        1. Interfejsy
        2. Automatyczne wczytywanie zależności
        3. Styl
      3. Co to jest PSR
        1. PSR-1 — podstawowy styl kodowania
        2. PSR-2 — restrykcyjny styl kodowania
        3. PSR-3 — interfejs rejestratora dziennikowego
          1. Pisanie rejestratora zgodnego ze standardem PSR-3
          2. Sposób użycia rejestratora PSR-3
        4. PSR-4 — automatyczne wczytywanie zależności
          1. Dlaczego autoloadery są ważne
          2. Strategia automatycznego ładowania zależności PSR-4
          3. Jak napisać autoloader PSR-4 (i czemu nie należy tego robić)
    2. Rozdział 4. Komponenty
      1. Dlaczego używać komponentów
      2. Czym są komponenty
      3. Komponenty a systemy szkieletowe
        1. Nie wszystkie systemy szkieletowe są złe
        2. Używaj odpowiednich narzędzi
      4. Wyszukiwanie komponentów
        1. Kupuj
        2. Wybieraj
        3. Pozwól poznać swoją opinię
      5. Używanie komponentów PHP
        1. Jak zainstalować Composera
        2. Sposób użycia Composera
          1. Nazwy komponentów
          2. Instalacja komponentów
        3. Przykładowy projekt
          1. Plik composer.lock
          2. Automatyczne wczytywanie komponentów
          3. Implementacja w pliku scan.php
        4. Composer i prywatne repozytoria
      6. Tworzenie komponentów PHP
        1. Nazwy dostawcy i pakietu
        2. Przestrzenie nazw
        3. Hierarchia plików
        4. Plik composer.json
        5. Plik README
        6. Implementacja komponentu
        7. Kontrola wersji
        8. Wysyłanie komponentu do katalogu Packagist
        9. Używanie komponentu
    3. Rozdział 5. Najlepsze praktyki
      1. Dezynfekcja, sprawdzanie i kontrola wyjścia
        1. Dezynfekcja danych wejściowych
          1. HTML
          2. Zapytania SQL
          3. Informacje o profilu użytkownika
        2. Sprawdzanie poprawności danych
        3. Kontrolowanie danych wyjściowych
      2. Hasła
        1. Nie poznawaj haseł użytkowników
        2. Nigdy nie ograniczaj haseł użytkowników
        3. Nigdy nie wysyłaj haseł na adres e-mail
        4. Mieszaj hasła użytkowników za pomocą algorytmu bcrypt
        5. API mieszania haseł
          1. Rejestracja użytkowników
          2. Logowanie użytkownika
          3. Weryfikacja hasła
          4. Ponawianie mieszania hasła
        6. Mieszanie haseł w wersjach PHP starszych od 5.5.0
      3. Data, godzina i strefa czasowa
        1. Ustawianie domyślnej strefy czasowej
        2. Klasa DateTime
        3. Klasa DateInterval
        4. Klasa DateTimeZone
        5. Klasa DatePeriod
        6. Komponent nesbot/carbon
      4. Bazy danych
        1. Rozszerzenie PDO
        2. Połączenia z bazą danych i nazwy źródeł danych
          1. Utajnianie danych użytkownika bazy danych
        3. Instrukcje przygotowane
        4. Wyniki zapytań
        5. Transakcje
      5. Łańcuchy wielobajtowe
        1. Kodowanie znaków
        2. Zwracanie danych w formacie UTF-8
      6. Strumienie
        1. Opakowania strumieni
          1. Opakowanie strumienia file://
          2. Opakowanie strumienia php://
          3. Inne opakowania strumieni
          4. Tworzenie własnych opakowań strumieni
        2. Kontekst strumienia
        3. Filtry strumieni
        4. Tworzenie własnych filtrów strumieni
      7. Błędy i wyjątki
        1. Wyjątki
          1. Zgłaszanie wyjątków
          2. Przechwytywanie wyjątków
        2. Procedury obsługi wyjątków
        3. Błędy
        4. Procedury obsługi błędów
        5. Błędy i wyjątki w czasie pracy
        6. Produkcja
  8. Część III. Wdrażanie, testowanie i dostrajanie
    1. Rozdział 6. Hosting
      1. Serwer współdzielony
      2. Serwer wirtualny
      3. Serwer dedykowany
      4. PaaS
      5. Wybór planu hostingowego
    2. Rozdział 7. Wdrażanie serwera
      1. Cel
      2. Konfiguracja serwera
        1. Pierwsze logowanie
        2. Aktualizacja oprogramowania
        3. Inny użytkownik niż root
          1. Ubuntu
          2. CentOS
        4. Uwierzytelnianie poprzez SSH przy użyciu pary kluczy
        5. Wyłączanie haseł i możliwości logowania się użytkownika root
      3. PHP-FPM
        1. Instalacja
        2. Konfiguracja globalna
        3. Konfiguracja puli
      4. Serwer nginx
        1. Instalacja
          1. Ubuntu
          2. CentOS
        2. Host wirtualny
      5. Automatyzacja wdrażania serwera
      6. Zlecanie wdrażania serwerów
      7. Dodatkowe źródła
      8. Co dalej
    3. Rozdział 8. Dostrajanie
      1. Plik php.ini
      2. Pamięć
      3. Zend OPcache
      4. Wysyłanie plików
      5. Maksymalny czas wykonywania
      6. Obsługa sesji
      7. Buforowanie wyników
      8. Bufor ścieżek
      9. W następnym rozdziale
    4. Rozdział 9. Wdrażanie aplikacji
      1. Kontrola wersji
      2. Automatyzacja wdrażania
        1. Prostota
        2. Przewidywalność
        3. Odwracalność
      3. Capistrano
        1. Jak to działa
        2. Instalacja
        3. Konfiguracja
          1. Plik config/deploy.rb
          2. Plik config/deploy/production.rb
        4. Uwierzytelnianie
        5. Przygotowanie serwera
          1. Host wirtualny
          2. Zależności programowe
        6. Haki Capistrano
        7. Wdrażanie aplikacji
        8. Cofanie aplikacji
      4. Dodatkowe informacje
      5. W następnym rozdziale
    5. Rozdział 10. Testowanie
      1. Jak testować
      2. Kiedy testować
        1. Przed
        2. W trakcie
        3. Po
      3. Co testować
      4. Jak testować
        1. Testy jednostkowe
        2. Programowanie przez testy
        3. Programowanie behawioralne
      5. PHPUnit
        1. Struktura katalogów
        2. Instalacja PHPUnit
        3. Instalacja Xdebug
        4. Konfiguracja PHPUnit
        5. Klasa Whovian
        6. Przypadek testowy WhovianTest
          1. Test 1.: __construct()
          2. Test 2.: say()
          3. Test 3.: respondTo() — zgoda
          4. Test 4.: respondTo() — niezgoda
        7. Uruchamianie testów
        8. Pokrycie kodu
      6. Ciągłe testowanie przy użyciu programu Travis CI
        1. Konfiguracja
        2. Wykonywanie testów
      7. Dodatkowe źródła
      8. W następnym rozdziale
    6. Rozdział 11. Profilowanie
      1. Kiedy używać profilera
      2. Typy profilerów
      3. Xdebug
        1. Konfiguracja
        2. Uruchamianie
        3. Analiza
      4. XHProf
        1. Instalacja
        2. XHGUI
        3. Konfiguracja
        4. Uruchamianie
      5. Profiler New Relic
      6. Profiler Blackfire
      7. Dodatkowe źródła
      8. W następnym rozdziale
    7. Rozdział 12. HHVM i Hack
      1. HHVM
        1. PHP w Facebooku
        2. Zgodność HHVM i Zend Engine
        3. Czy interpreter HHVM jest dla mnie
        4. Instalacja
        5. Konfiguracja
        6. Rozszerzenia
        7. Monitorowanie HHVM za pomocą narzędzia Supervisord
        8. HHVM, FastCGI i nginx
      2. Język Hack
        1. Konwersja PHP na Hack
        2. Co to jest typ
        3. Typowanie statyczne
        4. Typowanie dynamiczne
        5. Hack jest uniwersalny
        6. Sprawdzanie typów w języku Hack
        7. Tryby Hack
        8. Składnia języka Hack
          1. Adnotacje własności
          2. Adnotacje argumentów
          3. Adnotacje typu zwrotnego
        9. Struktury danych języka Hack
        10. HHVM i Hack a PHP
      3. Dodatkowe źródła informacji
    8. Rozdział 13. Społeczność
      1. Lokalne grupy użytkowników PHP
      2. Konferencje
      3. Mentoring
      4. Trzymaj rękę na pulsie
        1. Strony internetowe
        2. Listy mailingowe
        3. Twitter
        4. Podcasty
        5. Humor
  9. Dodatki
    1. Dodatek A. Instalacja PHP
      1. Linux
        1. Menedżery pakietów
        2. Ubuntu 14.04 LTS
          1. 1. Dodawanie zależności programowych
          2. 2. Dodawanie repozytorium PPA ppa:ondrej/php5-5.6
          3. 3. Instalacja PHP
        3. CentOS 7
          1. 1. Dodawanie repozytorium EPEL
          2. 2. Instalacja PHP
      2. OS X
        1. MAMP
          1. Instalacja
          2. Rozszerzanie
          3. Ograniczenia
        2. Homebrew
          1. Narzędzia wiersza poleceń XCode
          2. Instalacja
          3. Uprawnienia dostępu do katalogów
          4. Zmienna środowiskowa PATH
          5. Podłączanie repozytoriów wzorów
          6. Instalacja PHP
          7. Instalacja rozszerzeń PHP
      3. Kompilacja ze źródła
        1. Pobieranie kodu źródłowego
          1. Katalog src/
          2. Pobieranie kodu źródłowego
          3. Konfiguracja PHP
          4. Polecenie ./configure
          5. Kompilacja i instalacja PHP
          6. Tworzenie pliku php.ini
      4. Windows
        1. Pliki binarne
        2. WAMP
        3. Zend Server
    2. Dodatek B. Lokalne środowiska deweloperskie
      1. VirtualBox
      2. Vagrant
        1. Polecenia
      3. Pudła
        1. Inicjacja
        2. Wdrażanie
          1. Puppet
          2. Chef
        3. Synchronizacja folderów
        4. Rozpoczynanie pracy
          1. Laravel Homestead
          2. PuPHPet
          3. Vaprobash
  10. Skorowidz
  11. O autorze
  12. Kolofon