gfh151 / yii2-littletwig

此扩展允许将twig页面渲染到PHP布局中

安装: 6

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 3

分支: 0

开放问题: 0

类型:yii2-extension

v1.0.0 2016-05-25 11:07 UTC

This package is auto-updated.

Last update: 2024-09-13 01:53:13 UTC


README

此扩展允许将twig页面渲染到PHP布局中

安装

安装此扩展的首选方法是通过Composer

运行以下命令之一:

php composer.phar require --prefer-dist fgh151/yii2-littletwig "*"

或者

"fgh151/yii2-littletwig": "*"

将以下内容添加到你的composer.json文件的require部分。

使用方法

首先,你需要在控制器中添加trait

class TestController extends Controller
{
    use fgh151\littletwig\TwigTrait
    ...
}

现在你可以渲染twig页面了

public function actionIndex()
{
    return $this->renderTwig('/web/test.twig', ['users' => User::find()->limit(10)->all()], ['Project_Twig_Extension']);
}

可用参数:twig页面,变量数组,twig扩展类数组(可选)

Twig扩展

要添加新扩展,你需要创建一个类,例如

class Project_Twig_Extension extends \Twig_Extension
{
    public  function  getFunctions()
    {
        return [
            new \Twig_SimpleFunction('TestFunction', function ($p, $p1){ 
                return $p + $p1;
            })
        ];
    }

    public function getName()
    {
        return 'project';
    }
}

在render函数中添加类

return $this->renderTwig('/web/test.twig', [], ['Project_Twig_Extension']);

你可以代替回调写类函数

class Project_Twig_Extension extends \Twig_Extension
{
    public  function  getFunctions()
    {
        return [
            new \Twig_SimpleFunction('TestFunction', $this->f())
        ];
    }

    public function f($p, $p1)
    {
        return $p + $p1;
    }

    public function getName()
    {
        return 'project';
    }
}

现在在twig模板中可用的函数是TestFunction

<p>{{ TestFunction(6, 4) }}</p>

它将渲染

<p>10</p>

Twig选项

你可以将参数传递给twig构造函数

$params = [
    'debug' => false,
    'charset' => 'UTF-8',
    'base_template_class' => 'Twig_Template',
    'strict_variables' => false,
    'autoescape' => 'html',
    'cache' => false,
    'auto_reload' => null,
    'optimizations' => -1,
];

return $this->renderTwig('/web/test.twig', [], ['Project_Twig_Extension'], $params);

所有参数都是可选的。对于参数详情,请参阅twig文档