* @link http://www.yiiframework.com/ * @copyright Copyright © 2008-2009 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 * @since 1.0.3 */ class ModuleCommand extends CConsoleCommand { /** * @var string the template file for the controller class. * Defaults to null, meaning using 'framework/cli/views/shell/controller/controller.php'. */ public $templateFile; 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 command line parameters specific for this command */ public function run($args) { if(!isset($args[0])) { echo "Error: module ID is required.\n"; echo $this->getHelp(); return; } $moduleID=$args[0]; $moduleClass=ucfirst($moduleID).'Module'; $modulePath=Yii::app()->getModulePath().DIRECTORY_SEPARATOR.$moduleID; $sourceDir=realpath(dirname(__FILE__).'/../../views/shell/module'); if($sourceDir===false) die('Unable to locate the source directory.'); $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); $list[$moduleClass.'.php']=$list['module.php']; unset($list['module.php']); $this->copyFiles($list); echo <<renderFile($source,$params,true); } }