首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zend框架:需要在IIS7帮助中自动加载

Zend框架:需要在IIS7帮助中自动加载
EN

Stack Overflow用户
提问于 2011-07-22 03:31:47
回答 1查看 181关注 0票数 0

ZF把我磨瘦了。如果不先使用它将AutoLoader实例添加为资源,我就不能让它工作

代码语言:javascript
复制
require_once ('Zend\Loader\Autoloader.php');
Zend_Loader_Autoloader::getInstance();

$resourceLoader = new Zend_Loader_Autoloader_Resource(array(
           'basePath'  => APPLICATION_PATH . '/helpers',
           'namespace' => 'Application_',
       ));

$resourceLoader->addResourceType('form', 'forms/', 'Form')
           ->addResourceType('functions', 'functions/', 'Functions')
           ->addResourceType('menus', 'menus/', 'Menu')
           ->addResourceType('acls', 'acls/', 'Acls');

现在我正在尝试加载一个插件,但当我知道文件存在时,ZF会抱怨路径。

代码语言:javascript
复制
// located in application/controllers/plugins
    require('controllers\plugins\Acl.php');
    $front = Zend_Controller_Front::getInstance();
    $front->registerPlugin(new Application_Controller_Plugin_Acl($acl));

为什么我必须使用require这是一个IIS7的东西吗?我以为AutoLoader应该处理好所有的事情。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-22 04:59:27

我不认为这是IIS的问题。我认为这是对Zend_Loader_Autoloader_Resource的不当使用。

您通过Zend_Loader_Autoloader_Resource告诉自动加载器添加名称空间Application,并且它位于basePath APPLICATION_PATH . '/helpers'中。

如果我试着这样做的话:

代码语言:javascript
复制
new Application_Menu_Primary();

ZF应该会在APPLICATION_PATH . '/helpers/menus/Primary.php'中找到它。你真的想在那里找到这个文件吗?我猜不是。此外,尝试这样做:由于缺少资源类型Controller_Plugin及其在APPLICATION_PATH . '/helpers'中的目录,Application_Controller_Plugin_Acl将永远不会包含在内(我怀疑您是否希望这样)。

我建议您一起删除Zend_Loader_Autoloader_Resource的这种用法,并将名称空间添加到应用程序的/library目录中,并创建以下目录结构:

代码语言:javascript
复制
/library/Application/Controller/Plugin/Acl.php
/library/Application/Form/
...etc

然后,您需要通过index.php将/library路径添加到您的PHP include_path。(我以为这是标准的)

代码语言:javascript
复制
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    get_include_path(),
)));

最后,将Application名称空间添加到application.ini

代码语言:javascript
复制
autoloaderNamespaces.app = 'Application'

这应该会解决你的问题。我建议您更多地了解本课程Zend_Loader_Autoloader_Resource的目的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6781650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档