ThinkPHP多入口文件多应用设置方法

  在使用ThinkPHP做项目开发时,为了让架构更清晰科学,提高安全和性能,方便维护,需要将多应用分配到各自对应的不同的入口文件上,而不是整个项目用一个入口文件。

  此方法适用于ThinkPHP6/8,这是ThinkPHP默认的单应用结构:

├─app 应用目录
│  ├─controller         控制器目录
│  ├─model              模型目录
│  ├─view               视图目录
│  └─ ...               更多类库目录
│
├─public                WEB目录(对外访问目录)
│  ├─index.php          入口文件
│  ├─router.php         快速测试文件
│  └─.htaccess          用于apache的重写
│
├─view                  视图目录
├─config                应用配置目录
├─route                 路由定义目录
├─runtime               应用的运行时目录

  首先安装多应用功能:

composer require topthink/think-multi-app

  然后调整目录实现多应用结构:

├─app 应用目录
│  ├─index              前台应用
│  │  ├─controller      控制器目录
│  │  ├─model           模型目录
│  │  ├─view            视图目录
│  │  ├─config          配置目录
│  │  ├─route           路由目录
│  │  └─ ...            更多类库目录
│  │ 
│  ├─admin              后台应用
│  │  ├─controller      控制器目录
│  │  ├─model           模型目录
│  │  ├─view            视图目录
│  │  ├─config          配置目录
│  │  ├─route           路由目录
│  │  └─ ...            更多类库目录
│
├─public                WEB目录(对外访问目录)
│  ├─admin.php          后台入口文件
│  ├─index.php          前台入口文件
│  ├─router.php         快速测试文件
│  └─.htaccess          用于apache的重写
│
├─config                全局应用配置目录
├─runtime               运行时目录
│  ├─index              index应用运行时目录
│  └─admin              admin应用运行时目录

  现在项目有index和admin两个应用,分别代表前台和后台,下面是ThinkPHP的默认入口文件,位于public/index.php

// [ 应用入口文件 ]
namespace think;

require __DIR__ . '/../vendor/autoload.php';

// 执行HTTP应用并响应
$http = (new App())->http;

$response = $http->run();

$response->send();

$http->end($response);

  修改代码如下:

// [ 应用入口文件 ]
namespace think;

require __DIR__ . '/../vendor/autoload.php';

// 执行HTTP应用并响应
$http = (new App())->http;

// 指定前台入口文件
$response = $http->name('index')->run();

$response->send();

$http->end($response);

  新建public/admin.php,代码如下:

// [ 应用入口文件 ]
namespace think;

require __DIR__ . '/../vendor/autoload.php';

// 执行HTTP应用并响应
$http = (new App())->http;

// 指定后台入口文件
$response = $http->name('admin')->run();

$response->send();

$http->end($response);

  这样就实现了index.php访问前台应用,admin.php访问后台应用,多入口文件多应用的结构。

本站原创内容,转载请注明来源:https://www.liutonghui.com/297

贾玲成功瘦身100斤,自律精神让人敬佩
上一篇 2024-02-11
郑智化26年后再出新专辑,坦言终于可以对得起自己了
下一篇 2024-10-31

评论列表(0条)

  • 暂无评论

发表评论

captcha

相关推荐

  • PHP隐藏文件真实下载地址防盗链功能

      这个方案核心是隐藏文件真实地址,文件存放在网站根目录外(无法直接HTTP访问),或用权限锁定,只允许PHP。读取用动态临时下载链接替代,定时随机变更链接,随机密钥不可预测,过期自动失效。   校验来源域名、IP地址、链接有效期、签名,彻底防止盗链、批量下载、服务器过载。单IP限速、单文件并发下载限制、错误次数锁定,防止服务器过载。PHP代理输出文件,支持大文件断点续传   1.配置文件(config.php)统一管理密钥、有效期、限......

    2013-12-06
    21440
  • Thinkphp6开发Tinymce图片上传接口的方法

      Tinymce是项目开发中常用的编辑器之一,它的功能非常强大,界面简洁,又支持各种各样功能强大的插件,本文介绍一下ThinkPHP6开发Tinymce图片上传接口的方法。 public function uploads(){ $file = request()->file('file'); // 上传到本地服务器 $savename = \think\facade\Filesystem::disk('p......

    2021-03-02
    18610
  • ThinkPHP6开发wangEditor图片上传接口的方法

      wangEditor是一款近几年非常流行的富文本编辑器,它界面简洁,功能非常强大,本文介绍WangEditor图片上传接口的开发,以Thinkphp6为例。   首先看一下wangEditor官方的接口返回要求:   然后开发Thinkphp6的上传功能: public function testup(){ $file = request()->file('file'); $savename = \think......

    2021-03-02
    19020
  • PHP实现相关文章推荐功能

      实现相关文章推荐功能通常需要使用更高级的推荐系统算法,对于查询到的相关文章,需要计算它们与当前文章的相似度。相似度可以根据文章的内容、标题、标签等属性进行计算。可以使用文本相似度算法(如余弦相似度、Jaccard相似度等)或基于内容的推荐算法来计算相似度。   假设有一个包含文章信息的数据库表 articles: CREATE TABLE articles ( id INT PRIMARY KEY, title VA......

    2021-05-24
    17410
  • ThinkPHP文件上传类FileSystem自定义生成年月日目录

      FileSystem 是一个非常好用的文件上传扩展类,结合 Thinkphp 使用可以轻松的完成文件上传功能的开发。但是默认情况下 FileSystem 是按照“年月日”来生成上传日期目录的,长期使用下来就会有大量的“Ymd”目录,不方便管理,像我平时更新内容不多,如果以“Ym”的格式生成目录,按同一年同一月上传的文件放在一个日期目录中就方便管理多了。   需要......

    2023-04-23
    10342
  • 虚拟主机部署ThinkPHP项目设置public目录方法

      ThinkPHP默认必须要设置public目录为运行目录才可以成功运行项目,但是如果使用的是虚拟主机无法设置运行目录怎么办?而最稳妥的方法是移动public目录到根目录并修正路径。   先看 TP8 原版 public/index.php <?php // +---------------------------------------------------------------------- // | ThinkPHP ......

    2023-09-09
    13440
  • ThinkPHP获取数据库类型和版本的方法

      在开发后台功能时,可能会需要自动获取当前使用的数据库类型和版本的情况,下面就举个简单的例子实现自动获取当前项目使用的是MySQL还是SQLite数据库及使用的相应数据库版本的方法: // 数据库类型 $default = config('database.default'); $config = config('database.connections.' . $default); $db_type = strtolower(tri......

    2024-11-02
    8890
  • ThinkPHP路由简单配置

      ThinkPHP拥有丰富的路由配置功能,灵活的配置路由可以更好的优化URL结构,方便维护,下面简单介绍一下ThinkPHP路由配置方法。   ThinkPHP默认路由结构为/入口文件/应用/控制器/方法,因此就产生了这样一长串的URL结构: https://127.0.0.2/index.php/index/index/index   这还仅仅是首页URL,这样的结构显然不利于维护,更不利于SEO,所以需要做路由配置,以多应用为例,......

    2025-04-21
    7490