PHP / Magento Dev Blog

  • Publikacje
  • O autorze
  • Kontakt

Trends 2026 – PHP 8.5 in Magento, PHP 9.0 signals, FrankenPHP, AI tooling Q1

by Henryk Tews / Tuesday, 06 January 2026 / Published in PHP

2026 opens with PHP 8.5 fresh in production and PHP 9.0 on the horizon. FrankenPHP is maturing towards Magento compatibility. AI tooling is changing the economics of code generation. OpenSearch vector search is arriving in e-commerce. I look at what is worth tracking in the first quarter and what is hype versus signal.

PHP 8.5 in Magento 2 – adoption timeline

# PHP 8.5 released November 2025
# Magento 2.4.8 supports PHP 8.4 - not yet 8.5
# Expected: Magento 2.4.9 adds PHP 8.5 support (Q2 2026 estimate)

# Safe to use PHP 8.5 in:
# - Custom modules (if you control the PHP version)
# - CLI tools and import scripts
# - Non-Magento PHP services

# Wait for PHP 8.5 in:
# - Magento web process (until official 2.4.9 support)
# - Third-party modules (may not support 8.5 yet)

# Pipe operator in Magento modules:
# Works today in PHP 8.5 with Magento 2.4.8 if running PHP 8.5
# Magento core files don't use pipe yet - your custom code can

# Practical advice: test on PHP 8.5 staging, deploy when your module set is compatible
vendor/bin/phpstan analyse app/code/ --php-version=8.5 --level=5

PHP 9.0 signals – what is being discussed

PHP 9.0 target: 2026 (no confirmed date yet)
Theme: clean break from deprecated 8.x patterns

Confirmed removals (deprecated in 8.x):
- Dynamic property creation → Fatal error
- utf8_encode() / utf8_decode() → Removed (use mb_convert_encoding())
- Implicit nullable parameters → Require explicit ?Type
- Nested ternary without brackets → Removed

Under discussion:
- Typed arrays: string[] as a native type (still controversial)
- Typed variadics: function foo(int ...$values)
- Abstract readonly: abstract readonly class
- Pipe operator refinements based on 8.5 feedback

What stays:
- All existing PHP 8.x code that avoided deprecated patterns
- OOP model unchanged
- Backward compatibility within non-deprecated APIs
# Prepare now for PHP 9.0 compatibility
# Find all deprecated usages in your codebase

# 1. Dynamic properties
vendor/bin/phpstan analyse app/code/ --level=2 --php-version=9.0 2>&1 | grep "dynamic"

# 2. utf8_encode/decode
grep -rn "utf8_encode\|utf8_decode" app/code/ --include="*.php"

# 3. Implicit nullable
vendor/bin/rector process app/code/ \
    --only="\Rector\TypeDeclaration\Rector\FunctionLike\AddParamTypeFromPropertyTypeRector" \
    --dry-run

# 4. Run full PHP 9.0 compatibility check
vendor/bin/phpcs --standard=PHPCompatibility --runtime-set testVersion 9.0 app/code/

FrankenPHP – state in Q1 2026

# FrankenPHP progress towards Magento compatibility:

# What works (as of Q1 2026):
# - FrankenPHP as a PHP-FPM replacement (no worker mode)
# - 15-20% faster than nginx + PHP-FPM due to better I/O handling
# - HTTP/3 support out of the box
# - Simpler Docker images (one container vs nginx + fpm)

# What does NOT work yet:
# - Worker mode (app keeps running between requests) - Magento's bootstrap
#   creates static globals that break when reused across requests
# - Auto-certificates in production without custom Caddie config

# Practical test:
docker run -p 80:80 -v ./:/app dunglas/frankenphp \
    php-server --root /app/pub --listen 0.0.0.0:80
# Test basic Magento page rendering without worker mode

# Verdict Q1 2026: worth monitoring, not yet production-ready for Magento
# Check: https://frankenphp.dev/docs/worker/

AI tooling in Q1 2026

Tool Best for in 2026 Limitation
Cursor (Claude 3.5) Multi-file refactoring, complex changes Expensive, cloud only
Copilot (GPT-4o) Inline completion, VS Code integration Less context-aware than Cursor
Ollama + Qwen2.5 Coder 32B Privacy-safe, NDA work, offline Requires beefy hardware (24GB+ VRAM)
Claude 3.5 Sonnet via API 200K context, full module analysis API costs add up
# Running Qwen2.5 Coder locally for Magento work
ollama pull qwen2.5-coder:32b  # requires 24GB VRAM or 64GB RAM for CPU

# Good enough for:
# - "Explain this DI configuration"
# - "Write a plugin for this method"
# - "Review this for Magento antipatterns"

# Still needs cloud models for:
# - "Review my entire module" (context > 32K tokens)
# - Latest Magento 2.4.9 changes (training cutoff)

OpenSearch vector search – arrives in e-commerce

# OpenSearch 2.x k-NN vector search
# Magento 2 modules starting to appear for semantic search
# Use case: "find products similar to this description" using embeddings

# Early adopter setup:
# 1. OpenSearch 2.13+ with k-NN plugin enabled
# 2. Embedding model (Ollama nomic-embed-text or OpenAI ada-002)
# 3. Custom Magento module to index/search via embeddings
# (see separate post on this topic)

# Status Q1 2026: experimental but production-proven in non-Magento PHP apps
# Magento integration: first community modules available, not yet mature

Summary

Q1 2026 is about consolidation: PHP 8.5 pipe operator enters everyday code, PHP 9.0 preparations start in the background, FrankenPHP is worth watching for non-Magento PHP services. AI tooling continues to improve with larger context windows making full-module analysis reliable. The most impactful immediate action: run PHPStan on your codebase with PHP 9.0 target to find the deprecated patterns that need fixing before 2026 turns into 2027.

About Henryk Tews

What you can read next

PHP 7.2 – object type hint, sodium instead of mcrypt, deprecations

© 2026 Created by

TOP
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 Always active
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.
  • Manage options
  • Manage services
  • Manage {vendor_count} vendors
  • Read more about these purposes
Zobacz preferencje
  • {title}
  • {title}
  • {title}