完善Build类 开放module创建模块方法为公共方法

This commit is contained in:
thinkphp
2016-04-01 20:05:35 +08:00
parent 29a5fa9350
commit e254999245

View File

@@ -12,7 +12,8 @@ namespace think;
class Build class Build
{ {
public static function run($build) // 根据传入的build资料创建目录和文件
public static function run($build = [])
{ {
// 锁定 // 锁定
$lockfile = APP_PATH . 'build.lock'; $lockfile = APP_PATH . 'build.lock';
@@ -30,7 +31,7 @@ class Build
self::buildFile($list); self::buildFile($list);
} else { } else {
// 创建模块 // 创建模块
self::buildModule($module, $list); self::module($module, $list);
} }
} }
// 解除锁定 // 解除锁定
@@ -63,7 +64,7 @@ class Build
} }
// 创建模块 // 创建模块
protected static function buildModule($module, $list) public static function module($module = '', $list = [])
{ {
$module = APP_MULTI_MODULE ? $module : ''; $module = APP_MULTI_MODULE ? $module : '';
if (!is_dir(APP_PATH . $module)) { if (!is_dir(APP_PATH . $module)) {
@@ -76,6 +77,13 @@ class Build
// 创建模块的默认页面 // 创建模块的默认页面
self::buildHello($module); self::buildHello($module);
} }
if (empty($list)) {
// 创建默认的模块目录和文件
$list = [
'__file__' => ['config.php', 'common.php'],
'__dir__' => ['controller', 'model', 'view'],
];
}
// 创建子目录和文件 // 创建子目录和文件
foreach ($list as $path => $file) { foreach ($list as $path => $file) {
$modulePath = APP_PATH . $module . DS; $modulePath = APP_PATH . $module . DS;
@@ -128,7 +136,7 @@ class Build
} }
} }
// 创建欢迎页面 // 创建模块的欢迎页面
protected static function buildHello($module) protected static function buildHello($module)
{ {
$filename = APP_PATH . ($module ? $module . DS : '') . CONTROLLER_LAYER . DS . 'Index' . (CLASS_APPEND_SUFFIX ? ucfirst(CONTROLLER_LAYER) : '') . EXT; $filename = APP_PATH . ($module ? $module . DS : '') . CONTROLLER_LAYER . DS . 'Index' . (CLASS_APPEND_SUFFIX ? ucfirst(CONTROLLER_LAYER) : '') . EXT;
@@ -142,12 +150,16 @@ class Build
} }
} }
// 创建模块公共文件 // 创建模块公共文件
protected static function buildCommon($module) protected static function buildCommon($module)
{ {
$filename = APP_PATH . ($module ? $module . DS : '') . 'config.php'; $filename = APP_PATH . ($module ? $module . DS : '') . 'config.php';
if (!is_file($filename)) { if (!is_file($filename)) {
file_put_contents($filename, "<?php\nreturn [\n\n];"); file_put_contents($filename, "<?php\nreturn [\n\n];");
} }
$filename = APP_PATH . ($module ? $module . DS : '') . 'common.php';
if (!is_file($filename)) {
file_put_contents($filename, "<?php\n;");
}
} }
} }