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:
100
src/preload.php
Normal file
100
src/preload.php
Normal file
@@ -0,0 +1,100 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
// OPcache Preload für Performance-Optimierung
|
||||
|
||||
// Autoloader einbinden
|
||||
require_once __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
// Framework Core-Klassen preloaden (am häufigsten verwendet)
|
||||
$coreClasses = [
|
||||
// Application Core
|
||||
'App\Framework\Core\Application',
|
||||
'App\Framework\Core\AppBootstrapper',
|
||||
'App\Framework\Core\ContainerBootstrapper',
|
||||
|
||||
// DI Container
|
||||
'App\Framework\DI\DefaultContainer',
|
||||
|
||||
// HTTP & Routing
|
||||
'App\Framework\Http\HttpMiddleware',
|
||||
'App\Framework\Http\HttpMiddlewareChain',
|
||||
'App\Framework\Http\MiddlewareManager',
|
||||
'App\Framework\Router\HttpRouter',
|
||||
'App\Framework\Router\CompiledRoutes',
|
||||
'App\Framework\Router\RouteContext',
|
||||
|
||||
// Core Middlewares
|
||||
'App\Framework\Http\Middlewares\RoutingMiddleware',
|
||||
'App\Framework\Http\Middlewares\ExceptionHandlingMiddleware',
|
||||
'App\Framework\Http\Middlewares\RequestIdMiddleware',
|
||||
'App\Framework\Http\Middlewares\SecurityHeaderMiddleware',
|
||||
|
||||
// Results
|
||||
'App\Framework\Router\Result\JsonResult',
|
||||
'App\Framework\Router\Result\ViewResult',
|
||||
'App\Framework\Router\Result\RedirectResult',
|
||||
|
||||
// View System
|
||||
'App\Framework\View\Engine',
|
||||
'App\Framework\View\ComponentRenderer',
|
||||
'App\Framework\View\Loading\TemplateLoader',
|
||||
|
||||
// Cache System
|
||||
'App\Framework\Cache\GeneralCache',
|
||||
'App\Framework\Cache\Driver\RedisCache',
|
||||
'App\Framework\Cache\Driver\InMemoryCache',
|
||||
|
||||
// Performance
|
||||
'App\Framework\Performance\PerformanceCollector',
|
||||
'App\Framework\Performance\PerformanceService',
|
||||
|
||||
// Config
|
||||
'App\Framework\Config\AppConfig',
|
||||
|
||||
// Logging
|
||||
'App\Framework\Logging\Logger',
|
||||
];
|
||||
|
||||
// Preload nur wenn OPcache aktiv ist
|
||||
if (function_exists('opcache_compile_file')) {
|
||||
foreach ($coreClasses as $className) {
|
||||
try {
|
||||
// Skip empty class names
|
||||
if (empty($className)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (class_exists($className, false)) {
|
||||
continue; // Bereits geladen
|
||||
}
|
||||
|
||||
// Klasse über Autoloader laden
|
||||
class_exists($className);
|
||||
|
||||
} catch (Throwable $e) {
|
||||
// Fehler beim Preloading ignorieren (Klasse existiert möglicherweise nicht)
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
// Zusätzlich: Alle PHP-Dateien im Framework-Verzeichnis preloaden
|
||||
$frameworkDir = __DIR__ . '/Framework';
|
||||
if (is_dir($frameworkDir)) {
|
||||
$iterator = new RecursiveIteratorIterator(
|
||||
new RecursiveDirectoryIterator($frameworkDir, RecursiveDirectoryIterator::SKIP_DOTS)
|
||||
);
|
||||
|
||||
foreach ($iterator as $file) {
|
||||
if ($file->getExtension() === 'php' && $file->isFile()) {
|
||||
try {
|
||||
opcache_compile_file($file->getPathname());
|
||||
} catch (Throwable $e) {
|
||||
// Fehler beim Kompilieren ignorieren
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user