对非模板数据使用“path”和“asset”

时间:2011-09-26 12:58:28

标签: path symfony assets

使用Twig创建模板时,可以轻松使用pathasset函数。

<a href="{{ path('my_route') }}"><img src="{{ asset('bundles/acmedemo/my_image.png') }}" /></a>

但是,我的一些数据来自非twig文件或来自数据库。从那里解决这些功能的正确方法是什么?

到目前为止,我正在使用正则表达式替换(preg_replace_callback)作为路径函数。但是,有没有更好的方式?

1 个答案:

答案 0 :(得分:3)

我很自豪地介绍我的第一个公共迷你项目StaticBundle。它几乎可以让你将包中的任何文件直接包含在模板中。

设置

编辑现在可以使用编辑器安装捆绑包,请参阅readme上的说明。

将以下内容添加到deps

[KGStaticBundle]
    git=git://github.com/kgilden/KGStaticBundle.git
    target=bundles/KG/StaticBundle

运行bin/vendors install

app/autoload.php注册命名空间:

'KG' => __DIR__.'/../vendor/bundles',

app/AppKernel.php注册捆绑包:

new KG\StaticBundle\KGStaticBUndle(),

基本用法

假设我们准备好将文件src/Acme/Bundle/DemoBundle/Static/hello.txt包含在模板中。我们必须使用file函数:

{# src/Acme/Bundle/DemoBundle/Resources/views/Demo/index.html.twig #}

{{ file('@AcmeDemoBundle/Static/hello.txt') }}

逻辑名称被解析为实际路径,而简单的file_get_contents将检索数据。