feat(Docker): Upgrade to PHP 8.5.0RC3 with native ext-uri support
BREAKING CHANGE: Requires PHP 8.5.0RC3 Changes: - Update Docker base image from php:8.4-fpm to php:8.5.0RC3-fpm - Enable ext-uri for native WHATWG URL parsing support - Update composer.json PHP requirement from ^8.4 to ^8.5 - Add ext-uri as required extension in composer.json - Move URL classes from Url.php85/ to Url/ directory (now compatible) - Remove temporary PHP 8.4 compatibility workarounds Benefits: - Native URL parsing with Uri\WhatWg\Url class - Better performance for URL operations - Future-proof with latest PHP features - Eliminates PHP version compatibility issues
This commit is contained in:
@@ -12,6 +12,7 @@ use App\Framework\Discovery\Results\DiscoveryRegistry;
|
||||
use App\Framework\Performance\PerformanceService;
|
||||
use App\Framework\View\Dom\Transformer\AssetInjectorTransformer;
|
||||
use App\Framework\View\Dom\Transformer\CommentStripTransformer;
|
||||
use App\Framework\View\Dom\Transformer\ForTransformer;
|
||||
use App\Framework\View\Dom\Transformer\HoneypotTransformer;
|
||||
use App\Framework\View\Dom\Transformer\IfTransformer;
|
||||
use App\Framework\View\Dom\Transformer\LayoutTagTransformer;
|
||||
@@ -19,7 +20,6 @@ use App\Framework\View\Dom\Transformer\MetaManipulatorTransformer;
|
||||
use App\Framework\View\Dom\Transformer\WhitespaceCleanupTransformer;
|
||||
use App\Framework\View\Dom\Transformer\XComponentTransformer;
|
||||
use App\Framework\View\Loading\TemplateLoader;
|
||||
use App\Framework\View\Processors\ForStringProcessor;
|
||||
use App\Framework\View\Processors\PlaceholderReplacer;
|
||||
use App\Framework\View\Processors\VoidElementsSelfClosingProcessor;
|
||||
|
||||
@@ -33,11 +33,12 @@ final readonly class TemplateRendererInitializer
|
||||
#[Initializer]
|
||||
public function __invoke(): TemplateRenderer
|
||||
{
|
||||
// AST Transformers (new approach)
|
||||
// AST Transformers (new approach) - Modern template processing
|
||||
$astTransformers = [
|
||||
// Core transformers (order matters!)
|
||||
LayoutTagTransformer::class, // Process <layout> tags FIRST (before other processing)
|
||||
XComponentTransformer::class, // Process <x-*> components (LiveComponents + HtmlComponents)
|
||||
ForTransformer::class, // Process foreach loops and <for> elements (BEFORE if/placeholders)
|
||||
IfTransformer::class, // Conditional rendering (if/condition attributes)
|
||||
MetaManipulatorTransformer::class, // Set meta tags from context
|
||||
AssetInjectorTransformer::class, // Inject Vite assets (CSS/JS)
|
||||
@@ -49,11 +50,9 @@ final readonly class TemplateRendererInitializer
|
||||
// TODO: Migrate remaining DOM processors to AST transformers:
|
||||
// - ComponentProcessor (for <component> tags) - COMPLEX, keep in DOM for now
|
||||
// - TableProcessor (for table rendering) - OPTIONAL
|
||||
// - ForProcessor (DOM-based, we already have ForStringProcessor) - HANDLED
|
||||
// - FormProcessor (for form handling) - OPTIONAL
|
||||
|
||||
$strings = [
|
||||
ForStringProcessor::class, // ForStringProcessor MUST run first to process <for> loops before DOM parsing
|
||||
PlaceholderReplacer::class, // PlaceholderReplacer handles simple {{ }} replacements
|
||||
VoidElementsSelfClosingProcessor::class,
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user