Added new (clean) yii boilerplate
This commit is contained in:
94
framework/gii/generators/module/ModuleCode.php
Normal file
94
framework/gii/generators/module/ModuleCode.php
Normal file
@@ -0,0 +1,94 @@
|
||||
<?php
|
||||
|
||||
class ModuleCode extends CCodeModel
|
||||
{
|
||||
public $moduleID;
|
||||
|
||||
public function rules()
|
||||
{
|
||||
return array_merge(parent::rules(), array(
|
||||
array('moduleID', 'filter', 'filter'=>'trim'),
|
||||
array('moduleID', 'required'),
|
||||
array('moduleID', 'match', 'pattern'=>'/^\w+$/', 'message'=>'{attribute} should only contain word characters.'),
|
||||
));
|
||||
}
|
||||
|
||||
public function attributeLabels()
|
||||
{
|
||||
return array_merge(parent::attributeLabels(), array(
|
||||
'moduleID'=>'Module ID',
|
||||
));
|
||||
}
|
||||
|
||||
public function successMessage()
|
||||
{
|
||||
if(Yii::app()->hasModule($this->moduleID))
|
||||
return 'The module has been generated successfully. You may '.CHtml::link('try it now', Yii::app()->createUrl($this->moduleID), array('target'=>'_blank')).'.';
|
||||
|
||||
$output=<<<EOD
|
||||
<p>The module has been generated successfully.</p>
|
||||
<p>To access the module, you need to modify the application configuration as follows:</p>
|
||||
EOD;
|
||||
$code=<<<EOD
|
||||
<?php
|
||||
return array(
|
||||
'modules'=>array(
|
||||
'{$this->moduleID}',
|
||||
),
|
||||
......
|
||||
);
|
||||
EOD;
|
||||
|
||||
return $output.highlight_string($code,true);
|
||||
}
|
||||
|
||||
public function prepare()
|
||||
{
|
||||
$this->files=array();
|
||||
$templatePath=$this->templatePath;
|
||||
$modulePath=$this->modulePath;
|
||||
$moduleTemplateFile=$templatePath.DIRECTORY_SEPARATOR.'module.php';
|
||||
|
||||
$this->files[]=new CCodeFile(
|
||||
$modulePath.'/'.$this->moduleClass.'.php',
|
||||
$this->render($moduleTemplateFile)
|
||||
);
|
||||
|
||||
$files=CFileHelper::findFiles($templatePath,array(
|
||||
'exclude'=>array(
|
||||
'.svn',
|
||||
'.gitignore'
|
||||
),
|
||||
));
|
||||
|
||||
foreach($files as $file)
|
||||
{
|
||||
if($file!==$moduleTemplateFile)
|
||||
{
|
||||
if(CFileHelper::getExtension($file)==='php')
|
||||
$content=$this->render($file);
|
||||
elseif(basename($file)==='.yii') // an empty directory
|
||||
{
|
||||
$file=dirname($file);
|
||||
$content=null;
|
||||
}
|
||||
else
|
||||
$content=file_get_contents($file);
|
||||
$this->files[]=new CCodeFile(
|
||||
$modulePath.substr($file,strlen($templatePath)),
|
||||
$content
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function getModuleClass()
|
||||
{
|
||||
return ucfirst($this->moduleID).'Module';
|
||||
}
|
||||
|
||||
public function getModulePath()
|
||||
{
|
||||
return Yii::app()->modulePath.DIRECTORY_SEPARATOR.$this->moduleID;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user