Silex — Как получить доступ к моему веб-руту и ​​корню приложения

Существуют ли функции, которые я могу вызвать через переменную $ 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 () и т. Д., Но мне было любопытно, если бы был другой способ

2

Решение

Прут-х app.request.baseurl доступен в php как $app["request"]->getBaseUrl() или же $request->getBaseUrl() если у вас есть запрос введен в ваш контроллер.

Что касается корня приложения, я всегда делал define("ROOT", __DIR__ . "/../") в моем файле начальной загрузки.

8

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]