<?php
interface Logger
{
public function log($message);
}
class Application
{
protected $logger;
public function setLogger(Logger $logger)
{
$this->logger = $logger;
}
public function doTask()
{
$this->logger->log('test data');
}
}
$app = new Application();
$app->setLogger(new class implements Logger {
public function log($message) {
var_dump($message);
}
});
$app->doTask();