如何在 fatfreeframework 模板中使用 class->function()

How to use class->function() in fatfreeframework template

我有一个 class 如下。

class myClass {

    //Strip string
    function strip($str) {
        return $str;
    }
}

在我的代码中,我调用模板如下。

echo \Template::instance()->render('admin/settings.html');

现在如何将 class 函数应用于模板中的变量?我想做的是这样的。

{{ myClass->strip((@value['setting__Setting'])) }}

这实际上不起作用。

使用静态函数?

<?php
class myClass {

    //Strip string
    public static function strip($str) {
        return $str;
    }
}

在模板中调用静态函数:

{{ \myClass::strip((@value['setting__Setting'])) }}

您实际上可以创建一个真正调用您的 class 的匿名函数,因此基本上您将使用您的 class 方法,但方式很好!

首先,将您的 class 分配给一个 HIVE 变量,您可以在 class 中的任何地方这样做(__construct 推荐)

$this->f3->set('_strip',function ($a){
    return $this->strip($a);
});

现在您可以像这样在模板中调用该方法,

{{ @_strip('Hello World') }}