DDEV zaawansowany – mutagen, własne serwisy, hooks, współdzielona konfiguracja w teamie
Pisałem o DDEV w 2018 jako o narzędziu do stawiania Magento lokalnie. Przez 7 lat stało się moim domyślnym środowiskiem do każdego projektu PHP. Ale większość developerów używa tylko podstaw: ddev start, ddev ssh, ddev exec. Pokazuję zaawansowane możliwości które realnie wpływają na komfort pracy: mutagen dla wydajności na macOS, własne usługi w docker-compose, współdzielone konfiguracje w teamie i hooks automatyzujące setup.
- Opublikowano w Środowiska
Migracja danych prod → dev – mydumper, anonimizacja RODO, hooks automatyzujące setup
Każdy developer Magento 2 zna ten problem: produkcyjna baza danych ma 50GB, czas importu 3 godziny, a po imporcie konfiguracja wskazuje na produkcyjne URL-e i tokeny. Pokazuję kompletny workflow: jak wyciągnąć użyteczny dump z produkcji, automatycznie oczyścić dane wrażliwe, zmienić konfigurację środowiskową i skrócić czas importu z godzin do minut.
- Opublikowano w Magento 2
PHP Fibers deep dive – własny scheduler, kooperatywna wielozadaniowość, równoległe HTTP
Fibers weszły do PHP w wersji 8.1 jako niskopoziomowy mechanizm kooperatywnej wielozadaniości. W marcu 2024 pisałem o ReactPHP który buduje na Fibers abstrakcję event loop i async/await. Dziś wchodzę głębiej: jak Fibers działają wewnętrznie, kiedy warto sięgać bezpośrednio do Fiber API bez biblioteki i jak pisać własny prosty scheduler który pozwala równolegle wykonywać zadania w PHP CLI.
- Opublikowano w PHP
GraphQL batch loading – BatchServiceContractResolverInterface, cache z tagami, N+1
Własny resolver GraphQL w Magento 2 to kilka plików konfiguracyjnych i klasa PHP – o tym pisałem już w 2020. Ale gdy resolver pojawia się w produkcji pod ruchem, zaczynają się prawdziwe problemy: N+1 queries przez zagnieżdżone pola, brak cache dla drogich operacji i trudne debugowanie. Pokazuję jak napisać resolver produkcyjnej jakości z batch loadingiem i granularnym cache.
- Opublikowano w Magento 2
