46 lines
1.9 KiB
PHP
46 lines
1.9 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Post\Application\PostApplicationService;
|
|
use App\Post\Application\PostServiceInterface;
|
|
use App\Post\Application\UseCase\CreatePost;
|
|
use App\Post\Application\UseCase\DeletePost;
|
|
use App\Post\Application\UseCase\UpdatePost;
|
|
use App\Post\Domain\Repository\PostMediaUsageRepositoryInterface;
|
|
use App\Post\Domain\Repository\PostRepositoryInterface;
|
|
use App\Post\Domain\Service\PostMediaReferenceExtractorInterface;
|
|
use App\Post\Domain\Service\PostSlugGenerator;
|
|
use App\Post\Infrastructure\HtmlPostMediaReferenceExtractor;
|
|
use App\Post\Infrastructure\PdoPostMediaUsageRepository;
|
|
use App\Post\Infrastructure\PdoPostRepository;
|
|
use App\Post\Infrastructure\PdoTaxonUsageChecker;
|
|
use App\Post\Infrastructure\PostMediaUsageReader;
|
|
use App\Post\UI\Http\RssController;
|
|
|
|
use function DI\autowire;
|
|
use function DI\factory;
|
|
|
|
use Netig\Netslim\Media\Contracts\MediaUsageReaderInterface;
|
|
use Netig\Netslim\Taxonomy\Contracts\TaxonUsageCheckerInterface;
|
|
|
|
return [
|
|
PostServiceInterface::class => autowire(PostApplicationService::class),
|
|
PostRepositoryInterface::class => autowire(PdoPostRepository::class),
|
|
PostMediaUsageRepositoryInterface::class => autowire(PdoPostMediaUsageRepository::class),
|
|
PostMediaReferenceExtractorInterface::class => autowire(HtmlPostMediaReferenceExtractor::class),
|
|
TaxonUsageCheckerInterface::class => autowire(PdoTaxonUsageChecker::class),
|
|
PostSlugGenerator::class => autowire(),
|
|
CreatePost::class => autowire(),
|
|
UpdatePost::class => autowire(),
|
|
DeletePost::class => autowire(),
|
|
MediaUsageReaderInterface::class => autowire(PostMediaUsageReader::class),
|
|
RssController::class => factory(function (PostServiceInterface $postService): RssController {
|
|
return new RssController(
|
|
$postService,
|
|
rtrim($_ENV['APP_URL'] ?? 'http://localhost', '/'),
|
|
$_ENV['APP_NAME'] ?? 'Netslim Blog',
|
|
);
|
|
}),
|
|
];
|