Nowy rok to dobry moment na przegląd tego co dzieje się w ekosystemie PHP i Magento 2. Po kilku intensywnych latach (PHP 8.0 do 8.4, Magento headless, Hyvä, AI tooling) wchodzę w 2025 z kilkoma obserwacjami które mogą mieć realny wpływ na projekty przez kolejne 12 miesięcy. Bez marketingowych bzdur – tylko to co faktycznie widać w kodzie, społeczności i na produkcji.
PHP 8.4 wchodzi do mainstreamu
PHP 8.4 jest świeże (listopad 2024) ale już teraz widać pierwsze moduły Magento aktualizowane pod nową wersję. Property hooks i asymmetric visibility to zmiany które będą powoli wchodzić do nowego kodu przez cały 2025:
<?php
declare(strict_types=1);
// To co w 2025 będzie nowym standardem pisania Value Objects
readonly class Money
{
public function __construct(
public int $amount, // w groszach - BcMath\Number dla obliczeń
public string $currency
) {}
// Property hook jako computed property
public string $formatted {
get => number_format($this->amount / 100, 2, ',', ' ') . ' ' . $this->currency;
}
}
// Aggregate z asymmetric visibility - bez getterów/setterów
class OrderProcessingPipeline
{
public private(set) string $stage = 'pending';
public private(set) array $completedStages = [];
public private(set) ?\Throwable $lastError = null;
public function advance(string $nextStage): void
{
$this->completedStages[] = $this->stage;
$this->stage = $nextStage;
}
public function fail(\Throwable $error): void
{
$this->lastError = $error;
$this->stage = 'failed';
}
}
FrankenPHP – nowy serwer aplikacyjny dla PHP
FrankenPHP to jeden z bardziej interesujących projektów PHP w 2024 roku. Serwer napisany w Go który osadza PHP jako bibliotekę – HTTP/2 i HTTP/3 out of the box, worker mode (PHP nie restartuje procesu per request), wbudowany Caddy serwer. Śledzę to z uwagą choć w kontekście Magento 2 jeszcze za wcześnie na produkcję:
# FrankenPHP - instalacja i pierwsze kroki docker run -v $PWD:/app -p 80:80 dunglas/frankenphp # Worker mode - PHP uruchamiany raz, obsługuje wiele requestów # Znacznie mniejsze zużycie pamięci, szybszy cold start # php/worker.php - bootstrap PHP raz przy starcie # Dla Magento 2 - eksperymentalnie (nie produkcja jeszcze) # Problemy: Magento zakłada że każdy request to świeży PHP process # Global state, registry, ObjectManager singleton mogą mieć problemy # w worker mode gdzie proces żyje przez wiele requestów
<?php
// FrankenPHP worker mode - przykład prostej aplikacji
// (nie Magento - dla ilustracji konceptu)
require __DIR__ . '/vendor/autoload.php';
$app = new \Slim\App();
// Pętla którą FrankenPHP utrzymuje alive między requestami
while ($request = \FrankenPHP\Request::create()) {
// Obsłuż request bez restartowania PHP procesu
$response = $app->handle($request);
$response->send();
// Wyczyść stan który nie powinien przechodzić między requestami
\FrankenPHP\Request::destroy();
}
AI-assisted development – co rzeczywiście zmieniło się po roku
W sierpniu pisałem o AI tools. Po kolejnych miesiącach intensywnego użycia mam zaktualizowane obserwacje:
- GitHub Copilot – Model stał się znacznie lepszy przy kodzie Magento 2. Sugestie di.xml i events.xml są teraz częściej poprawne. Nadal nie zna Twojego konkretnego projektu.
- Claude/GPT-4o dla code review – Weszło do stałego workflow. Wklejam diff przed merge requestem, dostaję przegląd potencjalnych problemów. Nie zastępuje code review kolegi, ale uzupełnia.
- Lokalne LLM (Ollama) – Codellama i DeepSeek Coder poprawiły się znacznie w ciągu roku. Dla kodu który nie może opuścić firmy – realnie użyteczne.
- Cursor IDE – Nowy gracz, edytor oparty na VS Code z AI wbudowanym głębiej niż Copilot. Dobre wyniki przy refaktoringu z kontekstem całego projektu.
# DeepSeek Coder przez Ollama - lepszy od codellama przy PHP
ollama pull deepseek-coder:6.7b
# Przykład - review kodu przez Ollama CLI
cat src/Model/OrderService.php | ollama run deepseek-coder:6.7b \
"Review this PHP code for bugs, type safety issues and Magento 2 best practices violations"
# Lub przez API w skrypcie CI
curl http://localhost:11434/api/generate -d '{
"model": "deepseek-coder:6.7b",
"prompt": "Analyze this Magento 2 plugin code for anti-patterns: $(cat src/Plugin/MyPlugin.php)",
"stream": false
}'
OpenSearch umacnia pozycję
Po Magento 2.4.8 z oficjalnym OpenSearch wsparciem, wszystkie nowe wdrożenia powinny iść na OpenSearch 2.x. Elasticsearch 7.x wychodzi z supportu a SSPL licencja wyklucza go z wielu scenariuszy open source. W praktyce:
# Migracja istniejących projektów - sprawdź wersję ES curl http://elasticsearch:9200/ # Jeśli Elasticsearch 7.x - migruj na OpenSearch 2.x # API jest kompatybilne, konfiguracja Magento się zmienia: bin/magento config:set catalog/search/engine opensearch bin/magento config:set catalog/search/opensearch_server_hostname opensearch # OpenSearch 2.x w DDEV # .ddev/docker-compose.opensearch.yaml zamiast elasticsearch.yaml
Hyvä konsoliduje rynek frontendu Magento
Po 2 latach od pojawienia się, Hyvä stało się de facto standardem dla nowych projektów Magento 2 Community Edition gdzie performance jest priorytetem. Kluczowe obserwacje na wejście w 2025:
- Ekosystem kompatybilnych modułów rośnie szybko – większość popularnych extension vendorów ma już Hyvä compatible wersje
- Hyvä Checkout stabilizuje się jako kompletny produkt, nie beta
- Hyvä React – nowy oficjalny most między Hyvä a React komponentami dla projektów które chcą część UI w React bez pełnego PWA
- Alpine.js 3.x jako foundation – prosta, stabilna baza która nie wymaga compilera
Co obserwuję w projektach klientów – 2025 inicjatywy
Trzy tematy powtarzają się w rozmowach o planach na 2025:
- Headless z Next.js + Magento GraphQL – więcej projektów rozważa oddzielenie frontendu, szczególnie po sukcesach pierwszych wdrożeń
- Upgrade Magento 2.3.x → 2.4.x – dług techniczny rośnie, 2.3 jest EOL, ciśnienie na upgrade wzrasta
- AI w procesach sklepu – nie narzędzia dla developerów, ale funkcje dla sklepu: AI search, rekomendacje, chatboty obsługi klienta. To ciekawy obszar do obserwowania
Na co patrzeć w PHP w 2025
PHP 8.5 RFC zostały otwarte – kilka ciekawych propozycji które mogą trafić do wydania pod koniec 2025:
- Pipe operator |> – po kolejnej rundzie dyskusji, może w końcu trafi do głosowania
- Generics (templates) – najbardziej pożądana funkcja której PHP nie ma od lat, nadal bez RFC które przeszłoby głosowanie
- Union type improvements – drobne usprawnienia systemu typów
- Fiber improvements – dojrzewanie async ekosystemu po wprowadzeniu Fibers w 8.1
Podsumowanie
2025 to rok konsolidacji zmian z ostatnich lat – PHP 8.4 features wchodzą do mainstreamu, OpenSearch zastępuje Elasticsearch, Hyvä stabilizuje się jako default choice dla frontendu Magento. Dla mnie osobiście: więcej czasu na CQRS, Event Sourcing i narzędzia observability w projektach gdzie skala to uzasadnia. I oczywiście śledzenie jak AI tooling ewoluuje – rok temu CodeLlama był słaby przy Magento, dziś jest użyteczny. Za rok może być niezbędny.
