Dieses Projekt ist eine Reihe von Klassen zur Verwaltung der Abhängigkeitsinjektion des Anwendungsteils einer App mit sauberer Architektur,
unabhängig vom verwendeten Framework.
Git: https://git.small-project.dev/lib/small-clean-application
Paketist: https://packagist.org/packages/small/clean-application
composer require small/clean-application
Parameter werden verwaltet, um sie automatisch in den UseCase-Konstruktor einzufügen.
Sie können Parameter über das statische Fassadenobjekt festlegen:
\Small\CleanApplication\Facade::setParameter('test', [ 'host' => 'http://clean.com', 'port' => 80 ]);
Sie können sie auch durch die Fassade bekommen:
echo \Small\CleanApplication\Facade::getParameter('test.host');
Ausgabe :
http://clean.com
Ein Anwendungsfall ist eine Klassenmaterialisierung eines Anwendungsfalls, der Small\CleanApplication\Contract\UseCaseInterface implementiert.
Hier ist zum Beispiel ein einfacher Anwendungsfall, der eine Zeichenfolge zurückgibt:
Sie können es mit der Fassade verwenden:
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());Ausgabe :
aFügen Sie einen weiteren Anwendungsfall in Ihren Anwendungsfall ein
Sie können einen weiteren Anwendungsfall in den Anwendungsfallkonstruktor einfügen:
getBefore() . $this->testUseCase->execute($request)->getStatus() ); } }Die Eigenschaft testUseCase wird automatisch als TestUseCase-Objekt erstellt.
Einfügen von Parametern in Ihren Anwendungsfall
Sie können Parameter in Ihren Anwendungsfall einfügen, indem Sie Eigenschaften in Ihren Anwendungsfallkonstruktor eingeben und benennen:
testUseCase_param . $request->getBefore() . $this->testUseCase->execute($request)->getStatus() ); } }Der Unterstrich ('_') trennt Array-Schlüssel der Parameterstruktur. Hier ist ein Beispiel, das mit dem
übereinstimmt $testUseCase_param :\Small\CleanApplication\Facade::setParameter('testUseCase', ['param' => 'p']);Schnittstellen
Drei Schnittstellen strukturieren Ihren Code:
Hier ist unsere Beispielanforderungsklasse für TestDependency:
before; } }
Und seine Schnittstelle:
Und hier ist die Antwortimplementierung:
status; } }Und seine Schnittstelle:
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3