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);
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.