/** * @test */ public function itShouldPublishUserRegisteredEvent() { $id = DomainEventPublisher::instance()->subscribe($subscriber = new SpySubscriber()); new User($userId = new UserId(), '*****@*****.**', 'password'); DomainEventPublisher::instance()->unsubscribe($id); $this->assertUserRegisteredEventPublished($subscriber, $userId); }
/** * Constructor. * * @param \Domain\Model\User\UserId $anId The user id * @param \Domain\Model\User\UserEmail $anEmail The email address * @param string $aPassword The password */ public function __construct(UserId $anId, UserEmail $anEmail, $aPassword) { $this->userId = $anId; $this->email = $anEmail; $this->changePassword($aPassword); DomainEventPublisher::instance()->publish(new UserRegistered($this->userId)); }
/** * @param UserId $userId * @param string $email * @param string $password */ public function __construct(UserId $userId, $email, $password) { $this->userId = $userId; $this->setEmail($email); $this->changePassword($password); $this->createdOn = new \DateTime(); $this->updatedOn = new \DateTime(); DomainEventPublisher::instance()->publish(new UserRegistered($this->userId)); }
public function authenticate($email, $password) { DomainEventPublisher::instance()->publish(new LogInAttempted($email)); if ($this->isAlreadyAuthenticated()) { return true; } $user = $this->repository->ofEmail($email); if (!$user) { return false; } if ($user->password() !== $password) { return false; } $this->persistAuthentication($user); return true; }
public function grant() { DomainEventPublisher::instance()->publish(new WishGranted($this->wishId)); }
$app['session']->getFlashBag()->add('message', ['info' => 'Error!']); } return $app->redirect('/dashboard'); })->bind('delete-wish'); $app->get('/wish/{wishId}', function ($wishId) use($app) { $userSecurityToken = $app['session']->get('user'); if (!$userSecurityToken) { return $app->redirect('/login'); } $userId = $userSecurityToken->id()->id(); // \Lw\Application\Service\Wish\ViewWishService $response = $app['view_wish_application_service']->execute(new \Lw\Application\Service\Wish\ViewWishRequest($wishId, $userId)); return $app['twig']->render('view-wish.html.twig', ['wish' => $response]); })->bind('view-wish'); $app->before(function (Symfony\Component\HttpFoundation\Request $request) use($app) { DomainEventPublisher::instance()->subscribe(new PersistDomainEventSubscriber($app['event_store'])); }); // RESTful /* $app->post('/wish/{wishId}', function ($wishId, Request $request) use ($app) { $userSecurityToken = $app['session']->get('user'); if (!$userSecurityToken) { return $app->redirect('/login'); } $userId = $userSecurityToken->id(); // \Lw\Application\Service\Wish\AddWishService $response = $app['update_wish_application_service'] ->execute( $userId, $wishId, $request->get('email'),
private function fireEvent($playerId, $message) { DomainEventPublisher::instance()->publish(new Generic($playerId . ' ' . $message)); }
public function makeWishNotBeingAnAggregate(WishId $wishId, $address, $content) { $newWish = new Wish($wishId, $this->id(), $address, $content); DomainEventPublisher::instance()->publish(new WishWasMade($newWish->id(), $newWish->userId(), $newWish->address(), $newWish->content())); return $newWish; }
return $app->redirect('/dashboard'); })->bind('update-wish'); // Delete wish $app->get('/wish/delete/{wishId}', function ($wishId) use($app) { $userSecurityToken = $app['session']->get('user'); if (!$userSecurityToken) { return $app->redirect('/login'); } $userId = $userSecurityToken->id()->id(); try { $app['delete_wish_application_service']->execute(new \Lw\Application\Service\Wish\DeleteWishRequest($wishId, $userId)); $app['session']->getFlashBag()->add('message', ['info' => 'Deleted!']); } catch (\Exception $e) { $app['session']->getFlashBag()->add('message', ['info' => 'Error!']); } return $app->redirect('/dashboard'); })->bind('delete-wish'); $app->get('/wish/{wishId}', function ($wishId) use($app) { $userSecurityToken = $app['session']->get('user'); if (!$userSecurityToken) { return $app->redirect('/login'); } $userId = $userSecurityToken->id()->id(); $response = $app['view_wish_application_service']->execute(new \Lw\Application\Service\Wish\ViewWishRequest($wishId, $userId)); return $app['twig']->render('view-wish.html.twig', ['wish' => $response]); })->bind('view-wish'); $app->before(function (Symfony\Component\HttpFoundation\Request $request) use($app) { DomainEventPublisher::instance()->subscribe(new PersistDomainEventSubscriber($app['event_store'])); DomainEventPublisher::instance()->subscribe(new LoggerDomainEventSubscriber()); }); $app->run();
public function letGo() { static $id = 0; AllEventsSubscriber::reset(); DomainEventPublisher::instance()->unsubscribe($id++); }
private function notify(DomainEvent $event) { DomainEventPublisher::instance()->publish($event); }