PHP 9.0 jest planowane na koniec 2027 lub 2028 – jeszcze dużo czasu, ale RFC proces już się toczy. Pierwsze propozycje trafiły na wiki.php.net i listę internals w Q4 2025. Dla PHP developera który ma duże projekty w produkcji to właśnie teraz jest czas żeby zobaczyć co trzeba będzie zmienić. Przeglądam co jest potwierdzone do usunięcia, co jest dyskutowane i jaka jest ogólna filozofia tej wersji major.
Service Contracts to fundament który odróżnia Magento 2 od poprzedniej wersji. Interfejsy z przestrzeni Api\, repositories, search criteria – w teorii czyste i eleganckie, w praktyce pełne pułapek które widzę regularnie w code review. Przez osiem lat zebrałem zestaw zasad których przestrzegam i antypatternów których unikam. Czas to zebrać w jedno miejsce.
Nowy rok zaczynam tradycyjnym przeglądem trendów. 2025 był rokiem pipe operatora i konsolidacji Hyvä. 2026 zapowiada się jako rok PHP 8.5 w Magento, pierwszych RFC pod PHP 9.0 i dalszego dojrzewania AI tooling w codziennej pracy developera. Bez przepowiadania przyszłości – tylko to co aktualnie widać w projektach, społeczności i na listach mailingowych php-internals.
Ostatni wpis roku 2025 i zarazem siódma rocznica bloga. Lipiec 2018 – grudzień 2025 to 120 wpisów i siedem lat zmian w ekosystemie PHP i Magento 2. W tym roku PHP 8.5 z pipe operatorem, Hyvä jako defacto standard dla nowych sklepów, AI tools które stały się częścią codziennego workflow każdego developera PHP, i rosnąca popularność headless Magento z Next.js. Podsumowanie bez marketingowego bałaganu.
Gdy masz 100 000 zamówień do eksportu albo milion wierszy do importu, wczytanie wszystkiego do tablicy to pewna śmierć przez wyczerpanie pamięci. PHP oferuje dwa eleganckie mechanizmy leniwego przetwarzania: interfejs Iterator dla klas które sami piszemy i Generator (yield) dla prostszego kodu który nie wymaga całej klasy. Pokazuję oba z praktycznymi przykładami z Magento 2.
Extension Attributes to jeden z najbardziej eleganckich mechanizmów Magento 2 który pozwala dodawać pola do istniejących encji (produkty, zamówienia, klienci) bez modyfikowania ich tabel ani klas. Zamiast tego deklarujesz atrybuty w XML, implementujesz plugin do ładowania i zapisywania danych, i Magento automatycznie dołącza je do odpowiedzi REST API i GraphQL. Pokazuję kompletną implementację krok po kroku.
PHP 8.5 RC1 wyszło w sierpniu 2025. Przez ostatnie tygodnie testowałem na kilku projektach. Pipe operator działa dokładnie tak jak RFC obiecywało – i zmienia sposób pisania przetwarzania danych bardziej niż jakikolwiek feature od czasu match() w PHP 8.0. Ale RC1 przyniosło też kilka niespodzianek których nie było w RFC drafcie. Raport z pierwszych tygodni.
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.
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.
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.
