protected function checkIndex($appinfo) { if (file_exists($appinfo['BASE_DIR'])) { if (!is_dir($appinfo['BASE_DIR']) || !is_writable($appinfo['BASE_DIR'])) { $this->error[] = "项目目录不可写入:" . $appinfo['BASE_DIR']; } } else { mkdir($appinfo['BASE_DIR'], 0777, true); } chdir($appinfo['BASE_DIR']); $app_basepath = realpath(dirname($appinfo['APP_PATH'])); if (!$app_basepath) { $this->error[] = "无法创建目录:" . $appinfo['APP_PATH'] . ",大概它的父目录不存在。"; } elseif (!is_writable($app_basepath)) { $this->error[] = "无法创建目录:" . $appinfo['APP_PATH'] . ",大概{$app_basepath}的权限不足。"; } if (!is_file($appinfo['THINK_PATH'] . 'ThinkPHP.php')) { $this->error[] = "无法找到框架核心文件,‘项目目录’和‘THINK_PATH’之一填错鸟..."; } if (!CheckConfig::isBool($appinfo['APP_DEBUG'])) { $this->error[] = "APP_DEBUG需要布尔值true或false"; } if (!CheckConfig::isWord($appinfo['APP_NAME'])) { $this->error[] = "APP_NAME 只允许英文字符数字和下划线"; } if (is_file($appinfo['INDEX_FILE'])) { $this->error[] = "入口文件已存在"; } if (is_dir($appinfo['APP_PATH'] . "Lib")) { $this->error[] = "项目目录似乎已存在,请更改目录"; } if (!CheckConfig::isFile($appinfo['INDEX_FILE'])) { $this->error[] = "入口文件 只允许英文字符、数字、点和下划线,不允许数字开头"; } if (!CheckConfig::isChars($appinfo['project'])) { $this->error[] = "项目命名不允许特殊字符"; } chdir(APP_PATH); if ($this->error) { return false; } return true; }