Этот проект представляет собой набор классов для управления внедрением зависимостей части приложения с чистой архитектурой,
независимо от используемой платформы.
Git: https://git.small-project.dev/lib/small-clean-application
Упаковщик: https://packagist.org/packages/small/clean-application
composer require small/clean-application
Параметры управляются путем их автоматического внедрения в конструктор UseCase.
Вы можете установить параметры через статический объект фасада:
\Small\CleanApplication\Facade::setParameter('test', [ 'host' => 'http://clean.com', 'port' => 80 ]);
Вы также можете получить их через фасад :
echo \Small\CleanApplication\Facade::getParameter('test.host');
Выход :
http://clean.com
Сценарий использования — это материализация класса варианта использования, который реализует Small\CleanApplication\Contract\UseCaseInterface.
Например, вот простой вариант использования, возвращающий строку:
Вы можете использовать его с помощью фасада :
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());Выход :
aВнедрение другого варианта использования в ваш вариант использования
Вы можете добавить другой вариант использования в конструктор вариантов использования:
getBefore() . $this->testUseCase->execute($request)->getStatus() ); } }Свойство testUseCase будет автоматически создано как объект TestUseCase.
Внедрение параметров в вашем случае использования
Вы можете внедрить параметры в свой вариант использования, набрав и назвав свойство в конструкторе варианта использования:
testUseCase_param . $request->getBefore() . $this->testUseCase->execute($request)->getStatus() ); } }Подчеркивание ('_') разделяет ключи массива структуры параметров. Вот пример соответствия с
$testUseCase_param :\Small\CleanApplication\Facade::setParameter('testUseCase', ['param' => 'p']);Интерфейсы
Три интерфейса структурируют ваш код:
Вот наш пример класса запроса TestDependency:
before; } }
И его интерфейс :
А вот реализация ответа:
status; } }И его интерфейс :
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3