InitDBController.class.php
1.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
/**
* Created by PhpStorm.
* User: zhonglei
* Date: 17/6/12
* Time: 19:31
*/
namespace Frontend\Controller\Install;
class InitDBController extends AbstractController
{
protected $_require_login = false;
/**
* 初始化数据库
* @author zhonglei
*/
public function Index()
{
$dirs = [];
if (!$handle = opendir(ROOT_PATH)) {
exit('无法读取目录:' . ROOT_PATH);
}
// 读取并过滤ROOT_PATH子目录
while (($file = readdir($handle)) !== false) {
if (is_dir(ROOT_PATH . $file) && !preg_match('/(Apidoc|Common|Demo|ThinkPHP|www)|(\.|_)+/i', $file)) {
$dirs[] = $file;
}
}
closedir($handle);
if (empty($dirs)) {
exit('目录不能为空:' . ROOT_PATH);
}
$db = \Think\Db::getInstance();
foreach ($dirs as $dir) {
if ($dir == 'Website') {
continue;
}
$struc_file = sprintf('%s%s/Common/Sql/structure.php', ROOT_PATH, $dir);
if (!file_exists($struc_file)) {
exit("{$dir}未找到数据结构文件:{$struc_file}");
}
$sql = include($struc_file);
if (empty($sql)) {
continue;
}
try {
$db->execute($sql);
} catch (\Exception $e) {
exit("{$dir}初始化数据结构失败:" . $e->getMessage());
}
// $url = oaUrl('Frontend/Callback/Install', [], '', $dir);
// $result = file_get_contents($url);
//
// if (empty($result) || strtolower($result) != 'success') {
// exit("{$dir}默认数据安装失败");
// }
}
$db->close();
exit('SUCCESS');
}
}