我正在努力重组我的Zend 1.12项目。我有几个视图助手:
我把它们放在/ application / views / helpers
中班级名称是
据我所知,如果您有Zend_View_Helper前缀,则无需向application.ini添加任何配置
现在,当我尝试加载任何页面(甚至那些不使用帮助程序的页面)时,我收到错误:
Message: Zend_Session::start() - /otms/vendor/zendframework/zendframework1/library/Zend/Loader.php(Line:134): Error #2 include_once(): Failed opening 'Zend/View/Helper/OutputComplexForm.php' for inclusion (include_path='/otms/application/../library:/otms/application/../library/phpseclib0.3.1:/otms/application/../library/Amazon:/otms/application/../library/USPS:/otms/application/../library/Composer:/otms/library:/otms/vendor/phpseclib/phpseclib/phpseclib:/otms/vendor/zendframework/zendframework1/library:.:/usr/share/php:/usr/share/pear')
我错过了什么吗?
我发现调用函数
后发生了错误$startedCleanly = session_start(); //line 482
在文件/Zend/Session.php中。在此调用属性之后Zend_Session_Exception :: $ sessionStartError包含所描述的错误消息。我仍然没有看到启动会话和初始化视图助手之间的联系。
答案 0 :(得分:0)
对于您编写的特定于应用程序的类 - ./application/*
中显示的内容 - 通常不应位于Zend_
伪命名空间中。相反,它们应该在appnamespace
中,如./application/config/application.ini
中所配置的那样。
默认命名空间是'Application_',因此名为MyHelper
的视图助手通常会存储在文件./application/views/helpers/MyHelper.php
中:
class Application_View_Helper_MyHelper extends Zend_View_Helper_Abstract
{
public function myHelper()
{
// do your stuff here
}
}
请注意,类名是upper-camel-case MyHelper
,方法是lower-camelcase myHelper()
。
在您的视图中,您可以使用以下命令调用view-helper:
<?php
$output = $this->myHelper();
// Do something with $output
对于命名空间,类名,文件位置/名称和调用语法的这些约定,View的插件加载器应该能够查找,加载和执行view-helper方法。