zoukankan      html  css  js  c++  java
  • 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多应用的青睐。

    更多学习内容请访问:

    腾讯T3-T4标准精品PHP架构师教程目录大全,只要你看完保证薪资上升一个台阶(持续更新)​
     

     



  • 相关阅读:
    Apache Calcite对多种异构数据源的支持
    如何成为优秀的技术Leader
    Spring @Scheduled执行原理解析
    Google Guava官方教程
    数据倾斜
    服务框架 Pigeon 的设计与实现
    递归算法的简单应用
    让ListView中的控件失去焦点:android:descendantFocusability="blocksDescendants"
    android:layout_weight的真实含义/android:layout_gravity的条件
    复杂布局的时候,不要复制布局
  • 原文地址:https://www.cnblogs.com/a609251438/p/12809752.html
Copyright © 2011-2022 走看看