zeliard91 / twigstring-bundle
使用Twig渲染字符串而非文件
v1.1.0
2017-11-02 11:14 UTC
Requires
- php: >=5.3.2
- symfony/twig-bundle: ~2.3|~3.0
Requires (Dev)
- phpunit/phpunit: ~4.0
- symfony/symfony: ~2.3|~3.0
- twig/extensions: ^1.0
This package is auto-updated.
Last update: 2024-09-10 21:18:56 UTC
README
此Symfony2 Bundle允许使用Symfony2原生的Twig模板引擎渲染字符串而不是文件。该Bundle添加了一个名为twigstring
的额外服务。它使用方式和原始模板服务相同。唯一的区别是,方法render(<string>, [<array>)
的第一个参数是一个要解析的字符串,而不是模板文件。
该Bundle支持变量输出、条件、循环以及控制器渲染。它目前不支持包含模板,它将把模板名称解释为twigstring。
一个使用场景示例是从数据库加载模板而不是使用文件。
扩展想法
- 包含模板的选项
- 添加黑白名单以允许允许的twig标签
安装
1. 在composer中注册bundle
您需要将其添加到您的composer.json需求中
{ "require": { "zeliard91/twigstring-bundle": "~1.0" } }
2. 从packagist下载bundle
通过运行以下命令进行安装
$ ./composer.phar update zeliard91/twigstring-bundle
3. 在kernel中注册bundle
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new LK\TwigstringBundle\LKTwigstringBundle(), // ... ); }
4. 在配置中注册bundle
# app/config/config.yml lk_twigstring: # Decide if you want that all registered twig extensions must be loaded load_twig_extensions: true # (default to true)
5. 添加所需的额外扩展(可选)
# app/config/services.yml services: twigstring.extension.foo: class: Foo\BarBundle\Twig\FooBarExtension tags: - { name: twigstring.extension }
有关可用扩展的列表,请参阅fabpot/Twig-extensions或使用Symfony Cookbook和twig文档创建一个。
使用
// 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), zeliard91 (Damien Matabon)