Ce projet est un ensemble de classes permettant de gérer l'injection de dépendances d'une partie d'application d'une application à architecture propre,
indépendamment du framework utilisé.
Git : https://git.small-project.dev/lib/small-clean-application
Packagiste : https://packagist.org/packages/small/clean-application
composer require small/clean-application
Les paramètres sont gérés pour les injecter automatiquement dans le constructeur UseCase.
Vous pouvez définir les paramètres via l'objet statique de façade :
\Small\CleanApplication\Facade::setParameter('test', [ 'host' => 'http://clean.com', 'port' => 80 ]);
Vous pouvez également les faire passer par la façade :
echo \Small\CleanApplication\Facade::getParameter('test.host');
Sortir :
http://clean.com
Un cas d'utilisation est une matérialisation de classe d'un cas d'utilisation qui implémente Small\CleanApplication\Contract\UseCaseInterface.
Par exemple, voici simplement un cas d'utilisation qui renvoie une chaîne :
Vous pouvez l'utiliser en utilisant la façade :
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());Sortir :
aInjecter un autre cas d'utilisation dans votre cas d'utilisation
Vous pouvez injecter un autre cas d'utilisation dans le constructeur de cas d'utilisation :
getBefore() . $this->testUseCase->execute($request)->getStatus() ); } }La propriété testUseCase sera automatiquement créée en tant qu'objet TestUseCase.
Injection de paramètres dans votre cas d'utilisation
Vous pouvez injecter des paramètres dans votre cas d'utilisation en tapant et en nommant la propriété dans le constructeur de votre cas d'utilisation :
testUseCase_param . $request->getBefore() . $this->testUseCase->execute($request)->getStatus() ); } }Le trait de soulignement (« _ ») sépare les clés du tableau de la structure des paramètres. Voici un exemple correspondant au
$testUseCase_param :\Small\CleanApplication\Facade::setParameter('testUseCase', ['param' => 'p']);Interfaces
Trois interfaces structurent votre code :
Voici notre exemple de classe de requête TestDependency :
before; } }
Et son interface :
Et voici l'implémentation de la réponse :
status; } }Et son interface :
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3