fix(Discovery): Add comprehensive debug logging for router initialization

- Add initializer count logging in DiscoveryServiceBootstrapper
- Add route structure analysis in RouterSetup
- Add request parameter logging in HttpRouter
- Update PHP production config for better OPcache handling
- Fix various config and error handling improvements
This commit is contained in:
2025-10-27 22:23:18 +01:00
parent e326e3d6c6
commit 70e45fb56e
56 changed files with 1519 additions and 355 deletions

View File

@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace App\Framework\Filesystem;
use App\Framework\Config\Environment;
use App\Framework\DI\Container;
use App\Framework\DI\Initializer;
use App\Framework\Filesystem\Serializers\CsvSerializer;
@@ -23,26 +24,28 @@ final readonly class FilesystemInitializer
public function initializeFilesystem(Container $container): void
{
// Filesystem Config
$container->singleton(FilesystemConfig::class, function () {
$container->singleton(FilesystemConfig::class, function (Container $container) {
$env = $container->get(Environment::class);
return new FilesystemConfig(
defaultStorage: $_ENV['FILESYSTEM_DEFAULT_STORAGE'] ?? 'local',
defaultStorage: $env->getString('FILESYSTEM_DEFAULT_STORAGE', 'local'),
storages: [
'local' => [
'type' => 'file',
'path' => $_ENV['FILESYSTEM_LOCAL_PATH'] ?? '/var/www/html/storage',
'path' => $env->getString('FILESYSTEM_LOCAL_PATH', '/var/www/html/storage'),
],
'temp' => [
'type' => 'file',
'path' => $_ENV['FILESYSTEM_TEMP_PATH'] ?? '/tmp',
'path' => $env->getString('FILESYSTEM_TEMP_PATH', '/tmp'),
],
'analytics' => [
'type' => 'file',
'path' => $_ENV['ANALYTICS_DATA_PATH'] ?? '/var/www/html/storage/analytics',
'path' => $env->getString('ANALYTICS_DATA_PATH', '/var/www/html/storage/analytics'),
],
],
enableCompression: filter_var($_ENV['FILESYSTEM_COMPRESSION'] ?? 'false', FILTER_VALIDATE_BOOLEAN),
enableAtomicWrites: filter_var($_ENV['FILESYSTEM_ATOMIC_WRITES'] ?? 'true', FILTER_VALIDATE_BOOLEAN),
enableFileLocking: filter_var($_ENV['FILESYSTEM_FILE_LOCKING'] ?? 'true', FILTER_VALIDATE_BOOLEAN)
enableCompression: $env->getBool('FILESYSTEM_COMPRESSION', false),
enableAtomicWrites: $env->getBool('FILESYSTEM_ATOMIC_WRITES', true),
enableFileLocking: $env->getBool('FILESYSTEM_FILE_LOCKING', true)
);
});
@@ -72,12 +75,13 @@ final readonly class FilesystemInitializer
});
// FileValidator - Default Validator (always cached for performance)
$container->singleton(FileValidator::class, function () {
$container->singleton(FileValidator::class, function (Container $container) {
$env = $container->get(Environment::class);
$validator = FileValidator::createDefault();
// Always use caching for optimal performance
// Disable only for debugging: FILESYSTEM_DISABLE_CACHE=true
$disableCache = filter_var($_ENV['FILESYSTEM_DISABLE_CACHE'] ?? 'false', FILTER_VALIDATE_BOOLEAN);
$disableCache = $env->getBool('FILESYSTEM_DISABLE_CACHE', false);
if ($disableCache) {
return $validator;
@@ -91,10 +95,11 @@ final readonly class FilesystemInitializer
});
// FileValidator - Upload Validator (always cached)
$container->singleton('filesystem.validator.upload', function () {
$container->singleton('filesystem.validator.upload', function (Container $container) {
$env = $container->get(Environment::class);
$validator = FileValidator::forUploads();
$disableCache = filter_var($_ENV['FILESYSTEM_DISABLE_CACHE'] ?? 'false', FILTER_VALIDATE_BOOLEAN);
$disableCache = $env->getBool('FILESYSTEM_DISABLE_CACHE', false);
if ($disableCache) {
return $validator;
@@ -104,10 +109,11 @@ final readonly class FilesystemInitializer
});
// FileValidator - Image Validator (always cached)
$container->singleton('filesystem.validator.image', function () {
$container->singleton('filesystem.validator.image', function (Container $container) {
$env = $container->get(Environment::class);
$validator = FileValidator::forImages();
$disableCache = filter_var($_ENV['FILESYSTEM_DISABLE_CACHE'] ?? 'false', FILTER_VALIDATE_BOOLEAN);
$disableCache = $env->getBool('FILESYSTEM_DISABLE_CACHE', false);
if ($disableCache) {
return $validator;
@@ -144,7 +150,8 @@ final readonly class FilesystemInitializer
{
// Always enable storage caching for optimal performance
// Disable only for debugging: FILESYSTEM_DISABLE_CACHE=true
$disableCache = filter_var($_ENV['FILESYSTEM_DISABLE_CACHE'] ?? 'false', FILTER_VALIDATE_BOOLEAN);
$env = $container->get(Environment::class);
$disableCache = $env->getBool('FILESYSTEM_DISABLE_CACHE', false);
$enableStorageCache = !$disableCache;
// Default Storage - nutzt PathProvider aus Container