Szkolenie PHP – Wydajność i cache

Poziom

Zaawansowany

Czas

16h / 2 dni

Termin

Indywidualnie

Cena

Indywidualnie

Szkolenie PHP – Wydajność i cache

Warsztat uczy systematycznego podejścia do wydajności — nie zgadywania, lecz mierzenia. Uczestnicy otrzymują działającą aplikację e-commerce z celowo wprowadzonymi problemami wydajnościowymi i krok po kroku ją przyspieszają: profilują kod, naprawiają N+1 queries, wdrażają cache na trzech poziomach (aplikacja, HTTP, infrastruktura) i budują read model zoptymalizowany pod odczyt. Każda optymalizacja zaczyna się od pomiaru i kończy ponownym pomiarem — uczestnicy widzą konkretne liczby, nie abstrakcyjne obietnice. Warsztat kończy się aplikacją z mierzalną poprawą wydajności i kompletnym zestawem narzędzi do diagnozowania problemów w produkcji

Dla kogo jest to szkolenie?
  • logo infoshare Absolwentów ścieżki szkoleniowej PHP (Zaawansowany lub Architektura), chcących pogłębić wiedzę o wydajności
  • logo infoshare Developerów PHP pracujących z aplikacjami, które „działają, ale wolno”
  • logo infoshare Programistów, którzy chcą nauczyć się profilowania i cache’owania zamiast zgadywania co jest wolne
  • logo infoshare Zespołów odpowiedzialnych za wydajność produkcyjnych aplikacji PHP
Czego nauczysz się na tym szkoleniu?
  • logo infoshare Profilowania aplikacji PHP przy pomocy Xdebug profiler — znajdowanie wąskich gardeł zamiast zgadywania
  • logo infoshare Identyfikacji i naprawy N+1 queries — najczęstszego problemu wydajnościowego w aplikacjach PHP
  • logo infoshare Optymalizacji zapytań SQL — EXPLAIN ANALYZE, indeksy, selektywna denormalizacja
  • logo infoshare Cache’owania na poziomie aplikacji — Symfony Cache / PSR-6, Redis jako backend
  • logo infoshare Strategii invalidacji cache’a — TTL, tag-based, event-driven
  • logo infoshare Cache’owania HTTP — Cache-Control, ETag, Last-Modified, koncepcja reverse proxy
  • logo infoshare Read modelu — denormalizacja danych pod wydajne odczyty, synchronizacja przez zdarzenia domenowe

Wymagania

  • PHP 8.3+: architektura warstwowa, serwisy, repozytoria
  • Testy PHPUnit: unit i integracyjne
  • MySQL: zapytania SQL, PDO lub Doctrine DBAL
  • Docker i Composer

Program szkolenia

Dzień 1

 

Etap 1: Profilowanie — znajdź wąskie gardło

  • Xdebug profiler — konfiguracja, generowanie profili
  • Czytanie profili — identyfikacja hot paths i najwolniejszych ścieżek
  • Metryki bazodanowe — EXPLAIN ANALYZE, slow query log
  • Benchmarking — pomiar czasu odpowiedzi (baseline do porównań)
  • Efekt: Uczestnicy mają baseline metryk i wiedzą, gdzie są wąskie gardła

 

Etap 2: Optymalizacja zapytań

  • N+1 queries — identyfikacja w Doctrine DBAL (pętla z zapytaniem wewnątrz pętli), batch loading
  • Indeksy — kiedy pomagają, kiedy nie, composite indexes
  • Query optimization — przepisywanie wolnych zapytań, selektywna denormalizacja
  • Pomiar po optymalizacji — porównanie z baseline
  • Efekt: Najczęstsze problemy bazodanowe zidentyfikowane i naprawione z mierzalną poprawą

 

Dzień 2

 

Etap 3: Strategie cache’owania

  • Cache warstwy aplikacyjnej:
    • Symfony Cache / PSR-6 — konfiguracja, adaptery (filesystem, Redis)
    • Cache patterns — cache-aside, read-through
    • Identyfikacja hot data vs cold data
    • Praktyka: cache’owanie listingu produktów i danych katalogowych
  • Cache invalidation:
    • TTL — proste, ale ryzykowne (stale data)
    • Tag-based invalidation — Symfony Cache tags
    • Event-driven invalidation — cache invalidacja na zdarzenie domenowe
  • HTTP cache:
    • Cache-Control, ETag, Last-Modified — nagłówki HTTP
    • Koncepcja reverse proxy (Varnish/Nginx) — konfiguracja Cache-Control w Symfony Response
    • CDN — kiedy i co delegować
  • Efekt: Aplikacja ma cache na trzech poziomach; invalidacja działa poprawnie

 

Etap 4: Read model i podsumowanie

  • Read model — denormalizacja danych pod wydajne odczyty
  • Kiedy read model ma sens — heavy reads vs light reads
  • Implementacja: osobna tabela zoptymalizowana pod listingi
  • Synchronizacja read modelu przez zdarzenia domenowe
  • Pomiar końcowy — porównanie z baseline z etapu 1
  • Retrospektywa — co dało największy efekt, co było over-engineering
  • Efekt: Uczestnicy mają kompletny zestaw narzędzi do diagnozowania i naprawiania problemów wydajnościowych

Skontaktuj sie z nami

zorganizujemy dla Ciebie szkolenie dopasowane do Twoich potrzeb

Przemysław Wołosz

Key Account Manager

przemyslaw.wolosz@infoShareAcademy.com

    Administratorem danych osobowych jest InfoShare Academy Sp. z o.o. z siedzibą w Gdańsku, al. Grunwaldzka 427B, 80-309 Gdańsk, KRS: 0000531749, NIP: 5842742213. Dane osobowe przetwarzane są zgodnie z klauzulą informacyjną.