我是否可以通过我的$ app变量(Silex \ Application)调用函数来访问Web根目录和应用程序根目录?
假设我的项目布局是这样的
/src <-- Contains bootstrap.php (register all required services), controllers.php (routes)
/vendor <-- Contains autoload.php and Silex source
/web <-- Contains index.php, Creates $app, includes app/bootstrap.php and $app->run()
在src / controllers.php中,我可能想引用我的doc root或app root
$app
->get('/', function () use ($app) {
// Would like to do something like
$webRoot = $app->getWebRoot();
return $app['twig']->render('home.html.twig');
})
->bind('home');
我找到了一些我可以在Twig模板中使用但在PHP中没有便捷方法的东西
<link href="{{ app.request.baseUrl }}/libs/bootstrap-3.2.0-dist/css/bootstrap.min.css" media="screen" rel="stylesheet" type="text/css" />
我可以使用__DIR __,dirname()等,但是如果有其他方法则很好奇
答案 0 :(得分:8)
如果你的请求被注入你的控制器,那么twig的app.request.baseurl
在php中可以$app["request"]->getBaseUrl()
或$request->getBaseUrl()
。
对于app root,我总是在我的bootstrap文件中完成define("ROOT", __DIR__ . "/../")
。