Fleshed out cli system and added one sample task.
This commit is contained in:
parent
b930116218
commit
e80876ccf3
@ -31,4 +31,24 @@
|
||||
* @author Jonathan H. Wage <jwage@mac.com>
|
||||
*/
|
||||
class Doctrine_Cli
|
||||
{ }
|
||||
{
|
||||
public function run($args)
|
||||
{
|
||||
if (!isset($args[1])) {
|
||||
throw new Doctrine_Cli_Exception('You must specify the task to execute');
|
||||
}
|
||||
|
||||
unset($args[0]);
|
||||
$taskName = $args[1];
|
||||
unset($args[1]);
|
||||
|
||||
$taskClass = 'Doctrine_Cli_Task_' . Doctrine::classify($taskName);
|
||||
|
||||
if (class_exists($taskClass)) {
|
||||
$taskInstance = new $taskClass();
|
||||
$taskInstance->execute($args);
|
||||
} else {
|
||||
throw new Doctrine_Cli_Exception('Cli task could not be found: '.$taskClass);
|
||||
}
|
||||
}
|
||||
}
|
34
lib/Doctrine/Cli/Exception.php
Normal file
34
lib/Doctrine/Cli/Exception.php
Normal file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
/*
|
||||
* $Id: Exception.php 2761 2007-10-07 23:42:29Z zYne $
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the LGPL. For more information, see
|
||||
* <http://www.phpdoctrine.com>.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Doctrine_Cli_Exception
|
||||
*
|
||||
* @package Doctrine
|
||||
* @subpackage Cli
|
||||
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||
* @link www.phpdoctrine.com
|
||||
* @since 1.0
|
||||
* @version $Revision: 2761 $
|
||||
* @author Jonathan H. Wage <jwage@mac.com>
|
||||
*/
|
||||
class Doctrine_Cli_Exception extends Doctrine_Exception
|
||||
{ }
|
@ -30,5 +30,7 @@
|
||||
* @version $Revision: 2761 $
|
||||
* @author Jonathan H. Wage <jwage@mac.com>
|
||||
*/
|
||||
class Doctrine_Cli_Task
|
||||
{ }
|
||||
abstract class Doctrine_Cli_Task
|
||||
{
|
||||
abstract function execute($args);
|
||||
}
|
44
lib/Doctrine/Cli/Task/Test.php
Normal file
44
lib/Doctrine/Cli/Task/Test.php
Normal file
@ -0,0 +1,44 @@
|
||||
<?php
|
||||
/*
|
||||
* $Id: Task.php 2761 2007-10-07 23:42:29Z zYne $
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the LGPL. For more information, see
|
||||
* <http://www.phpdoctrine.com>.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Doctrine_Cli_Test_Task
|
||||
*
|
||||
* @package Doctrine
|
||||
* @subpackage Cli
|
||||
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||
* @link www.phpdoctrine.com
|
||||
* @since 1.0
|
||||
* @version $Revision: 2761 $
|
||||
* @author Jonathan H. Wage <jwage@mac.com>
|
||||
*/
|
||||
class Doctrine_Cli_Task_Test
|
||||
{
|
||||
public function execute($args)
|
||||
{
|
||||
$count = 0;
|
||||
foreach ($args as $arg) {
|
||||
$count++;
|
||||
|
||||
echo $count.".) ".$arg."\n";
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user