Dwa lata temu pisałem o Hyvä jako alternatywie dla Lumy. Od tamtej pory ekosystem dojrzał, a wybór między PWA Studio (React, headless API), Hyvä (Alpine.js, server-side) i klasyczną Lumą stał się pytaniem które pojawia się przy każdym nowym projekcie Magento. Robię rzetelne porównanie tych trzech ścieżek – z perspektywy kogoś kto wdrażał każdą z nich.
DDEV świetnie sprawdza się lokalnie. Ale jak wygląda stack Magento 2 na produkcji w Docker Compose? Pokażę kompletną konfigurację: nginx, PHP-FPM, MariaDB, Redis (trzy instancje), Elasticsearch i Varnish – z separacją sieci, sekretami Docker, healthcheckami i strategią deploymentu. To nie jest tutorial dla początkujących, ale referencja dla kogoś kto chce postawić Magento na własnej infrastrukturze.
Bloom Filter to probabilistyczna struktura danych która odpowiada na pytanie „czy ten element może być w zbiorze?” – z gwarancją braku false negatives i kontrolowanym poziomem false positives. Używa ułamka pamięci potrzebnej tablicy hashowej. Gdy masz milion zakazanych tokenów, setki tysięcy unikalnych emaili do walidacji albo cache który musi odrzucić żądania bez trafień do bazy – Bloom Filter jest właściwym narzędziem.
Do premiery PHP 8.4 zostały dwa miesiące. Przez ostatnie tygodnie śledziłem zamknięte RFC i testowałem na RC2. Lazy Objects to feature który przemknął trochę w cieniu property hooks, a jest równie ciekawy – obiekty tworzone dopiero przy pierwszym dostępie do właściwości. Pokazuję co ostatecznie trafiło do 8.4 i jak to wpłynie na codzienny kod.
Gdy aplikacja działa jako zestaw mikroserwisów, jeden request użytkownika może przejść przez Magento, serwis zamówień, API płatności i warehouse management. Gdy coś idzie wolno lub się psuje – jak znaleźć winowajcę? OpenTelemetry to standard obserwability który łączy traces (śledzenie requestów), metrics i logs w jeden spójny obraz. Pokazuję jak instrumentować PHP i Magento 2.
Event Sourcing to wzorzec architektoniczny który zmienia sposób myślenia o persystencji: zamiast zapisywać aktualny stan obiektu, zapisujesz sekwencję zdarzeń które do tego stanu doprowadziły. Stan jest wynikiem odtwarzania tych zdarzeń. Brzmi skomplikowanie, ale rozwiązuje realne problemy z audytem, debugowaniem i odtwarzaniem historii biznesowej.
Integracja z polskimi kurierami (InPost, DPD, DHL, Poczta Polska) często wymaga napisania własnego carrieru zamiast polegania na gotowych modułach. Pokazuję jak zbudować pełny moduł dostawy od zera: dynamiczne stawki z API kuriera, wybór punktu odbioru, generowanie etykiet i śledzenie statusu paczki.
PHP 8.4 wychodzi w listopadzie 2024, ale RC1 jest dostępne już teraz. Przez kilka tygodni testowałem property hooks i asymmetric visibility na realnych projektach – data transfer objects, value objects, moduły Magento. Czas na uczciwy raport: co weszło do kodu od razu, co wymaga ostrożności i gdzie są niespodzianki.
Memento to wzorzec behawioralny który pozwala zapisywać i przywracać poprzedni stan obiektu bez ujawniania szczegółów jego implementacji. Undo/redo w edytorze tekstowym, historia zmian cen produktu, rollback konfiguracji – wszędzie tam gdzie chcesz cofnąć operację, Memento daje eleganckie rozwiązanie. Implementuję od zera z przykładami z e-commerce.
var_dump() i microtime() to debugowanie na oko. Blackfire to profesjonalny profiler który pokazuje dokładnie ile czasu i pamięci zajmuje każde wywołanie funkcji w całym stosie – w czasie rzeczywistym, z wizualizacją call graph. Pokazuję jak zainstalować Blackfire w DDEV, jak profilować requesty HTTP i komendy CLI, i jak interpretować wyniki żeby znaleźć prawdziwe wąskie gardła w Magento 2.
