0

PHP 5.3 と Zend Framework 1.11.7 を使用して PHP アプリケーションを作成しています。

次のコマンドを使用してモデル リソースを作成しました。

protected function _initLoader() 
{

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

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

今では、それで始まるクラス名を使用するたびDefault_Model_に、models ディレクトリに移動して検索します。models ディレクトリの下に mapper というディレクトリがあります。

Default_Model_Mapper_models/mapper から自動ロードするために始まるクラスが使用されているときはいつでも、どのように設定できますか?

4

3 に答える 3

1

ZFは、モデルの下にあるディレクトリを自動的に検出する必要があります。また、デフォルトのモジュールを含める必要もありません。

Model_
Model_Mapper_

また、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;
    }

これがお役に立てば幸いです

敬具

ギャリー

于 2011-06-18T15:15:51.017 に答える
1

これを追加します:

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

2 つのリソース タイプを宣言する順序が重要になる場合があります。両方の方法で試してください。それらの1つが機能するはずです。

于 2011-06-18T15:38:19.293 に答える
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',
            ),
....
于 2011-11-10T08:25:15.567 に答える