Details
-
Type:
Improvement
-
Status:
Closed
-
Priority:
Minor
-
Resolution: Fixed
-
Affects Version/s: 1.1.4
-
Fix Version/s: 1.2.0-ALPHA3
-
Component/s: Cli
-
Labels:None
-
Environment:Darwin, PHP 5.3, MacBook
Description
I'm a fan of the CLI and tasks in Doctrine, but I recently had some trouble registering custom tasks.
Having spent a good while refactoring this weekend, I understand that you can load additional tasks from a particular directory. Unfortunately, the tasks in said directory must follow the Doctrine naming conventions (i.e. they must start "Doctrine_Task").
I'm using Doctrine 1.1.4 on PHP 5.3 and am using namespaces. Ideally, then, I don't want to have to follow the Doctrine naming conventions: I want to be able to use my own.
Here's an example of what I can now do with my patched version:
$cli = new Doctrine_Cli($config);
$cli->registerTask('sakura\installer\doctrine\GenerateModelsDb', 'sakura-generate-models-db');
$cli->run($_SERVER['argv']);
I have also implemented a public loadAndRegisterTask() method that will load a specified file and then register a class.
In refactoring Doctrine_Cli, I've written a test case, Doctrine_Cli_TestCase, which reasonably thoroughly tests the new and some of the old functionality. There's still scope for some more refactoring and testing, but I've got what I need for now.
The enclosed patch was created against the 1.1.4 tag.
Best regards