2011-12-04 82 views
1

我無法理解一些奇怪的東西。 我的文件夾結構:Zend Framework怪類加載

application/ 
    controllers/ 
    forms/ 
    models/ 
    views/ 

我添加服務文件夾 '模型' 文件夾,並在其中創建文件:

models/ 
    Service/ 
    User.php 

型號/服務/ user.php的:

<?php 

    class Model_Service_User {} 

在IndexController中(用於測試):

.... 
$test = new Model_Service_User; // It's works 
.... 

但我不明白爲什麼,如果我添加 '映射' 文件夾 '服務' 之一,它不工作..

models/ 
    Mapper/ 
    User.php 

模型/映射器/ user.php的:

<?php 

    class Model_Mapper_User {} 

而在IndexController中:

.... 
$test = new Model_Mapper_User; // Fatal error: Class 'Model_Mapper_User' not found 
.... 

我嘗試創建其它文件夾,如「地圖」,「地圖」等,他們的工作正常。但是Mapper出了什麼問題呢?

+0

模型/ Service/User.php在哪裏? – Greg

回答

4

這是因爲在Zend_Application_Module_Autoloader中已經定義了Model_Mapper的資源自動裝載機定義。

自動加載器在/models/mappers中查找這些類文件。

如果你想刪除此映射,您Bootstrap類,試試這個...

protected function _initResourceAutoloader() 
{ 
    $autoloader = $this->getResourceLoader(); 
    $autoloader->removeResourceType('mappers'); 
} 

...或者你可以只是把你的映射器在models/mappers