【发布时间】:2016-04-08 15:51:14
【问题描述】:
我正在使用 Slim Framework 3。我想将 dependencies.php 中定义的 $logger 注入到路由器控制器类中。以下是我的做法,有没有更好的方法?
routes.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?
【问题讨论】:
标签: php dependency-injection slim slim-3