- Add DISCOVERY_LOG_LEVEL=debug - Add DISCOVERY_SHOW_PROGRESS=true - Temporary changes for debugging InitializerProcessor fixes on production
101 lines
2.9 KiB
PHP
101 lines
2.9 KiB
PHP
<?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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|