2011-06-18 13 views
0

PHP 5.3とZend Framework 1.11.7を使用してPHPアプリケーションを作成しています。私はそれが行くとモデルディレクトリ内の検索Default_Model_で始まるクラス名を使用するたびに、今addResourceType - 私はリソースとしてModels_Mapperを追加できますか?

protected function _initLoader() 
{ 

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

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

は、私は、次のコマンドを使用してモデルリソースを作成しました。 modelsディレクトリの下にはmapperというディレクトリがあります。

モデル/マッパーから自動ロードするためにDefault_Model_Mapper_で始まるクラスが使用されているときに、どのように設定すればよいですか?

答えて

1

ZFは、モデルの下の任意のディレクトリを自動的に検出する必要があります。また、デフォルトモジュールを含める必要もありません。私は、ブートストラップの私のapplication.iniファイルに次のコード2行

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; 
    } 

私はこれがあると思いを持って、セットアップZFモジュールにも

Model_ 
Model_Mapper_ 

いくつかの助けの

種類について

ギャリー

1

この1を追加します。

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

あなたは、2つのリソースタイプは問題かもしれない宣言する順序を。それで両方の方法で試してみてください。そのうちの1人は働くはずです。

1

それはinitDefaultResourceTypesにZend_Application_Module_Autoloaderにデフォルトで設定されています

$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', 
      ), 
.... 
関連する問題