r1pp3rj4ck / twigstringbundle
使用Twig渲染字符串而不是文件
dev-master / 1.0.x-dev
2014-10-13 15:07 UTC
Requires
- php: >=5.3.2
- symfony/framework-bundle: 2.*
- symfony/security-bundle: 2.*
- twig/twig: 1.*
This package is not auto-updated.
Last update: 2024-09-20 15:03:33 UTC
README
这个Symfony2 Bundle允许使用Symfony2原生的Twig模板引擎来渲染字符串而不是文件。该Bundle添加了一个名为twigstring
的额外服务。它以与原始模板服务相同的方式使用。唯一的区别是,方法render(<string>, [<array>)
的第一个参数是一个要解析的字符串,而不是模板文件。
该Bundle支持变量输出、条件、循环和渲染控制器。它目前不支持包含模板,即将模板名称解释为twigstring。
一个示例使用场景是从数据库加载模板而不是使用文件。
扩展想法
- 包含模板的选项
- 添加允许的twig标签的黑名单/白名单
安装
如果您是高级Symfony开发者,您知道如何操作。该包的名称是r1pp3rj4ck/TwigstringBundle
,您需要它的dev-master
版本,并且该Bundle的FQN是LK\TwigstringBundle\LKTwigstringBundle()
。您还需要在配置中添加顶级条目:lk_twigstring: ~
。
当然,如果您不确定,以下是一步一步的安装过程
1. 在composer中注册Bundle
您需要将其添加到composer.json的要求中
{ "require": { "r1pp3rj4ck/TwigstringBundle": "dev-master" } }
2. 从packagist下载Bundle
通过运行以下命令安装它
$ ./composer.phar update r1pp3rj4ck/TwigstringBundle
3. 在kernel中注册Bundle
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new LK\TwigstringBundle\LKTwigstringBundle(), // ... ); }
4. 在配置中注册Bundle
# app/config/config.yml lk_twigstring: ~
用法
// set example parameter $vars = array('var'=>'x'); // get twigstring service $tpl_engine = $this->get('twigstring'); // render example string $vars['test'] = 'u ' . $tpl_engine->render('v {{ var }} {% if var is defined %} y {% endif %} z{% for i in 1..5 %} {{ i }}{% endfor %}', $vars);
或者使用简短的方式
// set example parameter $vars = array('var'=>'x'); // render example string $vars['test'] = 'u ' . $this->get('twigstring')->render('v {{ var }} {% if var is defined %} y {% endif %} z{% for i in 1..5 %} {{ i }}{% endfor %}', $vars);
示例输出
u v x y z
许可证
该Bundle受MIT许可证的许可。有关完整许可证,请参阅LICENSE文件
作者
LarsK (Lars Krüger),cordoval (Luis Cordova),r1pp3rj4ck (Attila Bukor)