Actions
#
Definition & PrinciplesRead Porto SAP Documentation (#Actions).
#
Rules- All Actions MUST extend
App\Ship\Parents\Actions\Action
.
#
Folder Structure - app - Containers - {section-name} - {container-name} - Actions - CreateUserAction.php - DeleteUserAction.php - ...
#
Code Sample#
Actionclass CreateAdminAction extends Action{ public function run(string $email, string $password, string $name, bool $isClient = false): User { $admin = app(CreateUserByCredentialsTask::class)->run( $isClient, $email, $password, $name );
app(AssignUserToRoleTask::class)->run($admin, ['admin']);
return $admin; }}
#
Calling multiple Tasksclass DemoAction extends Action{ public function run($xxx, $yyy, $zzz) { $foo = app(Sample111Task::class)->run($xxx, $yyy); $bar = app(Sample222Task::class)->run($zzz); }}
#
Usage from a Controller public function deleteUser(DeleteUserRequest $request) { $user = app(DeleteUserAction::class)->run($request); return $this->deleted($user); }
tip
The same Action MAY be called by multiple Controllers (Web, Api, Cli).