Silex Twig 图书馆的视图/资源位置


Views/Resources location for Silex Twig Library

通常,对于 Silex 项目,我会有顶级目录,例如:

- app/
   - views/
- src/
- vendor/
- web/

现在,我的一些类可能会调用$app['twig']->render(...),它将从app/views文件夹中拉出一个视图。

如果我提取一个库以在多个项目中更可重用,我应该在哪里保存它的视图文件,我该如何指示 Twig 查看那里?

同样的问题适用于我通常会放在web/中的图形/样式表等。

当然,它们必须在vendor/my-lib某处才能允许作曲家干净地安装文件?是否有通用/最佳实践方法可以做到这一点?

更新作为参考,这是我最终所做的:

<?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)));

谢谢。

我将视图存储在 src/{Library}/{Class}/View/下

我将树枝的基本路径设置为src

$app->register(new TwigServiceProvider(), array(
    'twig.path' => array(
        __DIR__ . '/../src/{Library}/'
    ),
    'twig.options' => array('cache' => false, 'strict_variables' => true)
));

调用 render 时,我从该点传入路径

$app['twig']->render('{Class}/View/{twigfile}.html.twig',$data);