Существуют ли функции, которые я могу вызвать через переменную $ app (Silex \ Application), чтобы получить доступ к веб-корню и корню приложения?
Предполагая, что мой макет проекта так
/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 я мог бы сослаться на мой корень документа или корень приложения
$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 () и т. Д., Но мне было любопытно, если бы был другой способ
Прут-х app.request.baseurl
доступен в php как $app["request"]->getBaseUrl()
или же $request->getBaseUrl()
если у вас есть запрос введен в ваш контроллер.
Что касается корня приложения, я всегда делал define("ROOT", __DIR__ . "/../")
в моем файле начальной загрузки.
Других решений пока нет …