server 3 年之前
父節點
當前提交
227fac6b32

+ 1 - 0
.example.env

@@ -0,0 +1 @@
1
+APP_DEBUG = true

[APP]
DEFAULT_TIMEZONE = Asia/Shanghai

[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = test
USERNAME = username
PASSWORD = password
HOSTPORT = 3306
CHARSET = utf8
DEBUG = true

[LANG]
default_lang = zh-cn

+ 5 - 0
.gitignore

@@ -0,0 +1,5 @@
1
+/.idea
2
+/.vscode
3
+/vendor
4
+*.log
5
+.env

File diff suppressed because it is too large
+ 42 - 0
.travis.yml


+ 32 - 0
LICENSE.txt

@@ -0,0 +1,32 @@
1
+
2
+ThinkPHP遵循Apache2开源协议发布,并提供免费使用。
3
+版权所有Copyright © 2006-2016 by ThinkPHP (http://thinkphp.cn)
4
+All rights reserved。
5
+ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。
6
+
7
+Apache Licence是著名的非盈利开源组织Apache采用的协议。
8
+该协议和BSD类似,鼓励代码共享和尊重原作者的著作权,
9
+允许代码修改,再作为开源或商业软件发布。需要满足
10
+的条件: 
11
+1. 需要给代码的用户一份Apache Licence ;
12
+2. 如果你修改了代码,需要在被修改的文件中说明;
13
+3. 在延伸的代码中(修改和有源代码衍生的代码中)需要
14
+带有原来代码中的协议,商标,专利声明和其他原来作者规
15
+定需要包含的说明;
16
+4. 如果再发布的产品中包含一个Notice文件,则在Notice文
17
+件中需要带有本协议内容。你可以在Notice中增加自己的
18
+许可,但不可以表现为对Apache Licence构成更改。 
19
+具体的协议参考:http://www.apache.org/licenses/LICENSE-2.0
20
+
21
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32
+POSSIBILITY OF SUCH DAMAGE.

+ 1 - 0
app/.htaccess

@@ -0,0 +1 @@
1
+deny from all

+ 22 - 0
app/AppService.php

@@ -0,0 +1,22 @@
1
+<?php
2
+declare (strict_types = 1);
3
+
4
+namespace app;
5
+
6
+use think\Service;
7
+
8
+/**
9
+ * 应用服务类
10
+ */
11
+class AppService extends Service
12
+{
13
+    public function register()
14
+    {
15
+        // 服务注册
16
+    }
17
+
18
+    public function boot()
19
+    {
20
+        // 服务启动
21
+    }
22
+}

+ 94 - 0
app/BaseController.php

@@ -0,0 +1,94 @@
1
+<?php
2
+declare (strict_types = 1);
3
+
4
+namespace app;
5
+
6
+use think\App;
7
+use think\exception\ValidateException;
8
+use think\Validate;
9
+
10
+/**
11
+ * 控制器基础类
12
+ */
13
+abstract class BaseController
14
+{
15
+    /**
16
+     * Request实例
17
+     * @var \think\Request
18
+     */
19
+    protected $request;
20
+
21
+    /**
22
+     * 应用实例
23
+     * @var \think\App
24
+     */
25
+    protected $app;
26
+
27
+    /**
28
+     * 是否批量验证
29
+     * @var bool
30
+     */
31
+    protected $batchValidate = false;
32
+
33
+    /**
34
+     * 控制器中间件
35
+     * @var array
36
+     */
37
+    protected $middleware = [];
38
+
39
+    /**
40
+     * 构造方法
41
+     * @access public
42
+     * @param  App  $app  应用对象
43
+     */
44
+    public function __construct(App $app)
45
+    {
46
+        $this->app     = $app;
47
+        $this->request = $this->app->request;
48
+
49
+        // 控制器初始化
50
+        $this->initialize();
51
+    }
52
+
53
+    // 初始化
54
+    protected function initialize()
55
+    {}
56
+
57
+    /**
58
+     * 验证数据
59
+     * @access protected
60
+     * @param  array        $data     数据
61
+     * @param  string|array $validate 验证器名或者验证规则数组
62
+     * @param  array        $message  提示信息
63
+     * @param  bool         $batch    是否批量验证
64
+     * @return array|string|true
65
+     * @throws ValidateException
66
+     */
67
+    protected function validate(array $data, $validate, array $message = [], bool $batch = false)
68
+    {
69
+        if (is_array($validate)) {
70
+            $v = new Validate();
71
+            $v->rule($validate);
72
+        } else {
73
+            if (strpos($validate, '.')) {
74
+                // 支持场景
75
+                [$validate, $scene] = explode('.', $validate);
76
+            }
77
+            $class = false !== strpos($validate, '\\') ? $validate : $this->app->parseClass('validate', $validate);
78
+            $v     = new $class();
79
+            if (!empty($scene)) {
80
+                $v->scene($scene);
81
+            }
82
+        }
83
+
84
+        $v->message($message);
85
+
86
+        // 是否批量验证
87
+        if ($batch || $this->batchValidate) {
88
+            $v->batch(true);
89
+        }
90
+
91
+        return $v->failException(true)->check($data);
92
+    }
93
+
94
+}

+ 58 - 0
app/ExceptionHandle.php

@@ -0,0 +1,58 @@
1
+<?php
2
+namespace app;
3
+
4
+use think\db\exception\DataNotFoundException;
5
+use think\db\exception\ModelNotFoundException;
6
+use think\exception\Handle;
7
+use think\exception\HttpException;
8
+use think\exception\HttpResponseException;
9
+use think\exception\ValidateException;
10
+use think\Response;
11
+use Throwable;
12
+
13
+/**
14
+ * 应用异常处理类
15
+ */
16
+class ExceptionHandle extends Handle
17
+{
18
+    /**
19
+     * 不需要记录信息(日志)的异常类列表
20
+     * @var array
21
+     */
22
+    protected $ignoreReport = [
23
+        HttpException::class,
24
+        HttpResponseException::class,
25
+        ModelNotFoundException::class,
26
+        DataNotFoundException::class,
27
+        ValidateException::class,
28
+    ];
29
+
30
+    /**
31
+     * 记录异常信息(包括日志或者其它方式记录)
32
+     *
33
+     * @access public
34
+     * @param  Throwable $exception
35
+     * @return void
36
+     */
37
+    public function report(Throwable $exception): void
38
+    {
39
+        // 使用内置的方式记录异常日志
40
+        parent::report($exception);
41
+    }
42
+
43
+    /**
44
+     * Render an exception into an HTTP response.
45
+     *
46
+     * @access public
47
+     * @param \think\Request   $request
48
+     * @param Throwable $e
49
+     * @return Response
50
+     */
51
+    public function render($request, Throwable $e): Response
52
+    {
53
+        // 添加自定义异常处理机制
54
+
55
+        // 其他错误交给系统处理
56
+        return parent::render($request, $e);
57
+    }
58
+}

+ 8 - 0
app/Request.php

@@ -0,0 +1,8 @@
1
+<?php
2
+namespace app;
3
+
4
+// 应用请求对象类
5
+class Request extends \think\Request
6
+{
7
+
8
+}

+ 2 - 0
app/common.php

@@ -0,0 +1,2 @@
1
+<?php
2
+// 应用公共文件

File diff suppressed because it is too large
+ 17 - 0
app/controller/Index.php


+ 17 - 0
app/event.php

@@ -0,0 +1,17 @@
1
+<?php
2
+// 事件定义文件
3
+return [
4
+    'bind'      => [
5
+    ],
6
+
7
+    'listen'    => [
8
+        'AppInit'  => [],
9
+        'HttpRun'  => [],
10
+        'HttpEnd'  => [],
11
+        'LogLevel' => [],
12
+        'LogWrite' => [],
13
+    ],
14
+
15
+    'subscribe' => [
16
+    ],
17
+];

+ 10 - 0
app/middleware.php

@@ -0,0 +1,10 @@
1
+<?php
2
+// 全局中间件定义文件
3
+return [
4
+    // 全局请求缓存
5
+    // \think\middleware\CheckRequestCache::class,
6
+    // 多语言加载
7
+    // \think\middleware\LoadLangPack::class,
8
+    // Session初始化
9
+    // \think\middleware\SessionInit::class
10
+];

+ 9 - 0
app/provider.php

@@ -0,0 +1,9 @@
1
+<?php
2
+use app\ExceptionHandle;
3
+use app\Request;
4
+
5
+// 容器Provider定义文件
6
+return [
7
+    'think\Request'          => Request::class,
8
+    'think\exception\Handle' => ExceptionHandle::class,
9
+];

+ 9 - 0
app/service.php

@@ -0,0 +1,9 @@
1
+<?php
2
+
3
+use app\AppService;
4
+
5
+// 系统服务定义文件
6
+// 服务在完成全局初始化之后执行
7
+return [
8
+    AppService::class,
9
+];

+ 48 - 0
composer.json

@@ -0,0 +1,48 @@
1
+{
2
+    "name": "topthink/think",
3
+    "description": "the new thinkphp framework",
4
+    "type": "project",
5
+    "keywords": [
6
+        "framework",
7
+        "thinkphp",
8
+        "ORM"
9
+    ],
10
+    "homepage": "http://thinkphp.cn/",
11
+    "license": "Apache-2.0",
12
+    "authors": [
13
+        {
14
+            "name": "liu21st",
15
+            "email": "liu21st@gmail.com"
16
+        },
17
+        {
18
+            "name": "yunwuxin",
19
+            "email": "448901948@qq.com"
20
+        }        
21
+    ],
22
+    "require": {
23
+        "php": ">=7.2.5",
24
+        "topthink/framework": "^6.0.0",
25
+        "topthink/think-orm": "^2.0"
26
+    },
27
+    "require-dev": {
28
+        "symfony/var-dumper": "^4.2",
29
+        "topthink/think-trace":"^1.0"
30
+    },
31
+    "autoload": {
32
+        "psr-4": {
33
+            "app\\": "app"
34
+        },
35
+        "psr-0": {
36
+            "": "extend/"
37
+        }
38
+    },
39
+    "config": {
40
+        "preferred-install": "dist"
41
+    },
42
+    "scripts": {
43
+        "post-autoload-dump": [
44
+            "@php think service:discover",
45
+            "@php think vendor:publish"
46
+        ]
47
+    }
48
+}

File diff suppressed because it is too large
+ 1120 - 0
composer.lock


+ 32 - 0
config/app.php

@@ -0,0 +1,32 @@
1
+<?php
2
+// +----------------------------------------------------------------------
3
+// | 应用设置
4
+// +----------------------------------------------------------------------
5
+
6
+return [
7
+    // 应用地址
8
+    'app_host'         => env('app.host', ''),
9
+    // 应用的命名空间
10
+    'app_namespace'    => '',
11
+    // 是否启用路由
12
+    'with_route'       => true,
13
+    // 默认应用
14
+    'default_app'      => 'index',
15
+    // 默认时区
16
+    'default_timezone' => 'Asia/Shanghai',
17
+
18
+    // 应用映射(自动多应用模式有效)
19
+    'app_map'          => [],
20
+    // 域名绑定(自动多应用模式有效)
21
+    'domain_bind'      => [],
22
+    // 禁止URL访问的应用列表(自动多应用模式有效)
23
+    'deny_app_list'    => [],
24
+
25
+    // 异常页面的模板文件
26
+    'exception_tmpl'   => app()->getThinkPath() . 'tpl/think_exception.tpl',
27
+
28
+    // 错误显示信息,非调试模式有效
29
+    'error_message'    => '页面错误!请稍后再试~',
30
+    // 显示错误信息
31
+    'show_error_msg'   => false,
32
+];

+ 29 - 0
config/cache.php

@@ -0,0 +1,29 @@
1
+<?php
2
+
3
+// +----------------------------------------------------------------------
4
+// | 缓存设置
5
+// +----------------------------------------------------------------------
6
+
7
+return [
8
+    // 默认缓存驱动
9
+    'default' => env('cache.driver', 'file'),
10
+
11
+    // 缓存连接方式配置
12
+    'stores'  => [
13
+        'file' => [
14
+            // 驱动方式
15
+            'type'       => 'File',
16
+            // 缓存保存目录
17
+            'path'       => '',
18
+            // 缓存前缀
19
+            'prefix'     => '',
20
+            // 缓存有效期 0表示永久缓存
21
+            'expire'     => 0,
22
+            // 缓存标签前缀
23
+            'tag_prefix' => 'tag:',
24
+            // 序列化机制 例如 ['serialize', 'unserialize']
25
+            'serialize'  => [],
26
+        ],
27
+        // 更多的缓存连接
28
+    ],
29
+];

+ 9 - 0
config/console.php

@@ -0,0 +1,9 @@
1
+<?php
2
+// +----------------------------------------------------------------------
3
+// | 控制台配置
4
+// +----------------------------------------------------------------------
5
+return [
6
+    // 指令定义
7
+    'commands' => [
8
+    ],
9
+];

+ 20 - 0
config/cookie.php

@@ -0,0 +1,20 @@
1
+<?php
2
+// +----------------------------------------------------------------------
3
+// | Cookie设置
4
+// +----------------------------------------------------------------------
5
+return [
6
+    // cookie 保存时间
7
+    'expire'    => 0,
8
+    // cookie 保存路径
9
+    'path'      => '/',
10
+    // cookie 有效域名
11
+    'domain'    => '',
12
+    //  cookie 启用安全传输
13
+    'secure'    => false,
14
+    // httponly设置
15
+    'httponly'  => false,
16
+    // 是否使用 setcookie
17
+    'setcookie' => true,
18
+    // samesite 设置,支持 'strict' 'lax'
19
+    'samesite'  => '',
20
+];

+ 63 - 0
config/database.php

@@ -0,0 +1,63 @@
1
+<?php
2
+
3
+return [
4
+    // 默认使用的数据库连接配置
5
+    'default'         => env('database.driver', 'mysql'),
6
+
7
+    // 自定义时间查询规则
8
+    'time_query_rule' => [],
9
+
10
+    // 自动写入时间戳字段
11
+    // true为自动识别类型 false关闭
12
+    // 字符串则明确指定时间字段类型 支持 int timestamp datetime date
13
+    'auto_timestamp'  => true,
14
+
15
+    // 时间字段取出后的默认时间格式
16
+    'datetime_format' => 'Y-m-d H:i:s',
17
+
18
+    // 时间字段配置 配置格式:create_time,update_time
19
+    'datetime_field'  => '',
20
+
21
+    // 数据库连接配置信息
22
+    'connections'     => [
23
+        'mysql' => [
24
+            // 数据库类型
25
+            'type'            => env('database.type', 'mysql'),
26
+            // 服务器地址
27
+            'hostname'        => env('database.hostname', '127.0.0.1'),
28
+            // 数据库名
29
+            'database'        => env('database.database', ''),
30
+            // 用户名
31
+            'username'        => env('database.username', 'root'),
32
+            // 密码
33
+            'password'        => env('database.password', ''),
34
+            // 端口
35
+            'hostport'        => env('database.hostport', '3306'),
36
+            // 数据库连接参数
37
+            'params'          => [],
38
+            // 数据库编码默认采用utf8
39
+            'charset'         => env('database.charset', 'utf8'),
40
+            // 数据库表前缀
41
+            'prefix'          => env('database.prefix', ''),
42
+
43
+            // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
44
+            'deploy'          => 0,
45
+            // 数据库读写是否分离 主从式有效
46
+            'rw_separate'     => false,
47
+            // 读写分离后 主服务器数量
48
+            'master_num'      => 1,
49
+            // 指定从服务器序号
50
+            'slave_no'        => '',
51
+            // 是否严格检查字段是否存在
52
+            'fields_strict'   => true,
53
+            // 是否需要断线重连
54
+            'break_reconnect' => false,
55
+            // 监听SQL
56
+            'trigger_sql'     => env('app_debug', true),
57
+            // 开启字段缓存
58
+            'fields_cache'    => false,
59
+        ],
60
+
61
+        // 更多的数据库配置信息
62
+    ],
63
+];

+ 24 - 0
config/filesystem.php

@@ -0,0 +1,24 @@
1
+<?php
2
+
3
+return [
4
+    // 默认磁盘
5
+    'default' => env('filesystem.driver', 'local'),
6
+    // 磁盘列表
7
+    'disks'   => [
8
+        'local'  => [
9
+            'type' => 'local',
10
+            'root' => app()->getRuntimePath() . 'storage',
11
+        ],
12
+        'public' => [
13
+            // 磁盘类型
14
+            'type'       => 'local',
15
+            // 磁盘路径
16
+            'root'       => app()->getRootPath() . 'public/storage',
17
+            // 磁盘路径对应的外部URL路径
18
+            'url'        => '/storage',
19
+            // 可见性
20
+            'visibility' => 'public',
21
+        ],
22
+        // 更多的磁盘配置信息
23
+    ],
24
+];

+ 27 - 0
config/lang.php

@@ -0,0 +1,27 @@
1
+<?php
2
+// +----------------------------------------------------------------------
3
+// | 多语言设置
4
+// +----------------------------------------------------------------------
5
+
6
+return [
7
+    // 默认语言
8
+    'default_lang'    => env('lang.default_lang', 'zh-cn'),
9
+    // 允许的语言列表
10
+    'allow_lang_list' => [],
11
+    // 多语言自动侦测变量名
12
+    'detect_var'      => 'lang',
13
+    // 是否使用Cookie记录
14
+    'use_cookie'      => true,
15
+    // 多语言cookie变量
16
+    'cookie_var'      => 'think_lang',
17
+    // 多语言header变量
18
+    'header_var'      => 'think-lang',
19
+    // 扩展语言包
20
+    'extend_list'     => [],
21
+    // Accept-Language转义为对应语言包名称
22
+    'accept_language' => [
23
+        'zh-hans-cn' => 'zh-cn',
24
+    ],
25
+    // 是否支持语言分组
26
+    'allow_group'     => false,
27
+];

+ 45 - 0
config/log.php

@@ -0,0 +1,45 @@
1
+<?php
2
+
3
+// +----------------------------------------------------------------------
4
+// | 日志设置
5
+// +----------------------------------------------------------------------
6
+return [
7
+    // 默认日志记录通道
8
+    'default'      => env('log.channel', 'file'),
9
+    // 日志记录级别
10
+    'level'        => [],
11
+    // 日志类型记录的通道 ['error'=>'email',...]
12
+    'type_channel' => [],
13
+    // 关闭全局日志写入
14
+    'close'        => false,
15
+    // 全局日志处理 支持闭包
16
+    'processor'    => null,
17
+
18
+    // 日志通道列表
19
+    'channels'     => [
20
+        'file' => [
21
+            // 日志记录方式
22
+            'type'           => 'File',
23
+            // 日志保存目录
24
+            'path'           => '',
25
+            // 单文件日志写入
26
+            'single'         => false,
27
+            // 独立日志级别
28
+            'apart_level'    => [],
29
+            // 最大日志文件数量
30
+            'max_files'      => 0,
31
+            // 使用JSON格式记录
32
+            'json'           => false,
33
+            // 日志处理
34
+            'processor'      => null,
35
+            // 关闭通道日志写入
36
+            'close'          => false,
37
+            // 日志输出格式化
38
+            'format'         => '[%s][%s] %s',
39
+            // 是否实时写入
40
+            'realtime_write' => false,
41
+        ],
42
+        // 其它日志通道配置
43
+    ],
44
+
45
+];

+ 8 - 0
config/middleware.php

@@ -0,0 +1,8 @@
1
+<?php
2
+// 中间件配置
3
+return [
4
+    // 别名或分组
5
+    'alias'    => [],
6
+    // 优先级设置,此数组中的中间件会按照数组中的顺序优先执行
7
+    'priority' => [],
8
+];

+ 45 - 0
config/route.php

@@ -0,0 +1,45 @@
1
+<?php
2
+// +----------------------------------------------------------------------
3
+// | 路由设置
4
+// +----------------------------------------------------------------------
5
+
6
+return [
7
+    // pathinfo分隔符
8
+    'pathinfo_depr'         => '/',
9
+    // URL伪静态后缀
10
+    'url_html_suffix'       => 'html',
11
+    // URL普通方式参数 用于自动生成
12
+    'url_common_param'      => true,
13
+    // 是否开启路由延迟解析
14
+    'url_lazy_route'        => false,
15
+    // 是否强制使用路由
16
+    'url_route_must'        => false,
17
+    // 合并路由规则
18
+    'route_rule_merge'      => false,
19
+    // 路由是否完全匹配
20
+    'route_complete_match'  => false,
21
+    // 访问控制器层名称
22
+    'controller_layer'      => 'controller',
23
+    // 空控制器名
24
+    'empty_controller'      => 'Error',
25
+    // 是否使用控制器后缀
26
+    'controller_suffix'     => false,
27
+    // 默认的路由变量规则
28
+    'default_route_pattern' => '[\w\.]+',
29
+    // 是否开启请求缓存 true自动缓存 支持设置请求缓存规则
30
+    'request_cache_key'     => false,
31
+    // 请求缓存有效期
32
+    'request_cache_expire'  => null,
33
+    // 全局请求缓存排除规则
34
+    'request_cache_except'  => [],
35
+    // 默认控制器名
36
+    'default_controller'    => 'Index',
37
+    // 默认操作名
38
+    'default_action'        => 'index',
39
+    // 操作方法后缀
40
+    'action_suffix'         => '',
41
+    // 默认JSONP格式返回的处理方法
42
+    'default_jsonp_handler' => 'jsonpReturn',
43
+    // 默认JSONP处理方法
44
+    'var_jsonp_handler'     => 'callback',
45
+];

+ 19 - 0
config/session.php

@@ -0,0 +1,19 @@
1
+<?php
2
+// +----------------------------------------------------------------------
3
+// | 会话设置
4
+// +----------------------------------------------------------------------
5
+
6
+return [
7
+    // session name
8
+    'name'           => 'PHPSESSID',
9
+    // SESSION_ID的提交变量,解决flash上传跨域
10
+    'var_session_id' => '',
11
+    // 驱动方式 支持file cache
12
+    'type'           => 'file',
13
+    // 存储连接标识 当type使用cache的时候有效
14
+    'store'          => null,
15
+    // 过期时间
16
+    'expire'         => 1440,
17
+    // 前缀
18
+    'prefix'         => '',
19
+];

+ 10 - 0
config/trace.php

@@ -0,0 +1,10 @@
1
+<?php
2
+// +----------------------------------------------------------------------
3
+// | Trace设置 开启调试模式后有效
4
+// +----------------------------------------------------------------------
5
+return [
6
+    // 内置Html和Console两种方式 支持扩展
7
+    'type'    => 'Html',
8
+    // 读取的日志通道名
9
+    'channel' => '',
10
+];

+ 25 - 0
config/view.php

@@ -0,0 +1,25 @@
1
+<?php
2
+// +----------------------------------------------------------------------
3
+// | 模板设置
4
+// +----------------------------------------------------------------------
5
+
6
+return [
7
+    // 模板引擎类型使用Think
8
+    'type'          => 'Think',
9
+    // 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 3 保持操作方法
10
+    'auto_rule'     => 1,
11
+    // 模板目录名
12
+    'view_dir_name' => 'view',
13
+    // 模板后缀
14
+    'view_suffix'   => 'html',
15
+    // 模板文件名分隔符
16
+    'view_depr'     => DIRECTORY_SEPARATOR,
17
+    // 模板引擎普通标签开始标记
18
+    'tpl_begin'     => '{',
19
+    // 模板引擎普通标签结束标记
20
+    'tpl_end'       => '}',
21
+    // 标签库标签开始标记
22
+    'taglib_begin'  => '{',
23
+    // 标签库标签结束标记
24
+    'taglib_end'    => '}',
25
+];

+ 2 - 0
extend/.gitignore

@@ -0,0 +1,2 @@
1
+*
2
+!.gitignore

+ 8 - 0
public/.htaccess

@@ -0,0 +1,8 @@
1
+<IfModule mod_rewrite.c>
2
+  Options +FollowSymlinks -Multiviews
3
+  RewriteEngine On
4
+
5
+  RewriteCond %{REQUEST_FILENAME} !-d
6
+  RewriteCond %{REQUEST_FILENAME} !-f
7
+  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
8
+</IfModule>

二進制
public/favicon.ico


+ 23 - 0
public/index.php

@@ -0,0 +1,23 @@
1
+<?php
2
+// +----------------------------------------------------------------------
3
+// | ThinkPHP [ WE CAN DO IT JUST THINK ]
4
+// +----------------------------------------------------------------------
5
+// | Copyright (c) 2006-2019 http://thinkphp.cn All rights reserved.
6
+// +----------------------------------------------------------------------
7
+// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
8
+// +----------------------------------------------------------------------
9
+// | Author: liu21st <liu21st@gmail.com>
10
+// +----------------------------------------------------------------------
11
+
12
+// [ 应用入口文件 ]
13
+namespace think;
14
+
15
+require __DIR__ . '/../vendor/autoload.php';
16
+echo phpinfo();exit;
17
+// 执行HTTP应用并响应
18
+$http = (new App())->http;
19
+
20
+$response = $http->run();
21
+
22
+$response->send();
23
+$http->end($response);

+ 2 - 0
public/robots.txt

@@ -0,0 +1,2 @@
1
+User-agent: *
2
+Disallow:

+ 19 - 0
public/router.php

@@ -0,0 +1,19 @@
1
+<?php
2
+// +----------------------------------------------------------------------
3
+// | ThinkPHP [ WE CAN DO IT JUST THINK ]
4
+// +----------------------------------------------------------------------
5
+// | Copyright (c) 2006~2019 http://thinkphp.cn All rights reserved.
6
+// +----------------------------------------------------------------------
7
+// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
8
+// +----------------------------------------------------------------------
9
+// | Author: liu21st <liu21st@gmail.com>
10
+// +----------------------------------------------------------------------
11
+// $Id$
12
+
13
+if (is_file($_SERVER["DOCUMENT_ROOT"] . $_SERVER["SCRIPT_NAME"])) {
14
+    return false;
15
+} else {
16
+    $_SERVER["SCRIPT_FILENAME"] = __DIR__ . '/index.php';
17
+
18
+    require __DIR__ . "/index.php";
19
+}

+ 2 - 0
public/static/.gitignore

@@ -0,0 +1,2 @@
1
+*
2
+!.gitignore

+ 17 - 0
route/app.php

@@ -0,0 +1,17 @@
1
+<?php
2
+// +----------------------------------------------------------------------
3
+// | ThinkPHP [ WE CAN DO IT JUST THINK ]
4
+// +----------------------------------------------------------------------
5
+// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
6
+// +----------------------------------------------------------------------
7
+// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
8
+// +----------------------------------------------------------------------
9
+// | Author: liu21st <liu21st@gmail.com>
10
+// +----------------------------------------------------------------------
11
+use think\facade\Route;
12
+
13
+Route::get('think', function () {
14
+    return 'hello,ThinkPHP6!';
15
+});
16
+
17
+Route::get('hello/:name', 'index/hello');

+ 2 - 0
runtime/.gitignore

@@ -0,0 +1,2 @@
1
+*
2
+!.gitignore

+ 10 - 0
think

@@ -0,0 +1,10 @@
1
+#!/usr/bin/env php
2
+<?php
3
+namespace think;
4
+
5
+// 命令行入口文件
6
+// 加载基础文件
7
+require __DIR__ . '/vendor/autoload.php';
8
+
9
+// 应用初始化
10
+(new App())->console->run();

+ 1 - 0
view/README.md

@@ -0,0 +1 @@
1
+如果不使用模板,可以删除该目录