我使用了github的骨架zf2应用程序
答案 0 :(得分:4)
这里摘录了ZF2引用,可以帮助您入门:
<强> 14.4.2。注册助手 Zend \ View \ Renderer \ PhpRenderer组成一个插件代理来管理助手,特别是一个实例 Zend \ View \ HelperBroker,它按顺序扩展了基本插件代理 确保我们有合适的助手。 HelperBroker默认情况下 使用Zend \ View \ HelperLoader作为其辅助定位器。 HelperLoader是 一个基于地图的加载器,这意味着你只需要映射 helper / plugin名称,您希望通过该名称将其引用到实际名称 帮助者/插件的类名。
以编程方式,按如下方式完成:
// $view is an instance of PhpRenderer
$broker = $view->getBroker();
$loader = $broker->getClassLoader();
// Register singly:
$loader->registerPlugin('lowercase', 'My\Helper\LowerCase');
// Register several:
$loader->registerPlugins(array(
'lowercase' => 'My\Helper\LowerCase',
'uppercase' => 'My\Helper\UpperCase',
));
在MVC应用程序中,您通常只需传递一张地图 通过您的配置插入到类中。
// From within a configuration file
return array(
'di' => array('instance' => array(
'Zend\View\HelperLoader' => array('parameters' => array(
'map' => array(
'lowercase' => 'My\Helper\LowerCase',
'uppercase' => 'My\Helper\UpperCase',
),
)),
)),
);
以上可以在需要注册帮助程序的每个模块中完成 与PhpRenderer;但是,请注意另一个模块可以 注册具有相同名称的助手,因此模块的顺序可能会产生影响 哪个助手类实际上会被注册!
<强> 14.4.3。编写自定义助手编写自定义助手很容易。我们建议扩展Zend \ View \ Helper \ AbstractHelper,但是在 至少,您只需要实现Zend \ View \ Helper接口:
namespace Zend\View;
interface Helper
{
/**
* Set the View object
*
* @param Renderer $view
* @return Helper
*/
public function setView(Renderer $view);
/**
* Get the View object
*
* @return Renderer
*/
public function getView();
}
如果您希望您的帮助程序能够被调用,就像它是一样 PhpRenderer的方法调用,你也应该实现一个 帮助器中的__invoke()方法。
如前所述,我们建议进行扩展 Zend \ View \ Helper \ AbstractHelper,因为它实现了定义的方法 在Helper中,为您的发展提供一个先机。
定义好助手类后,请确保自动加载 它,然后将其注册到插件代理。
这是一个示例助手,我们将其命名为“SpecialPurpose”
namespace My\View\Helper;
use Zend\View\Helper\AbstractHelper;
class SpecialPurpose extends AbstractHelper
{
protected $count = 0;
public function __invoke()
{
$this->count++;
$output = sprintf("I have seen 'The Jerk' %d time(s).", $this->count);
return htmlspecialchars($output, ENT_QUOTES, 'UTF-8');
}
}
然后假设当我们向插件代理注册它时,我们映射它 字符串“specialpurpose”。
在视图脚本中,您可以多次调用SpecialPurpose助手 你喜欢的时间;它将被实例化一次,然后它会持续存在 为了PhpRenderer实例的生命。
// remember, in a view script, $this refers to the Zend_View instance.
echo $this->specialPurpose();
echo $this->specialPurpose();
echo $this->specialPurpose();
输出看起来像这样:
我看过'The Jerk'1次。我见过'The Jerk'2次。一世 已经看过'The Jerk'3次。