// +---------------------------------------------------------------------- namespace think; class Create { public static function build($build) { // 锁定 $lockfile = APP_PATH . 'create.lock'; if (is_writable($lockfile)) { return; } else { if (!touch($lockfile)) { throw new Exception('目录 [ ' . APP_PATH . ' ] 不可写!'); } } foreach ($build as $module => $list) { if ('__dir__' == $module) { // 创建目录列表 self::buildDir($list); } elseif ('__file__' == $module) { // 创建文件列表 self::buildFile($list); } else { // 创建模块 self::buildModule($module, $list); } } // 解除锁定 unlink($lockfile); } // 创建目录 protected static function buildDir($list) { foreach ($list as $dir) { if (!is_dir(APP_PATH . $dir)) { // 创建目录 mkdir(APP_PATH . $dir, 0777, true); } } } // 创建文件 protected static function buildFile($list) { foreach ($list as $file) { if (!is_dir(APP_PATH . dirname($file))) { // 创建目录 mkdir(APP_PATH . dirname($file), 0777, true); } if (!is_file(APP_PATH . $file)) { file_put_contents(APP_PATH . $file, ''); } } } // 创建模块 protected static function buildModule($module, $list) { if (!is_dir(APP_PATH . $module)) { // 创建模块目录 mkdir(APP_PATH . $module); } if ('runtime' != $module) { // 创建配置文件和公共文件 self::buildCommon($module); // 创建模块的默认页面 self::buildHello($module); } // 创建子目录和文件 foreach ($list as $path => $file) { $modulePath = APP_PATH . $module . DS; if ('__dir__' == $path) { // 生成子目录 foreach ($file as $dir) { if (!is_dir($modulePath . $dir)) { // 创建目录 mkdir($modulePath . $dir, 0777, true); } } } elseif ('__file__' == $path) { // 生成(空白)文件 foreach ($file as $name) { if (!is_file($modulePath . $name)) { file_put_contents($modulePath . $name, ''); } } } else { // 生成相关MVC文件 foreach ($file as $val) { $filename = $modulePath . $path . DS . Loader::parseName($val) . EXT; switch ($path) { case CONTROLLER_LAYER: // 控制器 $content = "