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) }}
有什么方法可以在 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) }}