创建公共模块需在根目录下建立common目录并配置PSR-4自动加载,通过命名空间在多应用间共享模型、服务与中间件,实现代码复用。

在 ThinkPHP 多应用模式下,公共模块的创建主要是为了解决多个应用之间共享模型、服务、工具类或配置的问题。通过合理组织目录结构和自动加载机制,可以实现代码复用,避免重复开发。
1. 创建公共模块目录
在项目根目录下创建一个 common 或 modules 目录,用于存放所有应用共享的代码。
示例结构:
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 这样的命名空间引用公共类。
3. 在应用中调用公共模块
例如,在 home 应用的控制器中使用公共模型或服务:
namespace apphomecontroller;use commonmodelUser;use commonserviceUserService;use thinkController;
class UserController extends Controller{public function info($id){$user = User::find($id);$data = UserService::formatUserInfo($user);return json($data);}}
只要命名空间正确,ThinkPHP 会自动加载公共模块中的类。
4. 公共配置与中间件
如果需要共享配置文件,可在 config/ 目录下定义公共配置项,如 api.php 或 services.php,然后在各应用中通过 config(‘api.key’) 调用。
公共中间件也可放在 common/middleware/,并在各应用路由中引用:
// 在 app/home/route.php 中use commonmiddlewareAuthMiddleware;Route::rule('user/info', 'UserController/info')->middleware(AuthMiddleware::class);
基本上就这些。关键是目录规划清晰,配合 Composer 自动加载,就能让多个应用高效共享代码。不复杂但容易忽略命名空间和加载配置。
以上就是thinkphp多应用模式下公共模块如何创建的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/197019.html
微信扫一扫
支付宝扫一扫


