我正在使用 Slim Framework 3。我想将$logger
定义注入dependencies.php
到路由器控制器类中。以下是我的做法,有没有更好的方法?
路由.php
$app->get('/test', function($request, $response, $args){
$controller = new AccountController($this->get('logger'));
return $controller->test($request, $response, $args);
});
AccountController
class AccountController{
private $logger;
function __construct($logger){
$this->logger = $logger;
}
public function test($request, $response, $args){
$this->logger->info('i am inside controller');
return $response->withHeader('Content-Type', 'application/json')->write('test');
}
}
在 Slim Framework 3 文档中,使用路由控制器的正确方法应该是:
$app->get('/test', 'AccountController:test');
$logger
但是,当我选择以这种更“优雅”的方式对路由控制器进行编码时,如何注入AccountController 呢?