2011-06-18 71 views
0

我正在編寫一個PHP應用程序,使用 PHP 5.3和Zend Framework 1.11.7。addResourceType - 如何將Models_Mapper添加爲資源?

我創建使用下面的命令模型資源:

protected function _initLoader() 
{ 

    $loader = new Zend_Application_Module_Autoloader(array(
     'namespace' => 'Default', 
     'basePath' => APPLICATION_PATH, 
    )); 

    $loader -> addResourceType ('model', 'models', 'Model'); 
} 

現在每當我使用與Default_Model_開始它去和型號目錄搜索類名。在models目錄下,我有一個名爲mapper的目錄。

我該如何配置每當使用以Default_Model_Mapper_開頭的類從models/mapper自動加載它時?

回答

1

ZF應自動在模型下找到任何目錄。你也不需要包含默認模塊。

Model_ 
Model_Mapper_ 

還設置ZF模塊我有以下兩行代碼在我的application.ini文件

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" 
resources.modules[] = 

而在我的引導下面

protected function _initModuleAutoload() 
    { 
     $modelLoader = new Zend_Application_Module_Autoloader(array(
       'namespace' => '', 
       'basePath' => APPLICATION_PATH . '/modules/default')); 
     return $modelLoader; 
    } 

我希望這是的一些幫助

親切的問候

加里

1

添加這樣一條:

$loader->addResourceType('mapper', 'models/mapper', 'Model_Mapper_');

中聲明瞭兩種資源類型可能事情的順序。所以請嘗試兩種方式;其中一個應該工作。

1

它在默認情況Zend_Application_Module_Autoloader在initDefaultResourceTypes設置:

$this->addResourceTypes(array(
      'dbtable' => array(
       'namespace' => 'Model_DbTable', 
       'path'  => 'models/DbTable', 
      ), 
      'mappers' => array(
       'namespace' => 'Model_Mapper', 
       'path'  => 'models/mappers', 
      ), 
      'form' => array(
       'namespace' => 'Form', 
       'path'  => 'forms', 
      ), 
....