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
This commit is contained in:
2025-08-11 20:13:26 +02:00
parent 59fd3dd3b1
commit 55a330b223
3683 changed files with 2956207 additions and 16948 deletions

View File

@@ -1,41 +1,40 @@
<?php
declare(strict_types=1);
namespace App\Framework\View;
use App\Framework\Cache\Cache;
use App\Framework\Core\PathProvider;
use App\Framework\DI\DefaultContainer;
use App\Framework\DI\Initializer;
use App\Framework\Discovery\FileScanner;
use App\Framework\Discovery\Results\DiscoveryResults;
use App\Framework\View\Loading\Resolvers\ControllerResolver;
use App\Framework\View\Loading\Resolvers\DefaultPathResolver;
use App\Framework\View\Loading\Resolvers\DiscoveryResolver;
use App\Framework\View\Loading\Resolvers\TemplateMapResolver;
use App\Framework\Discovery\Results\DiscoveryRegistry;
use App\Framework\Performance\PerformanceService;
use App\Framework\Template\Processing\DomProcessor;
use App\Framework\Template\Processing\StringProcessor;
use App\Framework\View\Loading\TemplateLoader;
use App\Framework\View\Loading\TemplatePathResolver;
use App\Framework\View\Processors\AssetInjector;
use App\Framework\View\Processors\CommentStripProcessor;
use App\Framework\View\Processors\ComponentProcessor;
use App\Framework\View\Processors\CsrfReplaceProcessor;
use App\Framework\View\Processors\FormProcessor;
use App\Framework\View\Processors\ForProcessor;
use App\Framework\View\Processors\HoneypotProcessor;
use App\Framework\View\Processors\IfProcessor;
use App\Framework\View\Processors\LayoutTagProcessor;
use App\Framework\View\Processors\MetaManipulator;
use App\Framework\View\Processors\PlaceholderReplacer;
use App\Framework\View\Processors\RemoveEmptyLinesProcessor;
use App\Framework\View\Processors\SingleLineHtmlProcessor;
use App\Framework\View\Processors\VoidElementsSelfClosingProcessor;
final readonly class TemplateRendererInitializer
{
public function __construct(
private DefaultContainer $container,
private FileScanner $scanner,
private PathProvider $pathProvider,
private DiscoveryResults $results,
) {}
#private FileScanner $scanner,
#private PathProvider $pathProvider,
private DiscoveryRegistry $results,
) {
}
#[Initializer]
public function __invoke(): TemplateRenderer
@@ -44,6 +43,7 @@ final readonly class TemplateRendererInitializer
ComponentProcessor::class,
LayoutTagProcessor::class,
MetaManipulator::class,
IfProcessor::class,
ForProcessor::class,
AssetInjector::class,
CommentStripProcessor::class,
@@ -54,14 +54,24 @@ final readonly class TemplateRendererInitializer
$strings = [
PlaceholderReplacer::class,
SingleLineHtmlProcessor::class,
#SingleLineHtmlProcessor::class,
VoidElementsSelfClosingProcessor::class,
CsrfReplaceProcessor::class,
# CsrfReplaceProcessor::class, // DEACTIVATED - FormDataResponseMiddleware handles form processing
];
$domImplementations = [];
foreach ($this->results->interfaces->get(DomProcessor::class) as $className) {
$domImplementations[] = $className->getFullyQualified();
}
$stringImplementations = [];
foreach ($this->results->interfaces->get(StringProcessor::class) as $className) {
$stringImplementations[] = $className->getFullyQualified();
}
$templateProcessor = new TemplateProcessor(
[ComponentProcessor::class, ...$this->results->getInterfaceImplementations(DomProcessor::class)],
$this->results->getInterfaceImplementations(StringProcessor::class),
[ComponentProcessor::class, ...$domImplementations],
$stringImplementations,
$this->container,
);
@@ -69,25 +79,18 @@ final readonly class TemplateRendererInitializer
$this->container->singleton(TemplateProcessor::class, $templateProcessor);
#ViewCacheBootstrap::quickEnable($this->container);
/*$files = $this->scanner->findFiles($this->pathProvider->getSourcePath(), '*.view.php');
$templates = [];
foreach ($files as $file) {
$templates[$file->getFilename()] = $file->getPathname();
}*/
$pathProvider = $this->container->get(PathProvider::class);
$cache = $this->container->get(Cache::class);
$performanceService = $this->container->get(PerformanceService::class);
$loader = new TemplateLoader(pathProvider: $pathProvider, cache: $cache, discoveryResults: $this->results/*, templates: $templates*/);
$loader = new TemplateLoader(pathProvider: $pathProvider, cache: $cache, discoveryRegistry: $this->results/*, templates: $templates*/);
$this->container->singleton(TemplateLoader::class, $loader);
return new Engine(
$loader,
$pathProvider,
$performanceService,
processor: $templateProcessor,
container: $this->container,
cache: $cache,