diff --git a/src/Application/Arcadia/Usecase/Employees/Find/FindEmployee.php b/src/Application/Arcadia/Usecase/Employees/Find/FindEmployee.php index a60cfbe..8fae2b0 100644 --- a/src/Application/Arcadia/Usecase/Employees/Find/FindEmployee.php +++ b/src/Application/Arcadia/Usecase/Employees/Find/FindEmployee.php @@ -10,7 +10,7 @@ use Shared\DDD\Usecase\Input as BaseInput; use Shared\DDD\Usecase\Usecase; use Webmozart\Assert\Assert; -/** @implements Usecase<\Shared\DDD\Usecase\Input, \Shared\DDD\Usecase\Output> */ +/** @implements Usecase<\Application\Arcadia\Usecase\Employees\Find\Input, \Application\Arcadia\Usecase\Employees\Find\Output> */ final readonly class FindEmployee implements Usecase { public function __construct( diff --git a/src/Application/Arcadia/Usecase/Employees/FindAll/FindAllEmployees.php b/src/Application/Arcadia/Usecase/Employees/FindAll/FindAllEmployees.php index 8db3e0b..ef43e52 100644 --- a/src/Application/Arcadia/Usecase/Employees/FindAll/FindAllEmployees.php +++ b/src/Application/Arcadia/Usecase/Employees/FindAll/FindAllEmployees.php @@ -11,7 +11,7 @@ use Shared\DDD\Usecase\Usecase; use Shared\Paginated; use Webmozart\Assert\Assert; -/** @implements Usecase<\Shared\DDD\Usecase\Input, \Shared\DDD\Usecase\Output> */ +/** @implements Usecase<\Application\Arcadia\Usecase\Employees\FindAll\Input, \Application\Arcadia\Usecase\Employees\FindAll\Output> */ final readonly class FindAllEmployees implements Usecase { public function __construct( diff --git a/src/Application/Arcadia/Usecase/IncoCompositions/Find/FindIncoComposition.php b/src/Application/Arcadia/Usecase/IncoCompositions/Find/FindIncoComposition.php index 0a15f16..01f219a 100644 --- a/src/Application/Arcadia/Usecase/IncoCompositions/Find/FindIncoComposition.php +++ b/src/Application/Arcadia/Usecase/IncoCompositions/Find/FindIncoComposition.php @@ -10,7 +10,7 @@ use Shared\DDD\Usecase\Input as BaseInput; use Shared\DDD\Usecase\Usecase; use Webmozart\Assert\Assert; -/** @implements Usecase<\Shared\DDD\Usecase\Input, \Shared\DDD\Usecase\Output> */ +/** @implements Usecase<\Application\Arcadia\Usecase\IncoCompositions\Find\Input, \Application\Arcadia\Usecase\IncoCompositions\Find\Output> */ final readonly class FindIncoComposition implements Usecase { public function __construct( diff --git a/src/Application/Arcadia/Usecase/IncoSheets/Find/FindIncoSheet.php b/src/Application/Arcadia/Usecase/IncoSheets/Find/FindIncoSheet.php index 78f2f0a..4d4db47 100644 --- a/src/Application/Arcadia/Usecase/IncoSheets/Find/FindIncoSheet.php +++ b/src/Application/Arcadia/Usecase/IncoSheets/Find/FindIncoSheet.php @@ -10,7 +10,7 @@ use Shared\DDD\Usecase\Input as BaseInput; use Shared\DDD\Usecase\Usecase; use Webmozart\Assert\Assert; -/** @implements Usecase<\Shared\DDD\Usecase\Input, \Shared\DDD\Usecase\Output> */ +/** @implements Usecase<\Application\Arcadia\Usecase\IncoSheets\Find\Input, \Application\Arcadia\Usecase\IncoSheets\Find\Output> */ final readonly class FindIncoSheet implements Usecase { public function __construct( diff --git a/src/Application/Arcadia/Usecase/IncoSheets/FindAll/FindAllIncoSheets.php b/src/Application/Arcadia/Usecase/IncoSheets/FindAll/FindAllIncoSheets.php index d08309e..c9a8231 100644 --- a/src/Application/Arcadia/Usecase/IncoSheets/FindAll/FindAllIncoSheets.php +++ b/src/Application/Arcadia/Usecase/IncoSheets/FindAll/FindAllIncoSheets.php @@ -13,7 +13,7 @@ use Shared\DDD\Usecase\Usecase; use Shared\Paginated; use Webmozart\Assert\Assert; -/** @implements Usecase<\Shared\DDD\Usecase\Input, \Shared\DDD\Usecase\Output> */ +/** @implements Usecase<\Application\Arcadia\Usecase\IncoSheets\FindAll\Input, \Application\Arcadia\Usecase\IncoSheets\FindAll\Output> */ final readonly class FindAllIncoSheets implements Usecase { public function __construct( diff --git a/src/Application/Arcadia/Usecase/IncoSheets/Search/SearchIncoSheets.php b/src/Application/Arcadia/Usecase/IncoSheets/Search/SearchIncoSheets.php index f703703..9795aa3 100644 --- a/src/Application/Arcadia/Usecase/IncoSheets/Search/SearchIncoSheets.php +++ b/src/Application/Arcadia/Usecase/IncoSheets/Search/SearchIncoSheets.php @@ -14,7 +14,7 @@ use Shared\Paginated; use Shared\Pagination; use Webmozart\Assert\Assert; -/** @implements Usecase<\Shared\DDD\Usecase\Input, \Shared\DDD\Usecase\Output> */ +/** @implements Usecase<\Application\Arcadia\Usecase\IncoSheets\Search\Input, \Application\Arcadia\Usecase\IncoSheets\Search\Output> */ final readonly class SearchIncoSheets implements Usecase { public function __construct( diff --git a/src/Presentation/Api/V1/Http/Controllers/Employees/EmployeeShowController.php b/src/Presentation/Api/V1/Http/Controllers/Employees/EmployeeShowController.php index af6e41b..175015b 100644 --- a/src/Presentation/Api/V1/Http/Controllers/Employees/EmployeeShowController.php +++ b/src/Presentation/Api/V1/Http/Controllers/Employees/EmployeeShowController.php @@ -15,7 +15,6 @@ use Shared\DDD\Usecase\Builder\UsecaseExecutor; final readonly class EmployeeShowController { - /** @param UsecaseExecutor<\Shared\DDD\Usecase\Input, \Shared\DDD\Usecase\Output> $executor */ public function __construct( private FindEmployee $usecase, private UsecaseExecutor $executor, diff --git a/src/Presentation/Api/V1/Http/Controllers/Employees/EmployeesIndexController.php b/src/Presentation/Api/V1/Http/Controllers/Employees/EmployeesIndexController.php index bff70c3..fea2a87 100644 --- a/src/Presentation/Api/V1/Http/Controllers/Employees/EmployeesIndexController.php +++ b/src/Presentation/Api/V1/Http/Controllers/Employees/EmployeesIndexController.php @@ -15,7 +15,6 @@ use Shared\DDD\Usecase\Builder\UsecaseExecutor; final readonly class EmployeesIndexController { - /** @param UsecaseExecutor<\Shared\DDD\Usecase\Input, \Shared\DDD\Usecase\Output> $executor */ public function __construct( private FindAllEmployees $usecase, private UsecaseExecutor $executor, diff --git a/src/Presentation/Api/V1/Http/Controllers/IncoCompositions/IncoCompositionShowController.php b/src/Presentation/Api/V1/Http/Controllers/IncoCompositions/IncoCompositionShowController.php index f8670e3..af12868 100644 --- a/src/Presentation/Api/V1/Http/Controllers/IncoCompositions/IncoCompositionShowController.php +++ b/src/Presentation/Api/V1/Http/Controllers/IncoCompositions/IncoCompositionShowController.php @@ -15,7 +15,6 @@ use Shared\DDD\Usecase\Builder\UsecaseExecutor; final readonly class IncoCompositionShowController { - /** @param \Shared\DDD\Usecase\Builder\UsecaseExecutor<\Shared\DDD\Usecase\Input, \Shared\DDD\Usecase\Output> $executor */ public function __construct( private FindIncoComposition $usecase, private UsecaseExecutor $executor, diff --git a/src/Presentation/Api/V1/Http/Controllers/IncoSheets/IncoSheetsIndexController.php b/src/Presentation/Api/V1/Http/Controllers/IncoSheets/IncoSheetsIndexController.php index e722689..6f38fca 100644 --- a/src/Presentation/Api/V1/Http/Controllers/IncoSheets/IncoSheetsIndexController.php +++ b/src/Presentation/Api/V1/Http/Controllers/IncoSheets/IncoSheetsIndexController.php @@ -15,7 +15,6 @@ use Shared\DDD\Usecase\Builder\UsecaseExecutor; final readonly class IncoSheetsIndexController { - /** @param UsecaseExecutor<\Shared\DDD\Usecase\Input, \Shared\DDD\Usecase\Output> $executor */ public function __construct( private FindAllIncoSheets $usecase, private UsecaseExecutor $executor, diff --git a/src/Presentation/Api/V1/Http/Controllers/IncoSheets/IncoSheetsSearchController.php b/src/Presentation/Api/V1/Http/Controllers/IncoSheets/IncoSheetsSearchController.php index 6108c0c..7c5f5e6 100644 --- a/src/Presentation/Api/V1/Http/Controllers/IncoSheets/IncoSheetsSearchController.php +++ b/src/Presentation/Api/V1/Http/Controllers/IncoSheets/IncoSheetsSearchController.php @@ -15,7 +15,6 @@ use Shared\DDD\Usecase\Builder\UsecaseExecutor; final readonly class IncoSheetsSearchController { - /** @param UsecaseExecutor<\Shared\DDD\Usecase\Input, \Shared\DDD\Usecase\Output> $executor */ public function __construct( private SearchIncoSheets $usecase, private UsecaseExecutor $executor, diff --git a/src/Presentation/Api/V1/Http/Controllers/IncoSheets/IncoSheetsShowController.php b/src/Presentation/Api/V1/Http/Controllers/IncoSheets/IncoSheetsShowController.php index 4a664ed..0c9f72f 100644 --- a/src/Presentation/Api/V1/Http/Controllers/IncoSheets/IncoSheetsShowController.php +++ b/src/Presentation/Api/V1/Http/Controllers/IncoSheets/IncoSheetsShowController.php @@ -15,7 +15,6 @@ use Shared\DDD\Usecase\Builder\UsecaseExecutor; final readonly class IncoSheetsShowController { - /** @param UsecaseExecutor<\Shared\DDD\Usecase\Input, \Shared\DDD\Usecase\Output> $executor */ public function __construct( private FindIncoSheet $usecase, private UsecaseExecutor $executor, diff --git a/src/Presentation/Api/V1/Presenters/Employees/EmployeeShowPresenter.php b/src/Presentation/Api/V1/Presenters/Employees/EmployeeShowPresenter.php index 31d90b6..95d86f8 100644 --- a/src/Presentation/Api/V1/Presenters/Employees/EmployeeShowPresenter.php +++ b/src/Presentation/Api/V1/Presenters/Employees/EmployeeShowPresenter.php @@ -9,7 +9,7 @@ use Shared\DDD\Usecase\Output as UsecaseOutput; use Shared\DDD\Usecase\Presenter; use Webmozart\Assert\Assert; -/** @implements Presenter<\Shared\DDD\Usecase\Output, EmployeeShowView> */ +/** @implements Presenter */ final readonly class EmployeeShowPresenter implements Presenter { #[\Override] diff --git a/src/Presentation/Api/V1/Presenters/Employees/EmployeesIndexPresenter.php b/src/Presentation/Api/V1/Presenters/Employees/EmployeesIndexPresenter.php index b1f997d..e052118 100644 --- a/src/Presentation/Api/V1/Presenters/Employees/EmployeesIndexPresenter.php +++ b/src/Presentation/Api/V1/Presenters/Employees/EmployeesIndexPresenter.php @@ -9,7 +9,7 @@ use Shared\DDD\Usecase\Output as UsecaseOutput; use Shared\DDD\Usecase\Presenter; use Webmozart\Assert\Assert; -/** @implements Presenter<\Shared\DDD\Usecase\Output, EmployeesIndexView> */ +/** @implements Presenter */ final readonly class EmployeesIndexPresenter implements Presenter { #[\Override] diff --git a/src/Presentation/Api/V1/Presenters/IncoCompositions/IncoCompositionShowPresenter.php b/src/Presentation/Api/V1/Presenters/IncoCompositions/IncoCompositionShowPresenter.php index 53aad0f..645c55a 100644 --- a/src/Presentation/Api/V1/Presenters/IncoCompositions/IncoCompositionShowPresenter.php +++ b/src/Presentation/Api/V1/Presenters/IncoCompositions/IncoCompositionShowPresenter.php @@ -9,7 +9,7 @@ use Shared\DDD\Usecase\Output as UsecaseOutput; use Shared\DDD\Usecase\Presenter; use Webmozart\Assert\Assert; -/** @implements Presenter<\Shared\DDD\Usecase\Output, IncoCompositionShowView> */ +/** @implements Presenter */ final readonly class IncoCompositionShowPresenter implements Presenter { #[\Override] diff --git a/src/Presentation/Api/V1/Presenters/IncoSheets/IncoSheetsIndexPresenter.php b/src/Presentation/Api/V1/Presenters/IncoSheets/IncoSheetsIndexPresenter.php index ce13355..3437ec9 100644 --- a/src/Presentation/Api/V1/Presenters/IncoSheets/IncoSheetsIndexPresenter.php +++ b/src/Presentation/Api/V1/Presenters/IncoSheets/IncoSheetsIndexPresenter.php @@ -9,7 +9,7 @@ use Shared\DDD\Usecase\Output as UsecaseOutput; use Shared\DDD\Usecase\Presenter; use Webmozart\Assert\Assert; -/** @implements Presenter<\Shared\DDD\Usecase\Output, IncoSheetsIndexView> */ +/** @implements Presenter */ final readonly class IncoSheetsIndexPresenter implements Presenter { #[\Override] diff --git a/src/Presentation/Api/V1/Presenters/IncoSheets/IncoSheetsSearchPresenter.php b/src/Presentation/Api/V1/Presenters/IncoSheets/IncoSheetsSearchPresenter.php index b2b58ad..4937e65 100644 --- a/src/Presentation/Api/V1/Presenters/IncoSheets/IncoSheetsSearchPresenter.php +++ b/src/Presentation/Api/V1/Presenters/IncoSheets/IncoSheetsSearchPresenter.php @@ -9,7 +9,7 @@ use Shared\DDD\Usecase\Output as UsecaseOutput; use Shared\DDD\Usecase\Presenter; use Webmozart\Assert\Assert; -/** @implements Presenter<\Shared\DDD\Usecase\Output, IncoSheetsSearchView> */ +/** @implements Presenter */ final readonly class IncoSheetsSearchPresenter implements Presenter { #[\Override] diff --git a/src/Presentation/Api/V1/Presenters/IncoSheets/IncoSheetsShowPresenter.php b/src/Presentation/Api/V1/Presenters/IncoSheets/IncoSheetsShowPresenter.php index e120888..baa0caf 100644 --- a/src/Presentation/Api/V1/Presenters/IncoSheets/IncoSheetsShowPresenter.php +++ b/src/Presentation/Api/V1/Presenters/IncoSheets/IncoSheetsShowPresenter.php @@ -9,7 +9,7 @@ use Shared\DDD\Usecase\Output as UsecaseOutput; use Shared\DDD\Usecase\Presenter; use Webmozart\Assert\Assert; -/** @implements Presenter<\Shared\DDD\Usecase\Output, IncoSheetsShowView> */ +/** @implements Presenter */ final readonly class IncoSheetsShowPresenter implements Presenter { #[\Override] diff --git a/src/Shared/DDD/Usecase/Builder/BuilderStepUsecase.php b/src/Shared/DDD/Usecase/Builder/BuilderStepUsecase.php index 3aa7a60..b11309b 100644 --- a/src/Shared/DDD/Usecase/Builder/BuilderStepUsecase.php +++ b/src/Shared/DDD/Usecase/Builder/BuilderStepUsecase.php @@ -6,13 +6,12 @@ namespace Shared\DDD\Usecase\Builder; use Shared\DDD\Usecase\Usecase; -/** - * @template TInput of \Shared\DDD\Usecase\Input - * @template TOutput of \Shared\DDD\Usecase\Output - */ interface BuilderStepUsecase { /** + * @template TInput of \Shared\DDD\Usecase\Input + * @template TOutput of \Shared\DDD\Usecase\Output + * * @param Usecase $usecase * @return BuilderStepInput */ diff --git a/src/Shared/DDD/Usecase/Builder/UsecaseBuilder.php b/src/Shared/DDD/Usecase/Builder/UsecaseBuilder.php index e2d28ef..1e17ceb 100644 --- a/src/Shared/DDD/Usecase/Builder/UsecaseBuilder.php +++ b/src/Shared/DDD/Usecase/Builder/UsecaseBuilder.php @@ -6,13 +6,6 @@ namespace Shared\DDD\Usecase\Builder; final class UsecaseBuilder { - /** - * @template TInput of \Shared\DDD\Usecase\Input - * @template TOutput of \Shared\DDD\Usecase\Output - * - * @param UsecaseExecutor $executor - * @return BuilderStepUsecase - */ public static function using(UsecaseExecutor $executor): BuilderStepUsecase { return new UsecaseExecutionBuilder($executor); diff --git a/src/Shared/DDD/Usecase/Builder/UsecaseExecutionBuilder.php b/src/Shared/DDD/Usecase/Builder/UsecaseExecutionBuilder.php index 6a3bfbf..148dd59 100644 --- a/src/Shared/DDD/Usecase/Builder/UsecaseExecutionBuilder.php +++ b/src/Shared/DDD/Usecase/Builder/UsecaseExecutionBuilder.php @@ -10,35 +10,39 @@ use Shared\DDD\Usecase\Presenter; use Shared\DDD\Usecase\Usecase; /** - * @template TInput of \Shared\DDD\Usecase\Input * @template TOutput of \Shared\DDD\Usecase\Output * @template TView of object * * @implements BuilderStepInput * @implements BuilderStepPresenter - * @implements BuilderStepUsecase * @implements BuilderStepBuild */ final class UsecaseExecutionBuilder implements BuilderStepBuild, BuilderStepInput, BuilderStepPresenter, BuilderStepUsecase { - /** @param UsecaseExecutor $executor */ public function __construct( private readonly UsecaseExecutor $executor, ) { } - /** @var Usecase|null */ + /** @var Usecase|null */ private ?Usecase $usecase = null; private ?Input $input = null; - /** @var Presenter|null */ + /** @var Presenter<\Shared\DDD\Usecase\Output, object>|null */ private ?Presenter $presenter = null; - /** @param Usecase $usecase */ + /** + * @template TIn of \Shared\DDD\Usecase\Input + * @template TOut of \Shared\DDD\Usecase\Output + * + * @param Usecase $usecase + * @return BuilderStepInput + */ #[\Override] public function do(Usecase $usecase): BuilderStepInput { + /** @var Usecase $usecase */ $this->usecase = $usecase; return $this; @@ -66,11 +70,10 @@ final class UsecaseExecutionBuilder implements BuilderStepBuild, BuilderStepInpu public function with(Presenter $presenter): BuilderStepBuild { if ($this->usecase === null || $this->input === null) { - throw new LogicException( - 'Usecase and input must be set before presenter.' - ); + throw new LogicException('Usecase and input must be set before presenter.'); } + /** @var Presenter<\Shared\DDD\Usecase\Output, object> $presenter */ $this->presenter = $presenter; return $this; @@ -85,10 +88,6 @@ final class UsecaseExecutionBuilder implements BuilderStepBuild, BuilderStepInpu } /** @var TView */ - return $this->executor->execute( - usecase: $this->usecase, - input: $this->input, - presenter: $this->presenter - ); + return $this->executor->execute($this->usecase, $this->input, $this->presenter); } } diff --git a/src/Shared/DDD/Usecase/Builder/UsecaseExecutor.php b/src/Shared/DDD/Usecase/Builder/UsecaseExecutor.php index 2e5b246..1cea133 100644 --- a/src/Shared/DDD/Usecase/Builder/UsecaseExecutor.php +++ b/src/Shared/DDD/Usecase/Builder/UsecaseExecutor.php @@ -8,16 +8,15 @@ use Shared\DDD\Usecase\Input; use Shared\DDD\Usecase\Presenter; use Shared\DDD\Usecase\Usecase; -/** - * @template TInput of Input - * @template TOutput of \Shared\DDD\Usecase\Output - */ interface UsecaseExecutor { /** + * @template TInput of Input + * @template TOutput of \Shared\DDD\Usecase\Output * @template TView of object * * @param Usecase $usecase + * @param TInput $input * @param Presenter $presenter * @return TView */