Este projeto é um conjunto de classes para gerenciar a injeção de dependência da parte do aplicativo de um aplicativo de arquitetura limpa,
independentemente da estrutura utilizada.
Git: https://git.small-project.dev/lib/small-clean-application
Packagista: https://packagist.org/packages/small/clean-application
composer require small/clean-application
Os parâmetros são gerenciados para injetá-los automaticamente no construtor UseCase.
Você pode definir parâmetros através do objeto estático de fachada:
\Small\CleanApplication\Facade::setParameter('test', [ 'host' => 'http://clean.com', 'port' => 80 ]);
Você também pode obtê-los pela fachada :
echo \Small\CleanApplication\Facade::getParameter('test.host');
Saída :
http://clean.com
Um caso de uso é uma materialização de classe de caso de uso que implementa Small\CleanApplication\Contract\UseCaseInterface.
Por exemplo, aqui está simplesmente um caso de uso que retorna uma string:
Você pode usá-lo usando fachada :
use Small\CleanApplication\Test\Feature\Fixture\UseCase\TestUseCase; use \Small\CleanApplication\Test\Feature\Fixture\UseCase\TestRequest; echo \Small\CleanApplication\Facade::execute(TestUseCase::class, new TestRequest());Saída :
aInjetando outro caso de uso no seu caso de uso
Você pode injetar outro caso de uso no construtor de caso de uso:
getBefore() . $this->testUseCase->execute($request)->getStatus() ); } }A propriedade testUseCase será criada automaticamente como objeto TestUseCase.
Injetando parâmetros em seu caso de uso
Você pode injetar parâmetros em seu caso de uso digitando e nomeando a propriedade em seu construtor de caso de uso:
testUseCase_param . $request->getBefore() . $this->testUseCase->execute($request)->getStatus() ); } }O sublinhado ('_') separa as chaves da matriz da estrutura dos parâmetros. Aqui está um exemplo que corresponde ao
$testUseCase_param :\Small\CleanApplication\Facade::setParameter('testUseCase', ['param' => 'p']);Interfaces
Três interfaces estruturam seu código:
Aqui está nosso exemplo de classe de solicitação TestDependency:
before; } }
E sua interface:
E aqui está a implementação da resposta:
status; } }E sua interface:
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3