【发布时间】:2012-08-11 16:09:00
【问题描述】:
通常,对于 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)));
谢谢。
【问题讨论】:
标签: php twig silex composer-php