services.php

Code Hygiene Score: 98

Keine Issues gefunden.

Dependencies 6

Versionen 93

Code

<?php

declare(strict_types=1);

// @responsibility: Bootstrap DI container using modular ServiceProviders

/**
 * Service Definitions for DI Container.
 *
 * All repositories and services are registered via ServiceProviders
 * to ensure proper separation of concerns by bounded context.
 *
 * @param Framework\Container $container
 */

use Framework\Container;
use Infrastructure\Config\DatabaseFactory;
use ServiceProvider\ChatServiceProvider;
use ServiceProvider\ContentServiceProvider;
use ServiceProvider\InfrastructureServiceProvider;
use ServiceProvider\TaskServiceProvider;

// NOTE: UseCases are NOT explicitly registered here.
// They are resolved via Container::autowire() automatically.
// Only register: Interfaces, Services with special config, Repositories.

return function (Container $container): void {
    // =========================================================================
    // DATABASE CONNECTIONS
    // =========================================================================

    // ki_dev database connection
    $container->set('pdo.dev', fn () => DatabaseFactory::dev());

    // ki_content database connection
    $container->set('pdo.content', fn () => DatabaseFactory::content());

    // =========================================================================
    // SERVICE PROVIDERS - Modular Registration by Bounded Context
    // =========================================================================

    $providers = [
        new ChatServiceProvider(),
        new TaskServiceProvider(),
        new ContentServiceProvider(),
        new InfrastructureServiceProvider(),
    ];

    foreach ($providers as $provider) {
        $provider->register($container);
    }
};
← Übersicht