Tasks
#
Definition & PrinciplesRead Porto SAP Documentation (#Tasks).
#
Rules- All Tasks MUST extend from
App\Ship\Parents\Tasks\Task
.
#
Folder Structure - app - Containers - {section-name} - {container-name} - Tasks - ConfirmUserEmailTask.php - GenerateEmailConfirmationUrlTask.php - SendConfirmationEmailTask.php - ValidateConfirmationCodeTask.php - SetUserEmailTask.php - ...
#
Code Sample#
Taskclass FindUserByIdTask extends Task{ private $userRepository;
public function __construct(UserRepository $userRepository) { $this->userRepository = $userRepository; }
public function run($id) { try { $user = $this->userRepository->find($id); } catch (Exception $e) { throw new UserNotFoundException(); }
return $user; }}
#
Task usage from an Actionclass ValidateUserEmailByConfirmationCodeAction extends Action{ public function run($userId, $code) { app(ValidateConfirmationCodeTask::class)->run($userId, $code); $user = app(FindUserByIdTask::class)->run($userId); app(ConfirmUserEmailTask::class)->run($user); }}