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
,并且它位于basePathApplication\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'