}
class LogToFile implements Logger
{
    public function execute($message)
    {
        var_dump('log the message to a file ' . $message);
    }
}
class LogToDatabase implements Logger
{
    public function execute($message)
    {
        var_dump('log the message to a database: ' . $message);
    }
}
class UsersController
{
    protected $logger;
    public function __construct(Logger $logger)
    {
        $this->logger = $logger;
    }
    public function show()
    {
        $user = '******';
        $this->logger->execute($user);
    }
}
$controller = new UsersController(new LogToDatabase());
$controller->show();
Ejemplo n.º 2
0
}
class LogToDatabase implements Logger
{
    public function execute($message)
    {
        var_dump('log the message to a database ' . $message);
    }
}
// ...
class UsersController
{
    protected $logger;
    //public function __construct(LogToFile $logger) {
    //To work I need some kind of functionality that logs
    //Something that is binded to the Logger contract
    public function __construct(Logger $logger)
    {
        $this->logger = $logger;
    }
    public function show()
    {
        $user = '******';
        //log the info
        $this->logger->execute($user);
    }
}
$controller = new UsersController(new LogToFile());
$controller->show();
$controller2 = new UsersController(new LogToDatabase());
$controller2->show();