TaskServiceProvider.php

Code Hygiene Score: 90

Keine Issues gefunden.

Dependencies 10

Klassen 12

Funktionen 1

Verwendet von 1

Code

<?php

declare(strict_types=1);

// @responsibility: Register Task bounded context services in DI container

namespace ServiceProvider;

use Domain\Repository\TaskAssignmentRepositoryInterface;
use Domain\Repository\TaskCommentRepositoryInterface;
use Domain\Repository\TaskRepositoryInterface;
use Domain\Repository\TaskResultRepositoryInterface;
use Framework\Container;
use Infrastructure\Persistence\TaskAssignmentRepository;
use Infrastructure\Persistence\TaskCommentRepository;
use Infrastructure\Persistence\TaskRepository;
use Infrastructure\Persistence\TaskResultRepository;

/**
 * TaskServiceProvider registers all task management services.
 */
final class TaskServiceProvider implements ServiceProviderInterface
{
    public function register(Container $container): void
    {
        // Repositories
        $container->set(TaskRepository::class, fn (Container $c) => new TaskRepository($c->get('pdo.dev')));
        $container->set(TaskAssignmentRepository::class, fn (Container $c) => new TaskAssignmentRepository($c->get('pdo.dev')));
        $container->set(TaskResultRepository::class, fn (Container $c) => new TaskResultRepository($c->get('pdo.dev')));
        $container->set(TaskCommentRepository::class, fn (Container $c) => new TaskCommentRepository($c->get('pdo.dev')));

        // Interface aliases
        $container->set(TaskRepositoryInterface::class, fn (Container $c) => $c->get(TaskRepository::class));
        $container->set(TaskResultRepositoryInterface::class, fn (Container $c) => $c->get(TaskResultRepository::class));
        $container->set(TaskAssignmentRepositoryInterface::class, fn (Container $c) => $c->get(TaskAssignmentRepository::class));
        $container->set(TaskCommentRepositoryInterface::class, fn (Container $c) => $c->get(TaskCommentRepository::class));
    }
}
← Übersicht Graph