0

Zend では、次のディレクトリ構造を採用することにしました。

application
    doctrine
        models
            base
        schema
        //other Doctrine directories
    controllers
    models
    services
    views

そして、Doctrine_Cli の設定オプションとしてこれを設定しました:

doctrine.cli_options.models_path = APPLICATION_PATH "/doctrine/models/"
doctrine.cli_options.data_fixtures_path = APPLICATION_PATH "/doctrine/data/fixtures"
doctrine.cli_options.sql_path = APPLICATION_PATH "/doctrine/data/sql"
doctrine.cli_options.yaml_schema_path = APPLICATION_PATH "/doctrine/schema"
doctrine.cli_options.migrations_path = APPLICATION_PATH "/doctrine/migrations"
doctrine.cli_options.generate_models_options.generateTableClasses = true
doctrine.cli_options.generate_models_options.generateBaseClasses = true
doctrine.cli_options.generate_models_options.pearStyle = true
doctrine.cli_options.generate_models_options.baseClassPrefix = 'Base_'
doctrine.cli_options.generate_models_options.baseClassName = 'Doctrine_Record'
doctrine.cli_options.generate_models_options.baseClassesDirectory = ''
doctrine.cli_options.generate_models_options.classrefixFiles = false 
doctrine.cli_options.generate_models_options.classPrefix = 'Application_Doctrine_Model_'

また、アプリケーション名前空間にリソースを追加して、Application_Doctrine_Model_*ファイルをロードしますapplication/doctrine/models

私の問題は、生成されたモデルが意図したプレフィックスで作成されたにもかかわらず、それらがapplication/doctrine/models/base独自のApplication/ ..サブディレクトリの下のディレクトリの下に生成されることです。

結果はapplication/doctrine/models/Application/Doctrine/Models/...であるため、Zend のリソース オートローダーはそれらを見つけることができません。

Doctrine_Cliモデルapplication/doctrine/modelsを生成するが、新しいApplication/ ..PEAR スタイルのサブディレクトリを生成しないように指定するための構成オプションはありますか?

4

1 に答える 1

1

に変更classPrefixします:

doctrine.cli_options.generate_models_options.classPrefix = 'Model_'

にタイプミスがありますclassrefixFiles

doctrine.cli_options.generate_models_options.classPrefixFiles = false 

生成されたモデルをロードするには、bootstrap.php でこの構造を使用します

public function _initLoaders()
{
    new Zend_Application_Module_Autoloader(array(
        'basePath'  => APPLICATION_PATH,
        'namespace' => ''
    ));
}
于 2012-04-05T12:02:09.530 に答える