Обычно для проекта Silex у меня были бы каталоги верхнего уровня, такие как:
- app/
- views/
- src/
- vendor/
- web/
Теперь некоторые из моих классов могут вызвать $app['twig']->render(...)
, и он вытащит представление из папки app/views
.
Если я извлекаю библиотеку, чтобы ее можно было повторно использовать в нескольких проектах, где я должен хранить файлы ее представлений и как указать Twig, чтобы искать там?
Тот же вопрос относится к графике/таблицам стилей и т. д., которые я обычно добавляю в web/
.
Наверняка они должны быть где-то в пределах vendor/my-lib
, чтобы Composer мог без проблем установить файлы? Есть ли общий/лучший способ сделать это?
Обновление Для справки, вот что я в итоге сделал:
<?php
// in my \Silex\ServiceProviderInterface ...
/**
* @var \Twig_Environment $twig
*/
$twig = $app['twig'];
// Add the paths to our twig templates here
$fsLoader = new \Twig_Loader_Filesystem(array(
__DIR__.'/views/'
));
$twig->setLoader(new \Twig_Loader_Chain(array($twig->getLoader(), $fsLoader)));
Спасибо.