PHP / Magento Dev Blog

  • Publikacje
  • O autorze
  • Kontakt

Trendy 2025 – FrankenPHP, AI tooling update, OpenSearch, Hyvä konsolidacja

by Henryk Tews / wtorek, 07 stycznia 2025 / Opublikowano w PHP

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.

About Henryk Tews

Co możesz przeczytać następne

PHP 8.1 w praktyce – enumy po miesiącach, serializacja do bazy, Money value object
PHP 8.5 RFC – pipe operator, readonly dziedziczenie, generics dlaczego nie ma
AI w pracy PHP developera – Copilot, Claude, Ollama, gdzie pomaga a gdzie zawodzi
  • Publikacje
  • O autorze
  • Kontakt

© 2026 Created by

GÓRA
Zarządzaj zgodą
Aby zapewnić jak najlepsze wrażenia, korzystamy z technologii, takich jak pliki cookie, do przechowywania i/lub uzyskiwania dostępu do informacji o urządzeniu. Zgoda na te technologie pozwoli nam przetwarzać dane, takie jak zachowanie podczas przeglądania lub unikalne identyfikatory na tej stronie. Brak wyrażenia zgody lub wycofanie zgody może niekorzystnie wpłynąć na niektóre cechy i funkcje.
Funkcjonalne Zawsze aktywne
Przechowywanie lub dostęp do danych technicznych jest ściśle konieczny do uzasadnionego celu umożliwienia korzystania z konkretnej usługi wyraźnie żądanej przez subskrybenta lub użytkownika, lub wyłącznie w celu przeprowadzenia transmisji komunikatu przez sieć łączności elektronicznej.
Preferencje
Przechowywanie lub dostęp techniczny jest niezbędny do uzasadnionego celu przechowywania preferencji, o które nie prosi subskrybent lub użytkownik.
Statystyka
Przechowywanie techniczne lub dostęp, który jest używany wyłącznie do celów statystycznych. Przechowywanie techniczne lub dostęp, który jest używany wyłącznie do anonimowych celów statystycznych. Bez wezwania do sądu, dobrowolnego podporządkowania się dostawcy usług internetowych lub dodatkowych zapisów od strony trzeciej, informacje przechowywane lub pobierane wyłącznie w tym celu zwykle nie mogą być wykorzystywane do identyfikacji użytkownika.
Marketing
Przechowywanie lub dostęp techniczny jest wymagany do tworzenia profili użytkowników w celu wysyłania reklam lub śledzenia użytkownika na stronie internetowej lub na kilku stronach internetowych w podobnych celach marketingowych.
  • Zarządzaj opcjami
  • Zarządzaj serwisami
  • Zarządzaj {vendor_count} dostawcami
  • Przeczytaj więcej o tych celach
Zobacz preferencje
  • {title}
  • {title}
  • {title}