我刚开始使用Zend Framework 2.0并想加载自己的资源。
我自己的库PWS位于库文件夹中。
要覆盖FrontController资源,我有以下文件 PWS /应用/资源/ FrontController.php
<?php
namespace PWS\Application\Resource;
class FrontController extends \Zend\Application\Resource\FrontController
{
public function init()
{
return parent::init()
}
}
在我的application.ini中,我有以下相关内容:
autoLoaderNamespaces.PWS = APPLICATION_PATH "/../library/PWS"
pluginPaths.PWS\Application\Resource\ = APPLICATION_PATH "/../library/PWS/Application/Resource"
该项目使用模块,但我认为这不会影响问题。
当我调试类ResourceLoader(包含资源的硬编码路径)时,用于加载FrontController而不是我自己的资源。
这不紧急但令人讨厌:))
答案 0 :(得分:0)
资源区分大小写吗?我知道它是“Frontcontroller”而不是“FrontController” 也许试一试?在这里没有其他的东西......:]
(这是我对ZF1的经验,而不是2)
答案 1 :(得分:0)
经过一些痛苦的调试后,我发现了一种加载自定义资源的方法。
在我的bootstrap文件中,我插入了以下函数:
function _initResources()
{
$broker = $this->getBroker();
$broker->getClassLoader()->registerPlugin('frontcontroller', 'PWS\Application\Resource\FrontController');
}
这将使用我自己的类替换ResourceLoader中的硬编码前控制器路径。
这仍然不是我想要的,因为这样我无法从我自己的资源名称空间一次加载所有资源。而application.ini中的pluginPaths变量不起作用。但这种方式更快,因为Zend不必遍历目录来找到合适的类。
想想我必须等待包含一些文档的ZF2版本。