first commit
This commit is contained in:
45
src/Post/Infrastructure/dependencies.php
Normal file
45
src/Post/Infrastructure/dependencies.php
Normal file
@@ -0,0 +1,45 @@
|
||||
<?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',
|
||||
);
|
||||
}),
|
||||
];
|
||||
Reference in New Issue
Block a user