PHP / Magento Dev Blog

  • Publikacje
  • O autorze
  • Kontakt

Trendy 2026 – PHP 8.5 w Magento, PHP 9.0 sygnały, FrankenPHP, AI tooling Q1

by Henryk Tews / wtorek, 06 stycznia 2026 / Opublikowano w PHP

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.

PHP 8.5 w Magento – kiedy realnie?

PHP 8.5 wyszło w listopadzie 2025. Oficjalne wsparcie w Magento 2 pojawi się w wersji 2.4.9 – spodziewanej w Q2 lub Q3 2026. Co to oznacza teraz:

# Aktualnie (styczeń 2026):
# - Magento 2.4.8 oficjalnie wspiera PHP 8.3 i 8.4
# - PHP 8.5 działa z Magento 2.4.8 w praktyce, ale bez oficjalnej gwarancji
# - Zewnętrzne moduły mogą jeszcze nie być gotowe

# Sprawdź gotowość modułów na PHP 8.5
composer require --dev phpcompatibility/php-compatibility
vendor/bin/phpcs \
    --standard=PHPCompatibility \
    --runtime-set testVersion 8.5 \
    --extensions=php \
    vendor/ 2>/dev/null | grep -E "ERROR" | wc -l

# Poczekaj z produkcją na Magento 2.4.9 – ale własny kod możesz pisać z PHP 8.5 już teraz
<?php

declare(strict_types=1);

// Własny kod modułu z PHP 8.5 features - bezpiecznie już teraz
// (pod warunkiem że Twoje moduły są izolowane od rdzenia)

// Pipe operator w serwisie importu produktów
class ProductImportPipeline
{
    public function __construct(
        private readonly SkuNormalizer $normalizer,
        private readonly PriceValidator $validator,
        private readonly ProductSaver $saver
    ) {}

    public function process(array $rawRows): ImportResult
    {
        $valid = $rawRows
            |> array_filter($$, fn($r) => !empty($r['sku']))
            |> array_map(fn($r) => $this->normalizer->normalize($r), $$)
            |> array_filter($$, fn($r) => $this->validator->isValid($r))
            |> array_values($$)
        ;

        $saved  = array_map(fn($r) => $this->saver->save($r), $valid);
        $errors = count($rawRows) - count($valid);

        return new ImportResult(count($saved), $errors);
    }
}

PHP 9.0 – pierwsze sygnały z internals

Prace nad PHP 9.0 oficjalnie zaczęły się pod koniec 2025. Kilka RFC jest już w fazie discussion:

<?php

// RFC: Usunięcie starych deprecacji z PHP 9.0

// 1. Dynamiczne właściwości usunięte (deprecated od 8.2, error od 9.0)
class Product
{
    // PHP 8.x z #[AllowDynamicProperties]: $product->custom = 'val' -> OK
    // PHP 9.0: Fatal Error bez atrybutu
}

// 2. Implicit nullable bez ? - TypeError od PHP 9.0
// function foo(string $x = null): void {} // Error w PHP 9.0
// Napraw teraz: function foo(?string $x = null): void {}

// 3. Część starych aliasów funkcji usunięta
// join() -> implode() (join() deprecated w 9.0 lub usunięte)
// sizeof() -> count()

// RFC w dyskusji (nie potwierdzone):
// - Native generics (wciąż brak konsensusu technicznego)
// - Pattern matching (match 2.0 z destrukturowaniem?)
// - First-class named arguments w więcej kontekstach

FrankenPHP – czy jest gotowy na Magento?

FrankenPHP 1.x jest stabilny dla nowych aplikacji PHP. Sytuacja z Magento 2 na początku 2026:

Tryb FrankenPHP Magento 2 – status Kiedy warto
Traditional (jak PHP-FPM) Działa – przetestowane Drop-in zamiana PHP-FPM, łatwiejsza konfiguracja
Worker mode Problematyczny – global state Magento Nie zalecane bez głębokiej analizy
CLI (bin/magento) Bezproblemowe Szybszy bootstrap przy wielu komendach
# FrankenPHP jako zamiana PHP-FPM w DDEV (eksperymentalnie)
# .ddev/config.yaml
# webserver_type: generic
# Następnie własny docker-compose z FrankenPHP

# docker-compose.frankenphp.yaml (fragment)
# services:
#   web:
#     image: dunglas/frankenphp:php8.5-alpine
#     environment:
#       SERVER_NAME: ":80"
#       FRANKENPHP_CONFIG: |
#         worker /var/www/html/frankenphp-worker.php

AI tooling – co nowego na starcie 2026

W grudniu 2025 kilka nowych narzędzi weszło do mojego workflow lub mają potencjał:

  • Claude 3.5/3.6 z dłuższym kontekstem – 200k tokenów pozwala wkleić cały moduł Magento i dostać sensowny review. Rok temu to nie działało przy większych modułach.
  • Cursor IDE z Magento plugin – Cursor rozumie teraz lepiej Magento conventions przez własny context window nad projektem. Autocompletion di.xml jest zauważalnie lepsze.
  • DeepSeek V3 lokalnie przez Ollama – nowy model który dorównuje GPT-4o przy frakcji wymagań sprzętowych. Na Mac M-series działa użytecznie bez throttlingu.
  • GitHub Copilot Workspace – feature który pozwala opisać zadanie w języku naturalnym a Copilot proponuje plan zmian z plikami. Wciąż beta ale obiecujące.

Projekty które śledzę w 2026

  • Magento 2.4.9 – PHP 8.5 wsparcie, prawdopodobnie więcej integracji z Adobe Commerce AI
  • Hyvä React GA – oficjalna GA wersja Hyvä React (islands architecture z React w Hyvä)
  • OpenSearch 3.x semantic search – vector search dla „podobnych produktów” bez zewnętrznych ML serwisów
  • PHP Rector 2.0 – nowa wersja z lepszą obsługą PHP 8.5 i pierwszymi regułami PHP 9.0 migration
  • DDEV 2.0 – przepisany core, lepsza wydajność na Apple Silicon

Podsumowanie

2026 to rok stabilizacji po intensywnym cyklu zmian PHP 8.x. Pipe operator, readonly hierarchie i property hooks są w produktywnym kodzie. AI tools przestały być eksperymentem i stały się częścią infrastruktury deweloperskiej jak IDE i linter. Magento 2.4.9 z PHP 8.5 będzie milowym kamieniem który otworzy nowe możliwości w platformie. Śledzę i opisuję.

About Henryk Tews

Co możesz przeczytać następne

WooCommerce vs Magento 2 – architektura, hooks vs DI, kiedy który
Podsumowanie 2025 – pipe operator, Hyvä mainstream, AI tooling obowiązkowy, 120 wpisów
PHP 8.5 RFC – pipe operator, readonly dziedziczenie, generics dlaczego nie ma
  • 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}