首页 > php框架 > ThinkPHP > 正文

thinkphp多应用模式下公共模块如何创建

下次还敢
发布: 2025-09-22 13:01:01
原创
701人浏览过
创建公共模块需在根目录下建立common目录并配置PSR-4自动加载,通过命名空间在多应用间共享模型、服务与中间件,实现代码复用。

thinkphp多应用模式下公共模块如何创建

在 ThinkPHP 多应用模式下,公共模块的创建主要是为了解决多个应用之间共享模型、服务、工具类或配置的问题。通过合理组织目录结构和自动加载机制,可以实现代码复用,避免重复开发。

1. 创建公共模块目录

在项目根目录下创建一个 commonmodules 目录,用于存放所有应用共享的代码。

示例结构:
project/
├── app/
│   ├── home/           # 前台应用
│   ├── admin/          # 后台应用
│   └── common/         # 公共模块(可选命名)
├── common/             # 独立的公共模块目录(推荐)
│   ├── service/
│   ├── model/
│   ├── util/
│   └── trait/
├── config/
└── route.php
登录后复制

注意:这里的 common 是独立于各个应用的顶层目录,不属于任何一个具体应用。

2. 配置自动加载

Composer 支持 PSR-4 自动加载,需在 composer.json 中注册公共模块的命名空间。

立即学习PHP免费学习笔记(深入)”;

修改 composer.json
"autoload": {
    "psr-4": {
        "app\": "app/",
        "common\": "common/"
    }
}
登录后复制

保存后运行命令更新自动加载:

composer dump-autoload
登录后复制

之后就可以在任何应用中使用 commonserviceUserService 这样的命名空间引用公共类。

无阶未来模型擂台/AI 应用平台
无阶未来模型擂台/AI 应用平台

无阶未来模型擂台/AI 应用平台,一站式模型+应用平台

无阶未来模型擂台/AI 应用平台35
查看详情 无阶未来模型擂台/AI 应用平台

3. 在应用中调用公共模块

例如,在 home 应用的控制器中使用公共模型或服务:

namespace apphomecontroller;
<p>use commonmodelUser;
use commonserviceUserService;
use thinkController;</p><p>class UserController extends Controller
{
public function info($id)
{
$user = User::find($id);
$data = UserService::formatUserInfo($user);
return json($data);
}
}</p>
登录后复制

只要命名空间正确,ThinkPHP 会自动加载公共模块中的类。

4. 公共配置与中间件

如果需要共享配置文件,可在 config/ 目录下定义公共配置项,如 api.phpservices.php,然后在各应用中通过 config('api.key') 调用。

公共中间件也可放在 common/middleware/,并在各应用路由中引用:

// 在 app/home/route.php 中
use commonmiddlewareAuthMiddleware;
<p>Route::rule('user/info', 'UserController/info')->middleware(AuthMiddleware::class);</p>
登录后复制

基本上就这些。关键是目录规划清晰,配合 Composer 自动加载,就能让多个应用高效共享代码。不复杂但容易忽略命名空间和加载配置。

以上就是thinkphp多应用模式下公共模块如何创建的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号