r1pp3rj4ck/twigstringbundle

使用Twig渲染字符串而不是文件

安装数: 14,852

依赖项: 1

建议者: 0

安全: 0

星标: 3

关注者: 2

分支: 18

类型:symfony-bundle

dev-master / 1.0.x-dev 2014-10-13 15:07 UTC

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)