2014-10-16 6 views
2

Есть ли функции, которые я могу вызвать через переменную $ app (Silex \ Application), чтобы получить доступ к корню и корню приложения?Silex - Как получить доступ к корню и корню приложения

Предполагая, что мой макет проекта, как этот

/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() 

И в ИПВ/controllers.php я мог бы ссылаться на мой корень .doc или корень приложения

$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__, (имя-каталога), и т.д., но было Любопытно, если был другой способ

+0

У меня есть сценарий «bootstrap», который загружает класс, который имеет все «каталоги конфигурации» в качестве свойств и «членов». Это выполняется до того, как «силекс» будет доступен «везде». Вы можете легко добавить его в 'silex'. Он также имеет «runtime_environment» для «dev», «test» и т. Д. –

ответ

8

Twig's app.request.baseurl можно получить в php как $app["request"]->getBaseUrl() или $request->getBaseUrl(), если у вас есть запрос, введенный в ваш контроллер.

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

+0

Не знаете, почему, но getBaseUrl и getBasePath возвращают пустые строки. Однако другие методы в объекте «Запрос», похоже, работают нормально, например. getPathInfo и getRequestUri. – Carlton

+0

Корневое решение кажется приятным кстати: D – Carlton

+0

Это отвечает на мой первоначальный вопрос, теперь, чтобы узнать, почему «getBaseUrl» и «getBasePath» возвращают пустые строки – Carlton

Смежные вопросы