Php 在Zend Framework 2中加载自定义资源
我刚开始使用Zend Framework 2.0,希望加载我自己的资源 我自己的库PWS位于库文件夹中 要覆盖FrontController资源,我有以下文件 PWS/Application/Resource/FrontController.phpPhp 在Zend Framework 2中加载自定义资源,php,zend-framework2,Php,Zend Framework2,我刚开始使用Zend Framework 2.0,希望加载我自己的资源 我自己的库PWS位于库文件夹中 要覆盖FrontController资源,我有以下文件 PWS/Application/Resource/FrontController.php <?php namespace PWS\Application\Resource; class FrontController extends \Zend\Application\Resource\FrontController {
<?php
namespace PWS\Application\Resource;
class FrontController extends \Zend\Application\Resource\FrontController
{
public function init()
{
return parent::init()
}
}
该项目使用模块,但我认为这不会影响问题
当我调试类ResourceLoader(包含资源的硬编码路径)时,它被用来加载FrontController而不是我自己的资源
这不是紧急的,而是烦人的:)资源是否区分大小写?我知道这是“Frontcontroller”而不是“Frontcontroller”。
也许可以试一试?这里没有什么其他内容……:]
(这是我使用ZF1的经验,而不是2)经过一些痛苦的调试后,我找到了加载自定义资源的方法 在我的引导文件中,我插入了以下函数:
function _initResources()
{
$broker = $this->getBroker();
$broker->getClassLoader()->registerPlugin('frontcontroller', 'PWS\Application\Resource\FrontController');
}
这将用我自己的类替换ResourceLoader中硬编码的frontcontroller路径
这仍然不是我想要的,因为这样我无法从自己的资源名称空间一次加载所有资源。application.ini中的pluginPaths变量不起作用。但是这种方法更快,因为Zend不必遍历目录来找到正确的类
我想我必须等待ZF2版本,它包含一些文档。这在ZF1中确实如此,而不是在ZF2中(为框架带来更多一致性)
function _initResources()
{
$broker = $this->getBroker();
$broker->getClassLoader()->registerPlugin('frontcontroller', 'PWS\Application\Resource\FrontController');
}