Как использовать интерфейсы?

Не могу понять, как использовать интерфейсы. Нашел вот такой пример:

<?php
class LogToDatabase 
{
    public function execute($message)
    {
        var_dump('log the message to a database :'.$message);
    }
}
class LogToFile 
{
    public function execute($message)
    {
        var_dump('log the message to a file :'.$message);
    }
}
class UsersController 
{ 
    protected $logger;
    
    public function __construct(LogToFile $logger)
    {
        $this->logger = $logger;
    }
    
    public function show()
    { 
        $user = 'nahid';
        $this->logger->execute($user);
    }
}
$controller = new UsersController(new LogToFile);
$controller->show();

В статье пишут, допустим, если мы захотим использовать не LogToFile, а LogToDataBase, то понадобится интерфейс. Так в чём проблема в конструкторе UsersController не указывать сам класс и потом просто можно вызывать тот класс, который тебе нужен.


Ответы (0 шт):