2011-05-17 75 views
0

我刚开始使用Zend Framework 2.0并想加载自己的资源。在Zend Framework中加载自定义资源2

我自己的库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

资源是否区分大小写?我知道它是“Frontcontroller”而不是“FrontController”。
也许试试看?没有多少人去就在这里...:]

(这是我与ZF1的经验,而不是2)

+1

这确实是在ZF1而不是在ZF2(带来更多的框架一致性) – roelio 2011-05-17 20:46:42

+0

很高兴知道,谢谢。 – 2011-05-17 20:51:59

0

一些痛苦的调试后,我发现我的加载自定义资源的方式。

在我的引导文件我插入以下功能:

function _initResources() 
{ 
    $broker = $this->getBroker(); 
    $broker->getClassLoader()->registerPlugin('frontcontroller', 'PWS\Application\Resource\FrontController'); 
} 

这将替换在用我自己的类资源加载的硬编码frontcontroller路径。

这仍然不是我想要的,因为这样我无法从我自己的资源命名空间一次加载所有资源。而application.ini中的pluginPaths变量不能完成这项工作。但是这样更快,因为Zend不必遍历目录来找到合适的类。

认为我必须等待包含一些文档的ZF2版本。