View Helpers的混乱

时间:2011-01-13 03:03:34

标签: zend-framework

我在共享托管,其中www只能由网络服务器访问,因此我更改了基于项目的ZenFramework建议的结构,将库放在文件夹www:

WWW /
的index.php
应用程序/
模块/
前/
管理员/
  库/

.htaccess:

RewriteEngine On

RewriteBase /

RewriteCond%{REQUEST_FILENAME} -s [OR]

RewriteCond%{REQUEST_FILENAME} -l [OR]

RewriteCond%{REQUEST_FILENAME} -d

RewriteRule ^。* $ - [NC,L]

RewriteRule ^。* $ index.php [NC,L]

我在WampServer下本地测试,一切正常。

当我上网时,我在View Helpers上遇到错误:

警告:include_once():无法访问/home/www/application/Modules/front/views/helpers/HeadMeta.php

ZendFramework视图助手和我自己创建的视图助手之间存在混淆。当我复制内容时: 库\ Zend \ View \ Helper \ 至 \ application \ modules \ front \ views \ helpers 一切正常!并且模块管理员/它也是同样的问题 我不明白为什么。 我必须使用我的助手自定义视图保持View助手吗?

提前感谢您的回答。

更新

我没有依附,也没有自己创造任何帮助。但我必须创建动作助手,如下所示:

resources.frontController.moduleDirectory = APPLICATION_PATH "/Modules"
resources.frontController.defaultModule ="front"
resources.frontController.actionHelperPaths.Application_front_Controller_Helper = APPLICATION_PATH "/Modules/front/controllers/helpers/"
resources.modules[]=

Bootstrap模块:

class front_Bootstrap extends Zend_Application_Module_Bootstrap

{
    public function _initHelper()

    {

        $this->bootstrap('frontController');

        $navigation = Zend_Controller_Action_HelperBroker::getStaticHelper('NavigationPath');   

        Zend_Controller_Action_HelperBroker::addHelper($navigation);

    }
}

1 个答案:

答案 0 :(得分:2)

几个想法/问题/评论:

  1. 肯定在Module文件夹中寻找视图助手。您是否尝试调用由您开发的自定义 HeadMeta帮助程序,或者您是否正在尝试调用标准 Zend_View_Helper_HeadMeta帮助程序?您是否在Bootstrapapplication/config.ini

  2. 中设置了任何辅助路径
  3. 您当前的设置存在安全问题:如果有人请求网址:http://exmaple.com/application/config.ini该怎么办?我没有看到任何保护。请注意,您不必将所有ZF文件夹移动到文档根目录中。相反,您可以将它们向下推并在该文件夹上放置deny-all保护。见:Zend Framework on shared hosting。该博客文章还提供了ZF在共享托管上的其他方法。

  4. 最后,当某些内容在Windows上运行但在Linux上不起作用时,需要several usual suspects进行检查。