* @link http://www.yiiframework.com/ * @copyright 2008-2013 Yii Software LLC * @license http://www.yiiframework.com/license/ * @version $Id: ModuleCommand.php 433 2008-12-30 22:59:17Z qiang.xue $ */ /** * ModuleCommand generates a controller class. * * @author Qiang Xue * @version $Id: ModuleCommand.php 433 2008-12-30 22:59:17Z qiang.xue $ * @package system.cli.commands.shell */ class ModuleCommand extends CConsoleCommand { /** * @var string the directory that contains templates for the module command. * Defaults to null, meaning using 'framework/cli/views/shell/module'. * If you set this path and some views are missing in the directory, * the default views will be used. */ public $templatePath; public function getHelp() { return << DESCRIPTION This command generates an application module. PARAMETERS * module-ID: required, module ID. It is case-sensitive. EOD; } /** * Execute the action. * @param array $args command line parameters specific for this command * @return integer|null non zero application exit code for help or null on success */ public function run($args) { if(!isset($args[0])) { echo "Error: module ID is required.\n"; echo $this->getHelp(); return 1; } $moduleID=$args[0]; $moduleClass=ucfirst($moduleID).'Module'; $modulePath=Yii::app()->getModulePath().DIRECTORY_SEPARATOR.$moduleID; $sourceDir=$this->templatePath===null?YII_PATH.'/cli/views/shell/module':$this->templatePath; $list=$this->buildFileList($sourceDir,$modulePath); $list['module.php']['target']=$modulePath.DIRECTORY_SEPARATOR.$moduleClass.'.php'; $list['module.php']['callback']=array($this,'generateModuleClass'); $list['module.php']['params']=array( 'moduleClass'=>$moduleClass, 'moduleID'=>$moduleID, ); $list[$moduleClass.'.php']=$list['module.php']; unset($list['module.php']); $this->copyFiles($list); echo <<renderFile($source,$params,true); } }