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

Zend framework Zend框架:需要在IIS7帮助中自动加载,zend-framework,autoloader,Zend Framework,Autoloader,采埃孚让我疲惫不堪。我无法让自动加载器的一个实例工作,而不首先使用它将其添加为资源 require_once ('Zend\Loader\Autoloader.php'); Zend_Loader_Autoloader::getInstance(); $resourceLoader = new Zend_Loader_Autoloader_Resource(array( 'basePath' => APPLICATION_PATH . '/helpers',

采埃孚让我疲惫不堪。我无法让自动加载器的一个实例工作,而不首先使用它将其添加为资源

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在知道文件存在时会抱怨路径问题

// located in application/controllers/plugins
    require('controllers\plugins\Acl.php');
    $front = Zend_Controller_Front::getInstance();
    $front->registerPlugin(new Application_Controller_Plugin_Acl($acl));

为什么我要用这是IIS7的东西?我以为自动装弹机应该负责所有事情。

我不认为这是IIS的问题。我认为这是对Zend\u Loader\u Autoloader\u资源的不当使用

您通过
Zend\u Loader\u autoloader\u Resource
告诉自动加载器添加名称空间
Application
,并且它位于basePath
Application\u路径中/助手“

如果我尝试:

new Application_Menu_Primary();
ZF应该在
应用程序路径中找到它/helpers/menus/Primary.php'
。你真的想在那里找到文件吗?我猜不是。此外,尝试以下操作:
Application\u Controller\u Plugin\u Acl
将永远不会被包括在内,因为您缺少资源类型
Controller\u Plugin
及其
Application\u路径中的目录/助手的
(我怀疑您是否需要)

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

/library/Application/Controller/Plugin/Acl.php
/library/Application/Form/
...etc
然后,您需要通过index.PHP将
/library
路径添加到PHP include\u路径。(我以为这是标准的)

最后,将
应用程序
命名空间添加到
应用程序.ini

autoloaderNamespaces.app = 'Application'

那应该会解决你的问题。我建议你多了解一下这门课的目的。

哇!布雷迪,谢谢!我使用Zend工具创建了这个项目,所以对于结构的设置我有很多不知道的地方。这真的很有帮助。我一下车就去试试。
autoloaderNamespaces.app = 'Application'