SiteWeaver_CMS/config/bootstrap.php

40 lines
1.5 KiB
PHP

<?php
/**
* File: config/bootstrap.php
*
* Author: Funky Waddle
* Date: 2026-09-10
*
* Purpose:
* Bootstrap configuration and DI container.
*/
declare(strict_types=1);
use SiteWeaver\Core\Container;
use SiteWeaver\Core\Providers\ConfigServiceProvider;
use SiteWeaver\Core\Providers\DatabaseServiceProvider;
use SiteWeaver\Core\Providers\Repositories\PermissionRepositoryServiceProvider;
use SiteWeaver\Core\Providers\Repositories\RoleRepositoryServiceProvider;
use SiteWeaver\Core\Providers\Repositories\UserRepositoryServiceProvider;
use SiteWeaver\Core\Providers\SessionServiceProvider;
use SiteWeaver\Core\Providers\TOTPServiceProvider;
use SiteWeaver\Core\Providers\AuthServiceProvider;
use SiteWeaver\Core\Providers\RouterServiceProvider;
require __DIR__ . '/../vendor/autoload.php';
$container = new Container();
// Register providers in dependency order
$container->addServiceProvider(new ConfigServiceProvider($container));
$container->addServiceProvider(new DatabaseServiceProvider($container));
$container->addServiceProvider(new UserRepositoryServiceProvider($container));
$container->addServiceProvider(new RoleRepositoryServiceProvider($container));
$container->addServiceProvider(new PermissionRepositoryServiceProvider($container));
$container->addServiceProvider(new SessionServiceProvider($container));
$container->addServiceProvider(new TOTPServiceProvider($container));
$container->addServiceProvider(new AuthServiceProvider($container));
$container->addServiceProvider(new RouterServiceProvider($container));
return $container;