commit
5fddaf6f11
45 changed files with 2013 additions and 0 deletions
-
1.example.env
-
7.gitignore
-
1.htaccess
-
42.travis.yml
-
26404.html
-
32LICENSE.txt
-
56README.md
-
1app/.htaccess
-
22app/AppService.php
-
94app/BaseController.php
-
58app/ExceptionHandle.php
-
8app/Request.php
-
2app/common.php
-
17app/controller/Index.php
-
17app/event.php
-
10app/middleware.php
-
9app/provider.php
-
9app/service.php
-
49composer.json
-
1070composer.lock
-
32config/app.php
-
29config/cache.php
-
9config/console.php
-
20config/cookie.php
-
63config/database.php
-
24config/filesystem.php
-
27config/lang.php
-
45config/log.php
-
8config/middleware.php
-
45config/route.php
-
19config/session.php
-
10config/trace.php
-
25config/view.php
-
2extend/.gitignore
-
39index.html
-
8public/.htaccess
-
BINpublic/favicon.ico
-
24public/index.php
-
2public/robots.txt
-
19public/router.php
-
2public/static/.gitignore
-
17route/app.php
-
10think
-
2vendor/.gitignore
-
1view/README.md
@ -0,0 +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 |
||||
@ -0,0 +1,7 @@ |
|||||
|
/.idea |
||||
|
/.vscode |
||||
|
/runtime |
||||
|
/public/.well-known |
||||
|
/public/uploads |
||||
|
*.log |
||||
|
.env |
||||
@ -0,0 +1 @@ |
|||||
|
|
||||
@ -0,0 +1,42 @@ |
|||||
|
sudo: false |
||||
|
|
||||
|
language: php |
||||
|
|
||||
|
branches: |
||||
|
only: |
||||
|
- stable |
||||
|
|
||||
|
cache: |
||||
|
directories: |
||||
|
- $HOME/.composer/cache |
||||
|
|
||||
|
before_install: |
||||
|
- composer self-update |
||||
|
|
||||
|
install: |
||||
|
- composer install --no-dev --no-interaction --ignore-platform-reqs |
||||
|
- zip -r --exclude='*.git*' --exclude='*.zip' --exclude='*.travis.yml' ThinkPHP_Core.zip . |
||||
|
- composer require --update-no-dev --no-interaction "topthink/think-image:^1.0" |
||||
|
- composer require --update-no-dev --no-interaction "topthink/think-migration:^1.0" |
||||
|
- composer require --update-no-dev --no-interaction "topthink/think-captcha:^1.0" |
||||
|
- composer require --update-no-dev --no-interaction "topthink/think-mongo:^1.0" |
||||
|
- composer require --update-no-dev --no-interaction "topthink/think-worker:^1.0" |
||||
|
- composer require --update-no-dev --no-interaction "topthink/think-helper:^1.0" |
||||
|
- composer require --update-no-dev --no-interaction "topthink/think-queue:^1.0" |
||||
|
- composer require --update-no-dev --no-interaction "topthink/think-angular:^1.0" |
||||
|
- composer require --dev --update-no-dev --no-interaction "topthink/think-testing:^1.0" |
||||
|
- zip -r --exclude='*.git*' --exclude='*.zip' --exclude='*.travis.yml' ThinkPHP_Full.zip . |
||||
|
|
||||
|
script: |
||||
|
- php think unit |
||||
|
|
||||
|
deploy: |
||||
|
provider: releases |
||||
|
api_key: |
||||
|
secure: TSF6bnl2JYN72UQOORAJYL+CqIryP2gHVKt6grfveQ7d9rleAEoxlq6PWxbvTI4jZ5nrPpUcBUpWIJHNgVcs+bzLFtyh5THaLqm39uCgBbrW7M8rI26L8sBh/6nsdtGgdeQrO/cLu31QoTzbwuz1WfAVoCdCkOSZeXyT/CclH99qV6RYyQYqaD2wpRjrhA5O4fSsEkiPVuk0GaOogFlrQHx+C+lHnf6pa1KxEoN1A0UxxVfGX6K4y5g4WQDO5zT4bLeubkWOXK0G51XSvACDOZVIyLdjApaOFTwamPcD3S1tfvuxRWWvsCD5ljFvb2kSmx5BIBNwN80MzuBmrGIC27XLGOxyMerwKxB6DskNUO9PflKHDPI61DRq0FTy1fv70SFMSiAtUv9aJRT41NQh9iJJ0vC8dl+xcxrWIjU1GG6+l/ZcRqVx9V1VuGQsLKndGhja7SQ+X1slHl76fRq223sMOql7MFCd0vvvxVQ2V39CcFKao/LB1aPH3VhODDEyxwx6aXoTznvC/QPepgWsHOWQzKj9ftsgDbsNiyFlXL4cu8DWUty6rQy8zT2b4O8b1xjcwSUCsy+auEjBamzQkMJFNlZAIUrukL/NbUhQU37TAbwsFyz7X0E/u/VMle/nBCNAzgkMwAUjiHM6FqrKKBRWFbPrSIixjfjkCnrMEPw= |
||||
|
file: |
||||
|
- ThinkPHP_Core.zip |
||||
|
- ThinkPHP_Full.zip |
||||
|
skip_cleanup: true |
||||
|
on: |
||||
|
tags: true |
||||
@ -0,0 +1,26 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<head> |
||||
|
<meta charset="utf-8"> |
||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> |
||||
|
<title>404</title> |
||||
|
<style> |
||||
|
body{ |
||||
|
background-color:#444; |
||||
|
font-size:14px; |
||||
|
} |
||||
|
h3{ |
||||
|
font-size:60px; |
||||
|
color:#eee; |
||||
|
text-align:center; |
||||
|
padding-top:30px; |
||||
|
font-weight:normal; |
||||
|
} |
||||
|
</style> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<h3>404,您请求的文件不存在!</h3> |
||||
|
</body> |
||||
|
</html> |
||||
@ -0,0 +1,32 @@ |
|||||
|
|
||||
|
ThinkPHP遵循Apache2开源协议发布,并提供免费使用。 |
||||
|
版权所有Copyright © 2006-2016 by ThinkPHP (http://thinkphp.cn) |
||||
|
All rights reserved。 |
||||
|
ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。 |
||||
|
|
||||
|
Apache Licence是著名的非盈利开源组织Apache采用的协议。 |
||||
|
该协议和BSD类似,鼓励代码共享和尊重原作者的著作权, |
||||
|
允许代码修改,再作为开源或商业软件发布。需要满足 |
||||
|
的条件: |
||||
|
1. 需要给代码的用户一份Apache Licence ; |
||||
|
2. 如果你修改了代码,需要在被修改的文件中说明; |
||||
|
3. 在延伸的代码中(修改和有源代码衍生的代码中)需要 |
||||
|
带有原来代码中的协议,商标,专利声明和其他原来作者规 |
||||
|
定需要包含的说明; |
||||
|
4. 如果再发布的产品中包含一个Notice文件,则在Notice文 |
||||
|
件中需要带有本协议内容。你可以在Notice中增加自己的 |
||||
|
许可,但不可以表现为对Apache Licence构成更改。 |
||||
|
具体的协议参考:http://www.apache.org/licenses/LICENSE-2.0 |
||||
|
|
||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
|
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
||||
|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
||||
|
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |
||||
|
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
||||
|
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
||||
|
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
||||
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
||||
|
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
||||
|
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN |
||||
|
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
||||
|
POSSIBILITY OF SUCH DAMAGE. |
||||
@ -0,0 +1,56 @@ |
|||||
|
ThinkPHP 6.0 |
||||
|
=============== |
||||
|
|
||||
|
> 运行环境要求PHP7.2+,兼容PHP8.1 |
||||
|
|
||||
|
[官方应用服务市场](https://market.topthink.com) | [`ThinkAPI`——官方统一API服务](https://docs.topthink.com/think-api) |
||||
|
|
||||
|
ThinkPHPV6.0版本由[亿速云](https://www.yisu.com/)独家赞助发布。 |
||||
|
|
||||
|
## 主要新特性 |
||||
|
|
||||
|
* 采用`PHP7`强类型(严格模式) |
||||
|
* 支持更多的`PSR`规范 |
||||
|
* 原生多应用支持 |
||||
|
* 更强大和易用的查询 |
||||
|
* 全新的事件系统 |
||||
|
* 模型事件和数据库事件统一纳入事件系统 |
||||
|
* 模板引擎分离出核心 |
||||
|
* 内部功能中间件化 |
||||
|
* SESSION/Cookie机制改进 |
||||
|
* 对Swoole以及协程支持改进 |
||||
|
* 对IDE更加友好 |
||||
|
* 统一和精简大量用法 |
||||
|
|
||||
|
## 安装 |
||||
|
|
||||
|
~~~ |
||||
|
composer create-project topthink/think tp 6.0.* |
||||
|
~~~ |
||||
|
|
||||
|
如果需要更新框架使用 |
||||
|
~~~ |
||||
|
composer update topthink/framework |
||||
|
~~~ |
||||
|
|
||||
|
## 文档 |
||||
|
|
||||
|
[完全开发手册](https://www.kancloud.cn/manual/thinkphp6_0/content) |
||||
|
|
||||
|
## 参与开发 |
||||
|
|
||||
|
请参阅 [ThinkPHP 核心框架包](https://github.com/top-think/framework)。 |
||||
|
|
||||
|
## 版权信息 |
||||
|
|
||||
|
ThinkPHP遵循Apache2开源协议发布,并提供免费使用。 |
||||
|
|
||||
|
本项目包含的第三方源码和二进制文件之版权信息另行标注。 |
||||
|
|
||||
|
版权所有Copyright © 2006-2021 by ThinkPHP (http://thinkphp.cn) |
||||
|
|
||||
|
All rights reserved。 |
||||
|
|
||||
|
ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。 |
||||
|
|
||||
|
更多细节参阅 [LICENSE.txt](LICENSE.txt) |
||||
@ -0,0 +1 @@ |
|||||
|
deny from all |
||||
@ -0,0 +1,22 @@ |
|||||
|
<?php |
||||
|
declare (strict_types = 1); |
||||
|
|
||||
|
namespace app; |
||||
|
|
||||
|
use think\Service; |
||||
|
|
||||
|
/** |
||||
|
* 应用服务类 |
||||
|
*/ |
||||
|
class AppService extends Service |
||||
|
{ |
||||
|
public function register() |
||||
|
{ |
||||
|
// 服务注册
|
||||
|
} |
||||
|
|
||||
|
public function boot() |
||||
|
{ |
||||
|
// 服务启动
|
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,94 @@ |
|||||
|
<?php |
||||
|
declare (strict_types = 1); |
||||
|
|
||||
|
namespace app; |
||||
|
|
||||
|
use think\App; |
||||
|
use think\exception\ValidateException; |
||||
|
use think\Validate; |
||||
|
|
||||
|
/** |
||||
|
* 控制器基础类 |
||||
|
*/ |
||||
|
abstract class BaseController |
||||
|
{ |
||||
|
/** |
||||
|
* Request实例 |
||||
|
* @var \think\Request |
||||
|
*/ |
||||
|
protected $request; |
||||
|
|
||||
|
/** |
||||
|
* 应用实例 |
||||
|
* @var \think\App |
||||
|
*/ |
||||
|
protected $app; |
||||
|
|
||||
|
/** |
||||
|
* 是否批量验证 |
||||
|
* @var bool |
||||
|
*/ |
||||
|
protected $batchValidate = false; |
||||
|
|
||||
|
/** |
||||
|
* 控制器中间件 |
||||
|
* @var array |
||||
|
*/ |
||||
|
protected $middleware = []; |
||||
|
|
||||
|
/** |
||||
|
* 构造方法 |
||||
|
* @access public |
||||
|
* @param App $app 应用对象 |
||||
|
*/ |
||||
|
public function __construct(App $app) |
||||
|
{ |
||||
|
$this->app = $app; |
||||
|
$this->request = $this->app->request; |
||||
|
|
||||
|
// 控制器初始化
|
||||
|
$this->initialize(); |
||||
|
} |
||||
|
|
||||
|
// 初始化
|
||||
|
protected function initialize() |
||||
|
{} |
||||
|
|
||||
|
/** |
||||
|
* 验证数据 |
||||
|
* @access protected |
||||
|
* @param array $data 数据 |
||||
|
* @param string|array $validate 验证器名或者验证规则数组 |
||||
|
* @param array $message 提示信息 |
||||
|
* @param bool $batch 是否批量验证 |
||||
|
* @return array|string|true |
||||
|
* @throws ValidateException |
||||
|
*/ |
||||
|
protected function validate(array $data, $validate, array $message = [], bool $batch = false) |
||||
|
{ |
||||
|
if (is_array($validate)) { |
||||
|
$v = new Validate(); |
||||
|
$v->rule($validate); |
||||
|
} else { |
||||
|
if (strpos($validate, '.')) { |
||||
|
// 支持场景
|
||||
|
[$validate, $scene] = explode('.', $validate); |
||||
|
} |
||||
|
$class = false !== strpos($validate, '\\') ? $validate : $this->app->parseClass('validate', $validate); |
||||
|
$v = new $class(); |
||||
|
if (!empty($scene)) { |
||||
|
$v->scene($scene); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
$v->message($message); |
||||
|
|
||||
|
// 是否批量验证
|
||||
|
if ($batch || $this->batchValidate) { |
||||
|
$v->batch(true); |
||||
|
} |
||||
|
|
||||
|
return $v->failException(true)->check($data); |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,58 @@ |
|||||
|
<?php |
||||
|
namespace app; |
||||
|
|
||||
|
use think\db\exception\DataNotFoundException; |
||||
|
use think\db\exception\ModelNotFoundException; |
||||
|
use think\exception\Handle; |
||||
|
use think\exception\HttpException; |
||||
|
use think\exception\HttpResponseException; |
||||
|
use think\exception\ValidateException; |
||||
|
use think\Response; |
||||
|
use Throwable; |
||||
|
|
||||
|
/** |
||||
|
* 应用异常处理类 |
||||
|
*/ |
||||
|
class ExceptionHandle extends Handle |
||||
|
{ |
||||
|
/** |
||||
|
* 不需要记录信息(日志)的异常类列表 |
||||
|
* @var array |
||||
|
*/ |
||||
|
protected $ignoreReport = [ |
||||
|
HttpException::class, |
||||
|
HttpResponseException::class, |
||||
|
ModelNotFoundException::class, |
||||
|
DataNotFoundException::class, |
||||
|
ValidateException::class, |
||||
|
]; |
||||
|
|
||||
|
/** |
||||
|
* 记录异常信息(包括日志或者其它方式记录) |
||||
|
* |
||||
|
* @access public |
||||
|
* @param Throwable $exception |
||||
|
* @return void |
||||
|
*/ |
||||
|
public function report(Throwable $exception): void |
||||
|
{ |
||||
|
// 使用内置的方式记录异常日志
|
||||
|
parent::report($exception); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Render an exception into an HTTP response. |
||||
|
* |
||||
|
* @access public |
||||
|
* @param \think\Request $request |
||||
|
* @param Throwable $e |
||||
|
* @return Response |
||||
|
*/ |
||||
|
public function render($request, Throwable $e): Response |
||||
|
{ |
||||
|
// 添加自定义异常处理机制
|
||||
|
|
||||
|
// 其他错误交给系统处理
|
||||
|
return parent::render($request, $e); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,8 @@ |
|||||
|
<?php |
||||
|
namespace app; |
||||
|
|
||||
|
// 应用请求对象类
|
||||
|
class Request extends \think\Request |
||||
|
{ |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,2 @@ |
|||||
|
<?php |
||||
|
// 应用公共文件
|
||||
@ -0,0 +1,17 @@ |
|||||
|
<?php |
||||
|
namespace app\controller; |
||||
|
|
||||
|
use app\BaseController; |
||||
|
|
||||
|
class Index extends BaseController |
||||
|
{ |
||||
|
public function index() |
||||
|
{ |
||||
|
return '<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} a{color:#2E5CD5;cursor: pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei"; color: #333;font-size:18px;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }</style><div style="padding: 24px 48px;"> <h1>:) </h1><p> ThinkPHP V' . \think\facade\App::version() . '<br/><span style="font-size:30px;">16载初心不改 - 你值得信赖的PHP框架</span></p><span style="font-size:25px;">[ V6.0 版本由 <a href="https://www.yisu.com/" target="yisu">亿速云</a> 独家赞助发布 ]</span></div><script type="text/javascript" src="https://e.topthink.com/Public/static/client.js"></script><think id="ee9b1aa918103c4fc"></think>'; |
||||
|
} |
||||
|
|
||||
|
public function hello($name = 'ThinkPHP6') |
||||
|
{ |
||||
|
return 'hello,' . $name; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,17 @@ |
|||||
|
<?php |
||||
|
// 事件定义文件
|
||||
|
return [ |
||||
|
'bind' => [ |
||||
|
], |
||||
|
|
||||
|
'listen' => [ |
||||
|
'AppInit' => [], |
||||
|
'HttpRun' => [], |
||||
|
'HttpEnd' => [], |
||||
|
'LogLevel' => [], |
||||
|
'LogWrite' => [], |
||||
|
], |
||||
|
|
||||
|
'subscribe' => [ |
||||
|
], |
||||
|
]; |
||||
@ -0,0 +1,10 @@ |
|||||
|
<?php |
||||
|
// 全局中间件定义文件
|
||||
|
return [ |
||||
|
// 全局请求缓存
|
||||
|
// \think\middleware\CheckRequestCache::class,
|
||||
|
// 多语言加载
|
||||
|
// \think\middleware\LoadLangPack::class,
|
||||
|
// Session初始化
|
||||
|
// \think\middleware\SessionInit::class
|
||||
|
]; |
||||
@ -0,0 +1,9 @@ |
|||||
|
<?php |
||||
|
use app\ExceptionHandle; |
||||
|
use app\Request; |
||||
|
|
||||
|
// 容器Provider定义文件
|
||||
|
return [ |
||||
|
'think\Request' => Request::class, |
||||
|
'think\exception\Handle' => ExceptionHandle::class, |
||||
|
]; |
||||
@ -0,0 +1,9 @@ |
|||||
|
<?php |
||||
|
|
||||
|
use app\AppService; |
||||
|
|
||||
|
// 系统服务定义文件
|
||||
|
// 服务在完成全局初始化之后执行
|
||||
|
return [ |
||||
|
AppService::class, |
||||
|
]; |
||||
@ -0,0 +1,49 @@ |
|||||
|
{ |
||||
|
"name": "topthink/think", |
||||
|
"description": "the new thinkphp framework", |
||||
|
"type": "project", |
||||
|
"keywords": [ |
||||
|
"framework", |
||||
|
"thinkphp", |
||||
|
"ORM" |
||||
|
], |
||||
|
"homepage": "https://www.thinkphp.cn/", |
||||
|
"license": "Apache-2.0", |
||||
|
"authors": [ |
||||
|
{ |
||||
|
"name": "liu21st", |
||||
|
"email": "liu21st@gmail.com" |
||||
|
}, |
||||
|
{ |
||||
|
"name": "yunwuxin", |
||||
|
"email": "448901948@qq.com" |
||||
|
} |
||||
|
], |
||||
|
"require": { |
||||
|
"php": ">=7.2.5", |
||||
|
"topthink/framework": "^6.1.0", |
||||
|
"topthink/think-orm": "^2.0", |
||||
|
"topthink/think-filesystem": "^1.0" |
||||
|
}, |
||||
|
"require-dev": { |
||||
|
"symfony/var-dumper": "^4.2", |
||||
|
"topthink/think-trace": "^1.0" |
||||
|
}, |
||||
|
"autoload": { |
||||
|
"psr-4": { |
||||
|
"app\\": "app" |
||||
|
}, |
||||
|
"psr-0": { |
||||
|
"": "extend/" |
||||
|
} |
||||
|
}, |
||||
|
"config": { |
||||
|
"preferred-install": "dist" |
||||
|
}, |
||||
|
"scripts": { |
||||
|
"post-autoload-dump": [ |
||||
|
"@php think service:discover", |
||||
|
"@php think vendor:publish" |
||||
|
] |
||||
|
} |
||||
|
} |
||||
1070
composer.lock
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,32 @@ |
|||||
|
<?php |
||||
|
// +----------------------------------------------------------------------
|
||||
|
// | 应用设置
|
||||
|
// +----------------------------------------------------------------------
|
||||
|
|
||||
|
return [ |
||||
|
// 应用地址
|
||||
|
'app_host' => env('app.host', ''), |
||||
|
// 应用的命名空间
|
||||
|
'app_namespace' => '', |
||||
|
// 是否启用路由
|
||||
|
'with_route' => true, |
||||
|
// 默认应用
|
||||
|
'default_app' => 'index', |
||||
|
// 默认时区
|
||||
|
'default_timezone' => 'Asia/Shanghai', |
||||
|
|
||||
|
// 应用映射(自动多应用模式有效)
|
||||
|
'app_map' => [], |
||||
|
// 域名绑定(自动多应用模式有效)
|
||||
|
'domain_bind' => [], |
||||
|
// 禁止URL访问的应用列表(自动多应用模式有效)
|
||||
|
'deny_app_list' => [], |
||||
|
|
||||
|
// 异常页面的模板文件
|
||||
|
'exception_tmpl' => app()->getThinkPath() . 'tpl/think_exception.tpl', |
||||
|
|
||||
|
// 错误显示信息,非调试模式有效
|
||||
|
'error_message' => '页面错误!请稍后再试~', |
||||
|
// 显示错误信息
|
||||
|
'show_error_msg' => false, |
||||
|
]; |
||||
@ -0,0 +1,29 @@ |
|||||
|
<?php |
||||
|
|
||||
|
// +----------------------------------------------------------------------
|
||||
|
// | 缓存设置
|
||||
|
// +----------------------------------------------------------------------
|
||||
|
|
||||
|
return [ |
||||
|
// 默认缓存驱动
|
||||
|
'default' => env('cache.driver', 'file'), |
||||
|
|
||||
|
// 缓存连接方式配置
|
||||
|
'stores' => [ |
||||
|
'file' => [ |
||||
|
// 驱动方式
|
||||
|
'type' => 'File', |
||||
|
// 缓存保存目录
|
||||
|
'path' => '', |
||||
|
// 缓存前缀
|
||||
|
'prefix' => '', |
||||
|
// 缓存有效期 0表示永久缓存
|
||||
|
'expire' => 0, |
||||
|
// 缓存标签前缀
|
||||
|
'tag_prefix' => 'tag:', |
||||
|
// 序列化机制 例如 ['serialize', 'unserialize']
|
||||
|
'serialize' => [], |
||||
|
], |
||||
|
// 更多的缓存连接
|
||||
|
], |
||||
|
]; |
||||
@ -0,0 +1,9 @@ |
|||||
|
<?php |
||||
|
// +----------------------------------------------------------------------
|
||||
|
// | 控制台配置
|
||||
|
// +----------------------------------------------------------------------
|
||||
|
return [ |
||||
|
// 指令定义
|
||||
|
'commands' => [ |
||||
|
], |
||||
|
]; |
||||
@ -0,0 +1,20 @@ |
|||||
|
<?php |
||||
|
// +----------------------------------------------------------------------
|
||||
|
// | Cookie设置
|
||||
|
// +----------------------------------------------------------------------
|
||||
|
return [ |
||||
|
// cookie 保存时间
|
||||
|
'expire' => 0, |
||||
|
// cookie 保存路径
|
||||
|
'path' => '/', |
||||
|
// cookie 有效域名
|
||||
|
'domain' => '', |
||||
|
// cookie 启用安全传输
|
||||
|
'secure' => false, |
||||
|
// httponly设置
|
||||
|
'httponly' => false, |
||||
|
// 是否使用 setcookie
|
||||
|
'setcookie' => true, |
||||
|
// samesite 设置,支持 'strict' 'lax'
|
||||
|
'samesite' => '', |
||||
|
]; |
||||
@ -0,0 +1,63 @@ |
|||||
|
<?php |
||||
|
|
||||
|
return [ |
||||
|
// 默认使用的数据库连接配置
|
||||
|
'default' => env('database.driver', 'mysql'), |
||||
|
|
||||
|
// 自定义时间查询规则
|
||||
|
'time_query_rule' => [], |
||||
|
|
||||
|
// 自动写入时间戳字段
|
||||
|
// true为自动识别类型 false关闭
|
||||
|
// 字符串则明确指定时间字段类型 支持 int timestamp datetime date
|
||||
|
'auto_timestamp' => true, |
||||
|
|
||||
|
// 时间字段取出后的默认时间格式
|
||||
|
'datetime_format' => 'Y-m-d H:i:s', |
||||
|
|
||||
|
// 时间字段配置 配置格式:create_time,update_time
|
||||
|
'datetime_field' => '', |
||||
|
|
||||
|
// 数据库连接配置信息
|
||||
|
'connections' => [ |
||||
|
'mysql' => [ |
||||
|
// 数据库类型
|
||||
|
'type' => env('database.type', 'mysql'), |
||||
|
// 服务器地址
|
||||
|
'hostname' => env('database.hostname', '127.0.0.1'), |
||||
|
// 数据库名
|
||||
|
'database' => env('database.database', ''), |
||||
|
// 用户名
|
||||
|
'username' => env('database.username', 'root'), |
||||
|
// 密码
|
||||
|
'password' => env('database.password', ''), |
||||
|
// 端口
|
||||
|
'hostport' => env('database.hostport', '3306'), |
||||
|
// 数据库连接参数
|
||||
|
'params' => [], |
||||
|
// 数据库编码默认采用utf8
|
||||
|
'charset' => env('database.charset', 'utf8'), |
||||
|
// 数据库表前缀
|
||||
|
'prefix' => env('database.prefix', ''), |
||||
|
|
||||
|
// 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
|
||||
|
'deploy' => 0, |
||||
|
// 数据库读写是否分离 主从式有效
|
||||
|
'rw_separate' => false, |
||||
|
// 读写分离后 主服务器数量
|
||||
|
'master_num' => 1, |
||||
|
// 指定从服务器序号
|
||||
|
'slave_no' => '', |
||||
|
// 是否严格检查字段是否存在
|
||||
|
'fields_strict' => true, |
||||
|
// 是否需要断线重连
|
||||
|
'break_reconnect' => false, |
||||
|
// 监听SQL
|
||||
|
'trigger_sql' => env('app_debug', true), |
||||
|
// 开启字段缓存
|
||||
|
'fields_cache' => false, |
||||
|
], |
||||
|
|
||||
|
// 更多的数据库配置信息
|
||||
|
], |
||||
|
]; |
||||
@ -0,0 +1,24 @@ |
|||||
|
<?php |
||||
|
|
||||
|
return [ |
||||
|
// 默认磁盘
|
||||
|
'default' => env('filesystem.driver', 'local'), |
||||
|
// 磁盘列表
|
||||
|
'disks' => [ |
||||
|
'local' => [ |
||||
|
'type' => 'local', |
||||
|
'root' => app()->getRuntimePath() . 'storage', |
||||
|
], |
||||
|
'public' => [ |
||||
|
// 磁盘类型
|
||||
|
'type' => 'local', |
||||
|
// 磁盘路径
|
||||
|
'root' => app()->getRootPath() . 'public/storage', |
||||
|
// 磁盘路径对应的外部URL路径
|
||||
|
'url' => '/storage', |
||||
|
// 可见性
|
||||
|
'visibility' => 'public', |
||||
|
], |
||||
|
// 更多的磁盘配置信息
|
||||
|
], |
||||
|
]; |
||||
@ -0,0 +1,27 @@ |
|||||
|
<?php |
||||
|
// +----------------------------------------------------------------------
|
||||
|
// | 多语言设置
|
||||
|
// +----------------------------------------------------------------------
|
||||
|
|
||||
|
return [ |
||||
|
// 默认语言
|
||||
|
'default_lang' => env('lang.default_lang', 'zh-cn'), |
||||
|
// 允许的语言列表
|
||||
|
'allow_lang_list' => [], |
||||
|
// 多语言自动侦测变量名
|
||||
|
'detect_var' => 'lang', |
||||
|
// 是否使用Cookie记录
|
||||
|
'use_cookie' => true, |
||||
|
// 多语言cookie变量
|
||||
|
'cookie_var' => 'think_lang', |
||||
|
// 多语言header变量
|
||||
|
'header_var' => 'think-lang', |
||||
|
// 扩展语言包
|
||||
|
'extend_list' => [], |
||||
|
// Accept-Language转义为对应语言包名称
|
||||
|
'accept_language' => [ |
||||
|
'zh-hans-cn' => 'zh-cn', |
||||
|
], |
||||
|
// 是否支持语言分组
|
||||
|
'allow_group' => false, |
||||
|
]; |
||||
@ -0,0 +1,45 @@ |
|||||
|
<?php |
||||
|
|
||||
|
// +----------------------------------------------------------------------
|
||||
|
// | 日志设置
|
||||
|
// +----------------------------------------------------------------------
|
||||
|
return [ |
||||
|
// 默认日志记录通道
|
||||
|
'default' => env('log.channel', 'file'), |
||||
|
// 日志记录级别
|
||||
|
'level' => [], |
||||
|
// 日志类型记录的通道 ['error'=>'email',...]
|
||||
|
'type_channel' => [], |
||||
|
// 关闭全局日志写入
|
||||
|
'close' => false, |
||||
|
// 全局日志处理 支持闭包
|
||||
|
'processor' => null, |
||||
|
|
||||
|
// 日志通道列表
|
||||
|
'channels' => [ |
||||
|
'file' => [ |
||||
|
// 日志记录方式
|
||||
|
'type' => 'File', |
||||
|
// 日志保存目录
|
||||
|
'path' => '', |
||||
|
// 单文件日志写入
|
||||
|
'single' => false, |
||||
|
// 独立日志级别
|
||||
|
'apart_level' => [], |
||||
|
// 最大日志文件数量
|
||||
|
'max_files' => 0, |
||||
|
// 使用JSON格式记录
|
||||
|
'json' => false, |
||||
|
// 日志处理
|
||||
|
'processor' => null, |
||||
|
// 关闭通道日志写入
|
||||
|
'close' => false, |
||||
|
// 日志输出格式化
|
||||
|
'format' => '[%s][%s] %s', |
||||
|
// 是否实时写入
|
||||
|
'realtime_write' => false, |
||||
|
], |
||||
|
// 其它日志通道配置
|
||||
|
], |
||||
|
|
||||
|
]; |
||||
@ -0,0 +1,8 @@ |
|||||
|
<?php |
||||
|
// 中间件配置
|
||||
|
return [ |
||||
|
// 别名或分组
|
||||
|
'alias' => [], |
||||
|
// 优先级设置,此数组中的中间件会按照数组中的顺序优先执行
|
||||
|
'priority' => [], |
||||
|
]; |
||||
@ -0,0 +1,45 @@ |
|||||
|
<?php |
||||
|
// +----------------------------------------------------------------------
|
||||
|
// | 路由设置
|
||||
|
// +----------------------------------------------------------------------
|
||||
|
|
||||
|
return [ |
||||
|
// pathinfo分隔符
|
||||
|
'pathinfo_depr' => '/', |
||||
|
// URL伪静态后缀
|
||||
|
'url_html_suffix' => 'html', |
||||
|
// URL普通方式参数 用于自动生成
|
||||
|
'url_common_param' => true, |
||||
|
// 是否开启路由延迟解析
|
||||
|
'url_lazy_route' => false, |
||||
|
// 是否强制使用路由
|
||||
|
'url_route_must' => false, |
||||
|
// 合并路由规则
|
||||
|
'route_rule_merge' => false, |
||||
|
// 路由是否完全匹配
|
||||
|
'route_complete_match' => false, |
||||
|
// 访问控制器层名称
|
||||
|
'controller_layer' => 'controller', |
||||
|
// 空控制器名
|
||||
|
'empty_controller' => 'Error', |
||||
|
// 是否使用控制器后缀
|
||||
|
'controller_suffix' => false, |
||||
|
// 默认的路由变量规则
|
||||
|
'default_route_pattern' => '[\w\.]+', |
||||
|
// 是否开启请求缓存 true自动缓存 支持设置请求缓存规则
|
||||
|
'request_cache_key' => false, |
||||
|
// 请求缓存有效期
|
||||
|
'request_cache_expire' => null, |
||||
|
// 全局请求缓存排除规则
|
||||
|
'request_cache_except' => [], |
||||
|
// 默认控制器名
|
||||
|
'default_controller' => 'Index', |
||||
|
// 默认操作名
|
||||
|
'default_action' => 'index', |
||||
|
// 操作方法后缀
|
||||
|
'action_suffix' => '', |
||||
|
// 默认JSONP格式返回的处理方法
|
||||
|
'default_jsonp_handler' => 'jsonpReturn', |
||||
|
// 默认JSONP处理方法
|
||||
|
'var_jsonp_handler' => 'callback', |
||||
|
]; |
||||
@ -0,0 +1,19 @@ |
|||||
|
<?php |
||||
|
// +----------------------------------------------------------------------
|
||||
|
// | 会话设置
|
||||
|
// +----------------------------------------------------------------------
|
||||
|
|
||||
|
return [ |
||||
|
// session name
|
||||
|
'name' => 'PHPSESSID', |
||||
|
// SESSION_ID的提交变量,解决flash上传跨域
|
||||
|
'var_session_id' => '', |
||||
|
// 驱动方式 支持file cache
|
||||
|
'type' => 'file', |
||||
|
// 存储连接标识 当type使用cache的时候有效
|
||||
|
'store' => null, |
||||
|
// 过期时间
|
||||
|
'expire' => 1440, |
||||
|
// 前缀
|
||||
|
'prefix' => '', |
||||
|
]; |
||||
@ -0,0 +1,10 @@ |
|||||
|
<?php |
||||
|
// +----------------------------------------------------------------------
|
||||
|
// | Trace设置 开启调试模式后有效
|
||||
|
// +----------------------------------------------------------------------
|
||||
|
return [ |
||||
|
// 内置Html和Console两种方式 支持扩展
|
||||
|
'type' => 'Html', |
||||
|
// 读取的日志通道名
|
||||
|
'channel' => '', |
||||
|
]; |
||||
@ -0,0 +1,25 @@ |
|||||
|
<?php |
||||
|
// +----------------------------------------------------------------------
|
||||
|
// | 模板设置
|
||||
|
// +----------------------------------------------------------------------
|
||||
|
|
||||
|
return [ |
||||
|
// 模板引擎类型使用Think
|
||||
|
'type' => 'Think', |
||||
|
// 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 3 保持操作方法
|
||||
|
'auto_rule' => 1, |
||||
|
// 模板目录名
|
||||
|
'view_dir_name' => 'view', |
||||
|
// 模板后缀
|
||||
|
'view_suffix' => 'html', |
||||
|
// 模板文件名分隔符
|
||||
|
'view_depr' => DIRECTORY_SEPARATOR, |
||||
|
// 模板引擎普通标签开始标记
|
||||
|
'tpl_begin' => '{', |
||||
|
// 模板引擎普通标签结束标记
|
||||
|
'tpl_end' => '}', |
||||
|
// 标签库标签开始标记
|
||||
|
'taglib_begin' => '{', |
||||
|
// 标签库标签结束标记
|
||||
|
'taglib_end' => '}', |
||||
|
]; |
||||
@ -0,0 +1,2 @@ |
|||||
|
* |
||||
|
!.gitignore |
||||
@ -0,0 +1,39 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<head> |
||||
|
<meta charset="utf-8"> |
||||
|
<title>恭喜,站点创建成功!</title> |
||||
|
<style> |
||||
|
.container { |
||||
|
width: 60%; |
||||
|
margin: 10% auto 0; |
||||
|
background-color: #f0f0f0; |
||||
|
padding: 2% 5%; |
||||
|
border-radius: 10px |
||||
|
} |
||||
|
|
||||
|
ul { |
||||
|
padding-left: 20px; |
||||
|
} |
||||
|
|
||||
|
ul li { |
||||
|
line-height: 2.3 |
||||
|
} |
||||
|
|
||||
|
a { |
||||
|
color: #20a53a |
||||
|
} |
||||
|
</style> |
||||
|
</head> |
||||
|
<body> |
||||
|
<div class="container"> |
||||
|
<h1>恭喜, 站点创建成功!</h1> |
||||
|
<h3>这是默认index.html,本页面由系统自动生成</h3> |
||||
|
<ul> |
||||
|
<li>本页面在FTP根目录下的index.html</li> |
||||
|
<li>您可以修改、删除或覆盖本页面</li> |
||||
|
<li>FTP相关信息,请到“面板系统后台 > FTP” 查看</li> |
||||
|
</ul> |
||||
|
</div> |
||||
|
</body> |
||||
|
</html> |
||||
@ -0,0 +1,8 @@ |
|||||
|
<IfModule mod_rewrite.c> |
||||
|
Options +FollowSymlinks -Multiviews |
||||
|
RewriteEngine On |
||||
|
|
||||
|
RewriteCond %{REQUEST_FILENAME} !-d |
||||
|
RewriteCond %{REQUEST_FILENAME} !-f |
||||
|
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] |
||||
|
</IfModule> |
||||
@ -0,0 +1,24 @@ |
|||||
|
<?php |
||||
|
// +----------------------------------------------------------------------
|
||||
|
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
|
||||
|
// +----------------------------------------------------------------------
|
||||
|
// | Copyright (c) 2006-2019 http://thinkphp.cn All rights reserved.
|
||||
|
// +----------------------------------------------------------------------
|
||||
|
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||||
|
// +----------------------------------------------------------------------
|
||||
|
// | Author: liu21st <liu21st@gmail.com>
|
||||
|
// +----------------------------------------------------------------------
|
||||
|
|
||||
|
// [ 应用入口文件 ]
|
||||
|
namespace think; |
||||
|
|
||||
|
require __DIR__ . '/../vendor/autoload.php'; |
||||
|
|
||||
|
// 执行HTTP应用并响应
|
||||
|
$http = (new App())->http; |
||||
|
|
||||
|
$response = $http->run(); |
||||
|
|
||||
|
$response->send(); |
||||
|
|
||||
|
$http->end($response); |
||||
@ -0,0 +1,2 @@ |
|||||
|
User-agent: * |
||||
|
Disallow: |
||||
@ -0,0 +1,19 @@ |
|||||
|
<?php |
||||
|
// +----------------------------------------------------------------------
|
||||
|
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
|
||||
|
// +----------------------------------------------------------------------
|
||||
|
// | Copyright (c) 2006~2019 http://thinkphp.cn All rights reserved.
|
||||
|
// +----------------------------------------------------------------------
|
||||
|
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||||
|
// +----------------------------------------------------------------------
|
||||
|
// | Author: liu21st <liu21st@gmail.com>
|
||||
|
// +----------------------------------------------------------------------
|
||||
|
// $Id$
|
||||
|
|
||||
|
if (is_file($_SERVER["DOCUMENT_ROOT"] . $_SERVER["SCRIPT_NAME"])) { |
||||
|
return false; |
||||
|
} else { |
||||
|
$_SERVER["SCRIPT_FILENAME"] = __DIR__ . '/index.php'; |
||||
|
|
||||
|
require __DIR__ . "/index.php"; |
||||
|
} |
||||
@ -0,0 +1,2 @@ |
|||||
|
* |
||||
|
!.gitignore |
||||
@ -0,0 +1,17 @@ |
|||||
|
<?php |
||||
|
// +----------------------------------------------------------------------
|
||||
|
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
|
||||
|
// +----------------------------------------------------------------------
|
||||
|
// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
|
||||
|
// +----------------------------------------------------------------------
|
||||
|
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||||
|
// +----------------------------------------------------------------------
|
||||
|
// | Author: liu21st <liu21st@gmail.com>
|
||||
|
// +----------------------------------------------------------------------
|
||||
|
use think\facade\Route; |
||||
|
|
||||
|
Route::get('think', function () { |
||||
|
return 'hello,ThinkPHP6!'; |
||||
|
}); |
||||
|
|
||||
|
Route::get('hello/:name', 'index/hello'); |
||||
@ -0,0 +1,10 @@ |
|||||
|
#!/usr/bin/env php |
||||
|
<?php |
||||
|
namespace think; |
||||
|
|
||||
|
// 命令行入口文件 |
||||
|
// 加载基础文件 |
||||
|
require __DIR__ . '/vendor/autoload.php'; |
||||
|
|
||||
|
// 应用初始化 |
||||
|
(new App())->console->run(); |
||||
@ -0,0 +1,2 @@ |
|||||
|
* |
||||
|
!.gitignore |
||||
@ -0,0 +1 @@ |
|||||
|
如果不使用模板,可以删除该目录 |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue