下面thinkphp框架教程栏目将给大家讲解分析tp6的多应用与tp5的区别,希望对需要的朋友有所帮助!
ThinkPHP6新增‘’多应用‘’与ThinkPHP5有啥区别?
首先看下ThinkPHP6官方手册关于多应用的目录结构:
├─app 应用目录 │ ├─index 主应用 │ │ ├─controller 控制器目录 │ │ ├─model 模型目录 │ │ ├─view 视图目录 │ │ ├─config 配置目录(优先) │ │ └─ ... 更多类库目录 │ ├─admin 后台应用 │ │ ├─controller 控制器目录 │ │ ├─model 模型目录 │ │ ├─view 视图目录 │ │ ├─config 配置目录(优先) │ │ └─ ... 更多类库目录 │ ├─public WEB目录(对外访问目录) │ ├─admin.php 后台入口文件 │ ├─index.php 入口文件 │ ├─router.php 快速测试文件 │ └─.htaccess 用于apache的重写 │ ├─config 应用配置目录 │ ├─index index应用配置 │ └─admin admin应用配置 │ ├─view 视图目录 │ ├─index index应用视图目录 │ └─admin admin应用视图目录 │ ├─route 路由定义目录 │ ├─index index应用路由定义目录 │ └─admin admin应用路由定义目录 │ ├─runtime 运行时目录 │ ├─index index应用运行时目录 │ └─admin admin应用运行时目录
这样一看发ThinkPHP6的多应用也不过如此,一个前台index应用,一个后台admin应用,这就叫多应用了。想当年,我们用ThinkPHP5那也开发过前台应用index、后台应用admin,这又啥区别呢?
区别1:就是必须通过composer下载后才能使用。
ThinkPHP6框架默认下载后是单应用,要想使用多应用就要下载:
composer require topthink/think-multi-app
区别2:路由定义必须在当前的应用下。
我们知道ThinkPHP5的时候,我们可以在根目录下的路由文件定义,但是ThinkPHP6后必须在应用目录下定义路由。
区别3:ThinkPHP6支持应用入口。
我们在ThinkPHP6中可以对某个应用单独设置入口文件,比如admin应用我可以设置admin.php入口文件来访问。
区别4:域名绑定应用。
举个例子ThinkPHP5的时候我们定义www.a.com/index/index…的路由后,可以实现这样的效果www.a.com/company.htm…
但是ThinkPHP6你会发现怎么设置路由,index应用都去不掉,始终是www.a.com/index/compa…,这个可咋整?
那么解决方案就可以用到了域名绑定应用了,我们在config/app.php 配置文件中定义域名和应用的绑定,如下方式:
'domain_bind' => [ 'www.a.com' => 'index', // 域名绑定到www应用 'admin.a.com' => 'admin', // admin绑定到后台应用 ],
这样我们就可以用www.a.com/company.htm…来访问了。
最后:
总的来说,ThinkPHP6的多应用相对比ThinkPHP5还是有比较大的进步,虽然在第一次使用麻烦一点需要composer下载,但是这不影响我们对ThinkPHP6多应用的青睐。
推荐:《最新的10个thinkphp视频教程》