對於構造baseController注入$應用程序,我創建的symfony的裝飾controllerResolver:
在DecoratorControllerResolverSymfony
重載方法createController延伸的Symfony \分量\ HttpKernel \控制器\ ControllerResolve
protected function createController($controller)
{
if (false === strpos($controller, '::')) {
throw new \InvalidArgumentException(sprintf('Unable to find controller "%s".', $controller));
}
list($class, $method) = explode('::', $controller, 2);
if (!class_exists($class)) {
throw new \InvalidArgumentException(sprintf('Class "%s" does not exist.', $class));
}
return array(new $class($this->app), $method);
}
$app['resolver'] = $app->share(function() use ($app) {
//test
if(isset($app['logger'])){
$logger = $app['logger'];
}else{
$logger = null;
}
$defaultResolver = new ControllerResolver($logger);
return new DecoratorControllerResolverSymfony($defaultResolver, $app, $logger);
});
然後去創造AbsractController與構造函數的參數$應用
更多細節:https://github.com/nagi88/silex-skeleton-mvc-module
對不起,我的英語水平。
正在使用陽明路由提供,那我怎麼才能注入這樣的..? – Nisam
@Nisam只有最後一行是你的路由配置。其他行是服務配置,你應該在PHP中這樣做。 –