Zend framework 原则CLI:注册新的自定义任务

Zend framework 原则CLI:注册新的自定义任务,zend-framework,doctrine,doctrine-1.2,Zend Framework,Doctrine,Doctrine 1.2,我使用的是信条1.2和ZF 1.10。我的Doctrine CLI设置很好,可以执行默认任务。但是我已经创建了几个类,我希望能够从命令行执行它们。如何设置application.ini或doctor.php来注册和使用这些新类?例如,我希望能够执行应用程序路径。“/job/Migrate.php”,它只是一个Migrate()类,有一个公共方法run(),类似 php.exe doctrine custom-migrate my application.ini的代码片段 [production

我使用的是信条1.2和ZF 1.10。我的Doctrine CLI设置很好,可以执行默认任务。但是我已经创建了几个类,我希望能够从命令行执行它们。如何设置application.ini或doctor.php来注册和使用这些新类?例如,我希望能够执行应用程序路径。“/job/Migrate.php”,它只是一个Migrate()类,有一个公共方法run(),类似

php.exe doctrine custom-migrate
my application.ini的代码片段

[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../lib"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
resources.frontController.controllerDirectory = APPLICATION_PATH "/modules/default/controllers"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
autoloaderNamespaces[] = "Doctrine"

; ---
; Database
; ---

doctrine.dsn = "mysql://user@pwd@localhost/db_name"
doctrine.data_fixtures_path = APPLICATION_PATH "/configs/data/fixtures"
doctrine.sql_path           = APPLICATION_PATH "/configs/data/sql"
doctrine.migrations_path    = APPLICATION_PATH "/configs/migrations"
doctrine.yaml_schema_path   = APPLICATION_PATH "/configs/schema.yml"
doctrine.models_path        = APPLICATION_PATH "/models" 

doctrine.generate_models_options.pearStyle = true
doctrine.generate_models_options.generateTableClasses = false
doctrine.generate_models_options.generateBaseClasses = true
doctrine.generate_models_options.baseClassPrefix = "Base_"
doctrine.generate_models_options.baseClassesDirectory = 
doctrine.generate_models_options.classPrefixFiles = false
doctrine.generate_models_options.classPrefix = "Model_"
my doctrine.php的片段

// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV, 
    APPLICATION_PATH . '/configs/application.ini'
);
$application->getBootstrap()->bootstrap('doctrine');
$config = $application->getOption('doctrine');  
$cli = new Doctrine_Cli($config);
$cli->run($_SERVER['argv']);

通过
application.ini
的选项,恐怕这是不可能的。这里最简单的解决方案是扩展执行Cli任务的Cli

最简单并不意味着最好

你看过吗


您可以创建自定义的Zend工具提供程序。

我正在观看这个ZC,它可能会满足我的需要。它是关于在应用程序中使用Zend_工具的。