2013-03-18 58 views
-1

我想在ZF2创建一个自定义视图助手,我也跟着在这里这是非常简单的说明: http://framework.zend.com/manual/2.0/en/modules/zend.view.helpers.advanced-usage.htmlZF2自定义视图助手停止执行

但是当我打电话$this->SpecialPurpose()执行没有错误停止。

我跑了调试,得到了以下错误:

Warning: Class 'Zend\Stdlib\ArrayObject\PhpReferenceCompatibility' not found in C:\Program Files (x86)\Zend\ZendServer\data\apps\http\__default__\0\MT5_0\1.0.0\vendor\zendframework\zendframework\library\Zend\Stdlib\ArrayObject.php on line 24 

Fatal error: Class 'Zend\Stdlib\AbstractArrayObject' not found in C:\Program Files (x86)\Zend\ZendServer\data\apps\http\__default__\0\MT5_0\1.0.0\vendor\zendframework\zendframework\library\Zend\Stdlib\ArrayObject.php on line 33 

最后我要的是扩展网址助手作出它生成的URL的一些变化,但我还没有能让这个简单的例子工作。

感谢

,你已经设置了辅助 的module.config模块
+0

Zend应用程序本身运行,只有视图帮手不?在这种情况下,请提供view-helper的代码以及viewHelperConfig – Sam 2013-03-18 18:02:12

+0

试试本教程http://samsonasik.wordpress.com/2012/07/20/zend-framework-2-create-your-custom- view-helper/ – Developer 2013-03-18 18:37:33

+0

谢谢你的教程是非常有用的,并且定制助手现在按预期运行,现在我想扩展URL助手或者至少从我的助手中调用它,但我似乎无法提供RouterStackInterface的助手。 我该怎么办? – Juan 2013-03-19 10:20:09

回答

0

把这个代码:

'view_helpers' => array(
     'invokables' => array(
      'SpecialPurpose' => 'your_module_name\View\Helper\SpecialPurpose', 
     ) 
    ), 

或Module.php

public function getViewHelperConfig() 
{ 
    return array(
      'invokables' => array(
      'SpecialPurpose' => 'your_module_name\View\Helper\SpecialPurpose', 
     ) 
    ); 
} 
在参考

这是很难看到,但有:)

// From within a configuration file 
return array(
    'view_helpers' => array(
     'invokables' => array(
     'lowercase' => 'My\Helper\LowerCase', 
     'uppercase' => 'My\Helper\UpperCase', 
    ), 
    ), 
); 

希望这会有所帮助。

+0

谢谢,我实际上在module.config中和Module.php中都有代码,我不确定这是否是问题所在,我基本上重写了整个事情,现在按预期工作。 到第二点是否有可能从这个自定义助手中调用url助手或扩展url而不是AbstractHelper? 我已经尝试了两个,但得到错误 '没有RouteStackInterface实例提供' 我想我需要在工厂注入路由器?我会如何去做这件事? – Juan 2013-03-19 10:00:43