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 / Adobe Commerce
PHP 8.5 RFC potwierdzony – pipe operator!, readonly dziedziczenie, array_first/last
Zbliżamy się do Feature Freeze PHP 8.5 (latem 2025). Kilka RFC przeszło głosowanie i jest już w masterze. Przeglądam co jest potwierdzone, co jest w ostatniej rundzie głosowania i które propozycje nie zebrały wymaganego 2/3 głosów. Bez spekulacji – tylko potwierdzone zmiany.
- Opublikowano w PHP
Hyvä vs Luma benchmark – twarde liczby, LCP 3.5x szybszy, k6 load test, konwersja
Każda strona marketingowa Hyvä pokazuje PageSpeed 95+ vs Luma 40. Ale jak wygląda to w prawdziwym projekcie z kilkoma tysiącami produktów, kilkudziesięcioma modułami zewnętrznymi i realnym ruchem? Przeprowadziłem benchmark na identycznym projekcie Magento 2.4.8 z dwoma motywami – Luma i Hyvä – na tym samym serwerze, z tym samym stack’iem. Pokazuję liczby.
- Opublikowano w Magento / Adobe Commerce
