正式版本的发布日期推迟到10月24日

ThinkPHP最新的6.0本子原安顿于国庆左右公布,由于国庆之间针对大旨简洁明了的标准对Dolly用格局做了有的调解,为了幸免或者的难点还须求做更丰硕的测量试验,加上新版框架的平安审计职业依然还在后续,所以在安排之外额外祖父布了八个RC5积存更新版本,正式版本的公布日期推迟到10月29日。

法定本着认真和不追求虚名的姿态看待这一次ThinkPHP6.0的发布专门的事业,我们意在交付给开垦者的新版是叁个更加好用并且布局牢固的本子,相信那是多少个值得等待的框架。

下面是RC5版本自RC4从今今后的主要更新,基本上不影响以前版本的晋级换代,而且官方完全开荒手册的故事情节已经联合更新。

多使用情势调解

出于多采纳情势的眼花缭乱和扩大性酌量,最新版本把多使用格局独立为框架的贰个大局中间件扩大。暗中同意安装后为主框架为单运用方式,要是须要使用Dolly用方式,能够设置

composer require topthink/think-multi-app

设置后会自动注册二个大局中间件并预先试行,就可以活动援救多选择形式,无需做其余的布署调度。假设须要张开应用映射或然域名绑定的话,依然设置app_map以及domain_bind即可。

假若你的输入文件是index.php的话,会自动开启自动多采纳格局。假设你的进口文件是任何,比如admin.php或者api.php则会活动绑定admin或者api选取,当然,若是你在进口文件中一度选用name办法绑定了使用,则优先。

除此以外,要是是全自动多应用形式下,U帕杰罗L里面包车型大巴使用不真实,会活动管理为单运用深入解析,也正是说多选拔和单应用是能够在新版的结构下共存。举例,当大家拜谒下边包车型的士UENVISIONL:

http://tp.com/think

假设think使用并空中楼阁(也远非定义任何的应用映射),当大家拜望上边的地址的时候会活动举行单运用深入分析,也等于说若是有定义全局路由(比如route/route.php)的话

Route::get('think', function () {
    return 'hello,ThinkPHP!';
});

页面会输出

hello,ThinkPHP!

如此设计的初心是为了进一层便利扩大注册全局路由,制止在拉开多接收模式的状态下报了名的大局路由失效(比方前边的验证码扩展只好用于单运用形式,多利用形式须求单独注册路由)。

设若您一丝一毫无需单运用形式,也能够安装使用严刻的Dolly用情势

'app_express'    =>    true,
'default_app'    =>    'home',

当我们再一次访谈

http://tp.com/think

的时候,其实是拜望暗中同意(home)应用的think路由。

中间件机制改良

鉴于多选拔扩展独立后,中间件机制也随之实行了一些优化和调动,未来中间件差非常少分为八个组,包含全局中间件、应用中间件、路由中间件和调节器中间件,每个中间件组互相独立按梯次运营。

app/middleware.php文本之中定义的中间件即为全局中间件,实践优先级最高(相对于前置中间件来讲),要是采纳了多选择形式,何况在运用目录下也定义了middleware.php文本,即为应用中间件,试行优先级稍低于全局中间件。

设若在路由登记的时候定义了中间件即为路由中间件,注意,在路由中间件施行早前是获取不到近日应用的调整器和操作名的(所以,全局中间件和应用中间件推行的历程中是无可奈何赢得调控器和操作名的),若是您不想在路由注册的时候定义中间件,还只怕有三个非常的措施,正是在路由布署文件(包涵全局路由安插和动用路由配置)中定义middleware参数,无论是或不是相称路由都会履行,雷同于大局路由中间件的定义。

'middleware'    =>    [
    appmiddlewareAuth::class,
    appmiddlewareCheck::class,
],

中间件调整优化

中间件的实践流程修改,thinkmiddleware只是肩负中间件的管住和调治,扩大thinkPipeline类肩负中间件的进行。并帮助调整中间件的实践各样。中间件配置文件的格式做了部分调动,除了定义中间件外号外,扩大了实施优先级设置。

return [
    // 别名或分组
    'alias'    => [
    ],
    // 优先级设置,此数组中的中间件会按照数组中的顺序优先执行
    'priority' => [
    ],
];

中间件end回调

中间件增添end回调,若是在中间件类中有定义end方法,则会在央浼甘休后联合调用。

public function end(Response $response)
{
}

中间件推行去重

对此各样分组的中间件,会开展强逼去重操作,也正是说在三个分组中的中间件只大概实行三遍。

模板目录自动识别

模板目录不要求再开展别的的构造,撤消了view_base配置,改为自动识别,应用目录下的view目录优先,假使不设有,则会接纳应用根目录下的view目录。假使要单独定义某些应用的模版目录,则动用view_path结构参数定义就可以。

事件智能订阅纠正

事件智能订阅的时候不再须求事情发生前注册和概念事件,采取反射机制自动识别订阅事件。

利用名得到调解

多使用方式改成扩充后,宗旨已经完全解耦了多应用相关的艺术和属性,所以只要你须求获得当前的使用名,供给改成

app('http')->getName();

对此使用中间件实行权力决定用场的,官方的建议是采纳pathinfo地点进行权力剖断。

think-swoole扩充更新

think-swoole恢宏也在时时四处更新和完备,未来曾经支撑数据库和缓存的连接池效用,以致RPC功用。

调理工科具更新

原来内置的页面Trace调试工具已经济体改成为扩大的章程,改成安装think-trace扩展,纵然因而composer安装应用的话,暗许会安装topthink/think-trace闻一知十,或然直接设置。

composer require topthink/think-trace

原核心内置的TraceDebug中间件不再动用,请在中间件定义文件中注释掉。

着力用法和事情发生早前保持不改变,但无需附加陈设,暗许使用html方法体现,同有时候如故支撑浏览器调节台呈现,并仅在调节和测验格局下有效。

而且扩充了叁个依照debugbar的调理扩展think-debugbar,要求独自安装后才干动用。

composer require topthink/think-debugbar

有关官网的晋升重构

最后一个是关于官方网站的讯息,为了接待新版的颁发,ThinkPHP官方网址此番终于要更新了。官方安插在前段时间对旧版(公元元年此前)官方网址举办ThinkPHP6.0的进级重构,同期修正顾客体验和手提式有线电话机阅读体验。

(文/开源中夏族民共和国卡塔尔(قطر‎