@(汗) 因为写的框架使用了twig,这就蛋疼了,只有一些twig中文文档,却没有关于twig实战的一些的文章(或者说有些英文版说得太高深),于是这就相当于从零开始.
今天使用自己的框架的时候,遇到一个问题,也就是include不能使用相对路径,这我就急了。
[button href="https://stackoverflow.com/questions/13018034/twig-include-template-from-other-directory"]stackoverflow[/button]
说得太孤儿了,因为讲的自动加载器根本没有例子,我怎么知道怎么写...
于是又翻到
[button href="https://symfony.com/doc/3.4/templating/namespaced_paths.html"]symfony[/button]
symfony也是使用了twig,因此对使用我的框架开发具有实际意义。
symfony使用了twig的扩展,但当我看见@name这样的格式时候,我突然想起来看到twig文档有对命名空间的另一写法。
下面使用我的框架frag进行说明:
$loader = new \Twig\Loader\FilesystemLoader(APP. '/template/' . THEME_NAME);
//只要添加下面的代码
$loader->addPath(APP. '/template/' . THEME_NAME . '/admin/common/', 'admin');
其实正常来说就是在模板的目录去寻找,不会翻目录,所以我们要增加让它寻找的路径。{{ include('@admin/left-sidebar.html') }}
这样就可以避免相对引用