ThinkPHP6.0安装使用小记
ThinkPHP6.0的前身是ThinkPHP5.2,因为6.0版本改动比较大,所以直接将原定的5.2改成6.0。
目前ThinkPHP6还没正式发布,还是Rc
阶段,更新也比较频繁。
根据官方消息,计划在今年的5月1日之前发布第二个RC版本,届时还将迎来新版的手册,并且大部分扩展也会基本升级完成。
安装
从ThinkPHP5.1起,需要通过composer
安装,不再提供安装包。
目前ThinkPHP6还没正式发布,还是Rc
阶段,所以需要加上-dev
选项。
以下命令大概意思是,在tp
目录创建topthink/think
项目,版本是6.0开发版
。
composer create-project topthink/think tp 6.0.*-dev
相比之前版本,6.0版本将框架放到了vendor
目录,挺好的。
目录介绍
│ build.php 自动生成定义文件(参考)
│ composer.json composer 定义文件
│ composer.lock
│ LICENSE.txt 授权说明文件
│ README.md README 文件
│ think 命令行入口文件
├─app 应用目录
│ │ .htaccess
│ │ common.php 公共函数文件
│ │ event.php 事件监听配置文件
│ │ middleware.php 中间件配置文件
│ └─controller 控制器目录
│ Index.php 控制器文件
├─config 配置文件目录
│ app.php 应用配置
│ cache.php 缓存配置
│ console.php 控制台配置
│ cookie.php Cookie配置
│ database.php 数据库配置
│ log.php 日志配置
│ route.php 应用路由设置
│ session.php Session配置
│ template.php 模板引擎配置
│ trace.php Trace配置
├─extend 扩展类库目录
├─public WEB目录(对外访问目录)
│ │ index.php 入口文件
│ └─router.php 快速测试文件
├─route 路由配置目录
├─runtime 应用的运行时目录
└─vendor 第三方类库目录(Composer)
└─topthink
├─framework ThinkPHP框架系统
├─think-installer ThinkPHP安装器
├─think-template 模板引擎扩展
└─think-view 视图扩展
配置
配置方便总体来说,改变不是很大。主要改变就是不支持动态配置了,并且获取配置的方法名变动了一下。
官方介绍得知,说是不能动态配置,但又可以通过以下方法写入配置,有些许矛盾。
Config::set([
'name' => 'jwj',
'email' => 'jwjbjg@gmail.com',
'blog' => 'blog.ll00.cn'
], 'route');
没深入研究,但看代码得知,应该是将参数里的数组覆盖配置文件里配置的。总之肯定是没之前那么随心所欲了。
然后还有一点,不能跨模块读取配置了。
应用/控制器/方法/视图模板
应用
6.0版本已经没有模块了,取之而代的是应用,并且框架默认也关闭了多应用模式。
因为默认就是单应用,所以app
目录下,直接就是控制器
/视图
/模型
的目录了。
如果需要开启多应用,需要在入口文件里增加multi()
方法,并且创建应用目录,将控制器
/视图
/模型
等目录移动到应用目录下。
其实就是跟之前的模块差不多,只是换了个名称,但也预示着这块将会有大的改动。
入口文件代码:
<?php
namespace think;
// 引入Composer的autoload.php
require __DIR__ . '/../vendor/autoload.php';
// 执行HTTP应用并响应
$http = (new App())->http;
// 开启多应用模式
$http->multi(true);
// 执行应用程序
$response = $http->run();
// 发送数据到客户端
$response->send();
// HTTP应用
$http->end($response);
控制器
控制器对于我来说,是没有什么变化和影响的,唯一的影响就是继承的控制器类变了。
6.0版本的think\Controller
不再封装视图方法,就是原来的fetch
、assign
等视图方法不再包含在think\Controller
里。
如果需要继续使用这些视图方法,需要改为继承think\ViewController
类,或者使用助手函数或自己封装。
方法
方法对于我来说,也是没有什么变化和影响的,唯一的影响就是视图和模板的变动了。
视图和模板
视图和模板这个变动比较大,现在直接从框架核心移出去了,变成了扩展。
但5.1版本的时候就开始慢慢分离了,所以也不会很意外。
然后从用法方面来说是跟之前差不多,就是控制器那块的变化。