Phalcon 自定义标签模板

Phalcon Custom Tag template

有什么方法可以在 Phalcon 中为自定义标签创建视图,这样我就可以只传递要渲染的参数吗?

class MenuModule extends \Phalcon\Tag {
    public static function initialize($param) {
        return $param;
    }
}

在我看来我可以打电话

echo MenuModule::initialize('Home Page');

我想做的是像这样传递数组:

$menu = array('Home','About','Contact');
echo MenuModule::initialize($menu);

然后在 Tag Helper 中调用子视图来呈现该数组而不是像这样:

class MenuModule extends \Phalcon\Tag {
    public static function initialize($param) {
        $menu = '<ul>';
        foreach($param as $p) {
            $menu .= '<li>' . $p . '</li>';
        }
        $menu .= '</ul>';
        return $menu;
    }
}

这并不复杂,但我想使用视图而不是在 PHP 中生成 HTML,因为 HTML 文件更大。

请问我该怎么做?

我在官方 Phalcon 文档中找到了解决方案,Tag Service and Creating your own helpers

<?php
use Phalcon\Tag;

class MenuModule extends Tag {
    static public function initialize($param) {
        $menu = '<ul>';
        foreach($param as $p) {
            $menu .= '<li>' . $p . '</li>';
        }
        $menu .= '</ul>';

        return $menu;
    }
}

然后更改服务“标签”的定义:

$di['tag'] = function () {
    return new MenuModule();
};

然后以伏特方式访问它:

{{ MenuModule::initialize($param) }}