Files
michaelschiemer/src/Framework/View/Processors/DateFormatProcessor.php
Michael Schiemer 55a330b223 Enable Discovery debug logging for production troubleshooting
- Add DISCOVERY_LOG_LEVEL=debug
- Add DISCOVERY_SHOW_PROGRESS=true
- Temporary changes for debugging InitializerProcessor fixes on production
2025-08-11 20:13:26 +02:00

31 lines
904 B
PHP

<?php
declare(strict_types=1);
namespace App\Framework\View\Processors;
use App\Framework\Template\Processing\StringProcessor;
use App\Framework\View\RenderContext;
# Formatiert Datumsfelder etwa mit einem Tag `<date value="iso_date" format="d.m.Y" />`.
final readonly class DateFormatProcessor implements StringProcessor
{
/**
* @inheritDoc
*/
public function process(string $html, RenderContext $context): string
{
return preg_replace_callback('/{{\s*date\((\w+),\s*["\']([^"\']+)["\']\)\s*}}/', function ($matches) use ($context) {
$key = $matches[1];
$format = $matches[2];
if (! isset($context->data[$key]) || ! ($context->data[$key] instanceof \DateTimeInterface)) {
return $matches[0]; // Unverändert lassen
}
return $context->data[$key]->format($format);
}, $html);
}
}