【发布时间】:2014-09-15 07:29:04
【问题描述】:
读取ServiceControllerServiceProviderhttp://silex.sensiolabs.org/doc/providers/service_controller.html
我希望通过服务位置进行 DI,以便我的控制器可以在构造函数而不是函数中注入依赖项。
但是我的应用程序使用 YAML 进行路由,而不是像示例中那样使用 PHP。
这是我的路线:
protected function registerRouteService()
{
$app = $this;
$this['routes'] = $this->extend(
'routes',
function (RouteCollection $routes) use ($app) {
$loader = new YamlRouting(new FileLocator($app::$rootPath . $app::DEFAULT_ROUTES_PATH));
$collection = $loader->load($app::DEFAULT_ROUTES_FILE);
$routes->addCollection($collection);
return $routes;
}
);
}
此功能受到保护,因为我正在扩展 Silex\Application 以引导所有内容。
根据我调用服务提供者的文档:
$app->register(new Silex\Provider\ServiceControllerServiceProvider());
我的问题是因为我在文档的以下部分使用 YAML - 因为我不知道一般如何应用它
$app['posts.controller'] = $app->share(function() use ($app) {
return new PostController($app['posts.repository']);
});
$app->get('/posts.json', "posts.controller:indexJsonAction");
【问题讨论】:
-
如何添加参数到:$app->get('/posts.json', "posts.controller:indexJsonAction");为了在 indexJsonAction 函数中处理?