}
    }
}
class SyslogLogger
{
    // ...
    public function info($message)
    {
        syslog(LOG_INFO, $message);
    }
}
class FlashMessage
{
    // ...
    public function success($message)
    {
        echo $message;
    }
}
///
$data = ['username' => 'adrianpietka', 'password' => 'strong#password', 'email' => '*****@*****.**'];
$flash = new FlashMessage();
$logger = new SyslogLogger();
$userRepository = new DoctrineUserRepository();
$userFactory = new RegisterFormUserFactory();
$registerService = new RegisterUserService($userRepository, $userFactory);
$registerService->register($data, function ($user) use($logger, $flash) {
    $logger->info(sprintf('Created new account with email: %s', $user->getEmail()));
    $flash->success('Congratulations your registration has been successful.');
});
// @via zawarstwaabstrakcji.pl
예제 #2
0
    }
}
class DoctrineUserRepository implements UserRepository
{
    public function add(User $user)
    {
        // add user to storage
        var_dump($user);
    }
}
class RegisterUserService
{
    private $users;
    private $factory;
    public function __construct(UserRepository $users, UserFactory $factory)
    {
        $this->users = $users;
        $this->factory = $factory;
    }
    public function register(array $data)
    {
        $this->users->add($this->factory->createUser($data));
    }
}
///
$data = ['username' => 'adrianpietka', 'password' => 'strong#password', 'email' => '*****@*****.**'];
$userRepository = new DoctrineUserRepository();
$userFactory = new RegisterFormUserFactory();
$registerService = new RegisterUserService($userRepository, $userFactory);
$registerService->register($data);
// @via zawarstwaabstrakcji.pl
예제 #3
0
 /**
  * Register a new User
  *
  * @param RegisterUserCommand $command
  * @return Cribbb\Domain\Model\Identity\User
  */
 public function registerUser(RegisterUserCommand $command)
 {
     $user = $this->registerUserService->register($command->email, $command->username, $command->password);
     $this->dispatcher->dispatch($user->release());
     return $user;
 }
    {
        $this->logger = $logger;
    }
    public function execute(User $user)
    {
        $this->logger->info(sprintf('Created new account with email: %s', $user->getEmail()));
    }
}
class FlashMessageRegisterUserClosure implements RegisterUserClosure
{
    private $flash;
    public function __construct($flash)
    {
        $this->flash = $flash;
    }
    public function execute(User $user)
    {
        $this->flash->succes(sprintf('Congratulations %s your registration has been successful.', $user->getEmail()));
    }
}
///
$data = ['username' => 'adrianpietka', 'password' => 'strong#password', 'email' => '*****@*****.**'];
$userRepository = new DoctrineUserRepository();
$userFactory = new RegisterFormUserFactory();
$logger = new SyslogLogger();
$logRegisterUserClosure = new LogRegisterUserClosure($logger);
$flash = new FlashMessage();
$flashMessageRegisterUserClosure = new FlashMessageRegisterUserClosure($flash);
$registerService = new RegisterUserService($userRepository, $userFactory);
$registerService->register($data, [$logRegisterUserClosure, $flashMessageRegisterUserClosure]);
// @via zawarstwaabstrakcji.pl