diff options
Diffstat (limited to 'framework/console/CHelpCommand.php')
| -rw-r--r-- | framework/console/CHelpCommand.php | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/framework/console/CHelpCommand.php b/framework/console/CHelpCommand.php new file mode 100644 index 0000000..0d45419 --- /dev/null +++ b/framework/console/CHelpCommand.php @@ -0,0 +1,75 @@ +<?php +/** + * CHelpCommand class file. + * + * @author Qiang Xue <qiang.xue@gmail.com> + * @link http://www.yiiframework.com/ + * @copyright Copyright © 2008-2011 Yii Software LLC + * @license http://www.yiiframework.com/license/ + */ + +/** + * CHelpCommand represents a console help command. + * + * CHelpCommand displays the available command list or the help instructions + * about a specific command. + * + * To use this command, enter the following on the command line: + * <pre> + * php path/to/entry_script.php help [command name] + * </pre> + * In the above, if the command name is not provided, it will display all + * available commands. + * + * @property string $help The command description. + * + * @author Qiang Xue <qiang.xue@gmail.com> + * @version $Id: CHelpCommand.php 3426 2011-10-25 00:01:09Z alexander.makarow $ + * @package system.console + * @since 1.0 + */ +class CHelpCommand extends CConsoleCommand +{ + /** + * Execute the action. + * @param array $args command line parameters specific for this command + */ + public function run($args) + { + $runner=$this->getCommandRunner(); + $commands=$runner->commands; + if(isset($args[0])) + $name=strtolower($args[0]); + if(!isset($args[0]) || !isset($commands[$name])) + { + if(!empty($commands)) + { + echo "Yii command runner (based on Yii v".Yii::getVersion().")\n"; + echo "Usage: ".$runner->getScriptName()." <command-name> [parameters...]\n"; + echo "\nThe following commands are available:\n"; + $commandNames=array_keys($commands); + sort($commandNames); + echo ' - '.implode("\n - ",$commandNames); + echo "\n\nTo see individual command help, use the following:\n"; + echo " ".$runner->getScriptName()." help <command-name>\n"; + } + else + { + echo "No available commands.\n"; + echo "Please define them under the following directory:\n"; + echo "\t".Yii::app()->getCommandPath()."\n"; + } + } + else + echo $runner->createCommand($name)->getHelp(); + } + + /** + * Provides the command description. + * @return string the command description. + */ + public function getHelp() + { + return parent::getHelp().' [command-name]'; + } +}
\ No newline at end of file |
