- Add DISCOVERY_LOG_LEVEL=debug - Add DISCOVERY_SHOW_PROGRESS=true - Temporary changes for debugging InitializerProcessor fixes on production
31 lines
904 B
PHP
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);
|
|
}
|
|
}
|