|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* HelpController class file.
|
|
|
|
*
|
|
|
|
* @link http://www.yiiframework.com/
|
|
|
|
* @copyright Copyright © 2008-2012 Yii Software LLC
|
|
|
|
* @license http://www.yiiframework.com/license/
|
|
|
|
*/
|
|
|
|
|
|
|
|
namespace yii\console\commands;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* HelpCommand represents a console help command.
|
|
|
|
*
|
|
|
|
* HelpCommand displays the available command list or the help instructions
|
|
|
|
* about a specific command.
|
|
|
|
*
|
|
|
|
* To use this command, enter the following on the command line:
|
|
|
|
*
|
|
|
|
* ~~~
|
|
|
|
* yiic help [command name]
|
|
|
|
* ~~~
|
|
|
|
*
|
|
|
|
* 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>
|
|
|
|
* @since 2.0
|
|
|
|
*/
|
|
|
|
class HelpController extends \yii\console\Controller
|
|
|
|
{
|
|
|
|
public function actionIndex($args = array())
|
|
|
|
{
|
|
|
|
echo "Yii console command helper (based on Yii v" . \Yii::getVersion() . ").\n";
|
|
|
|
$commands = $this->getCommands();
|
|
|
|
if ($commands !== array()) {
|
|
|
|
echo "\n Usage: yiic <command-name> [...options...]\n\n";
|
|
|
|
echo "The following commands are available:\n";
|
|
|
|
foreach ($commands as $command) {
|
|
|
|
echo " - $command\n";
|
|
|
|
}
|
|
|
|
echo "\nTo see individual command help, enter:\n";
|
|
|
|
echo "\n yiic help <command-name>\n";
|
|
|
|
} else {
|
|
|
|
echo "\nNo commands are found.\n";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
protected function getCommands()
|
|
|
|
{
|
|
|
|
$commands = $this->getModuleCommands(\Yii::$application);
|
|
|
|
sort($commands);
|
|
|
|
return array_unique($commands);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param \yii\base\Module $module
|
|
|
|
* @return array
|
|
|
|
*/
|
|
|
|
protected function getModuleCommands($module)
|
|
|
|
{
|
|
|
|
if ($module === null) {
|
|
|
|
return array();
|
|
|
|
}
|
|
|
|
|
|
|
|
$commands = array_keys($module->controllers);
|
|
|
|
|
|
|
|
foreach ($module->getModules() as $id => $module) {
|
|
|
|
foreach ($this->getModuleCommands($module->getModule($id)) as $command) {
|
|
|
|
$commands[] = $command;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$files = scandir($module->getControllerPath());
|
|
|
|
foreach ($files as $file) {
|
|
|
|
if(strcmp(substr($file,-14),'Controller.php') === 0 && is_file($file)) {
|
|
|
|
$commands[] = lcfirst(substr(basename($file), 0, -14));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return $commands;
|
|
|
|
}
|
|
|
|
}
|