class TestDataHandler extends AbstractHandler {
/** @var RepositoryManagerInterface */
protected $repositoryManager;
/** @var SessionManagerInterface */
protected $sessionManager;
/** @var SessionDataModifyInterface */
protected $sessionDataModify;
public function __construct (
RepositoryManagerInterface $repository,
SessionManagerInterface $sessionManager,
SessionDataModifyInterface $sessionDataModify
)
{
$this->repositoryManager = $repository
$this->sessionManager = $sessionManager;
$this->sessionDataModify = $sessionDataModify;
}
public function handle($command)
{
// берет то что в сессии, что то с этими данными делает
$users = $this->sessionDataModify->sort(
$this->sessionManage->getUsers()
);
// отом это дело идет в базу и оттуда берутся данные
$repository = $this->repositoryManager->getRepository(Users::class);
// метод в объекте репозитория, польчаем пользователей
if (!$usersList = $repository->findUsers($users)) {
// исключение
}
// записывая новые данные
$model = new YourModel(
$command->getId(),
$command->getYourParam()
//....
);
$this->repositoryManager->save($model);
// , затем идет подключение к стороннему сервису и что то делает
$response = $this->gate->push($usersList);
// возвразаем все в контроллер и далее уже в его респонс
return new ResponseDataFromGate($response)
}
}