load(); } elseif (file_exists($parentEnv . '/.env')) { $dotenv = Dotenv\Dotenv::createImmutable($parentEnv); $dotenv->load(); } use App\Core\Container; use App\Core\App; use App\Services\Database\Connection; use App\Services\Auth\AuthService; use App\Services\Auth\RBAC; use App\Services\Database\ActivityLogger; use App\Services\Crawler\RssParser; use App\Services\Crawler\AiAnalyzer; use App\Services\Crawler\Collector; use App\Middleware\CsrfProtection; use App\Middleware\RateLimit; use App\Middleware\SecurityHeaders; use App\Middleware\Authenticate; $container = new Container(); // Database Core configurations $container->singleton(Connection::class, Connection::class); // Services bindings $container->singleton(AuthService::class, AuthService::class); $container->singleton(RBAC::class, RBAC::class); $container->singleton(ActivityLogger::class, ActivityLogger::class); // Crawler services $container->singleton(RssParser::class, RssParser::class); $container->singleton(AiAnalyzer::class, AiAnalyzer::class); $container->singleton(Collector::class, Collector::class); // Middleware bindings $container->bind(CsrfProtection::class, CsrfProtection::class); $container->bind(RateLimit::class, RateLimit::class); $container->bind(SecurityHeaders::class, SecurityHeaders::class); $container->bind(Authenticate::class, Authenticate::class); // Instantiate App $app = new App($container); return $app;