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

在 ThinkPHP 多应用模式下,公共模块的创建主要是为了解决多个应用之间共享模型、服务、工具类或配置的问题。通过合理组织目录结构和自动加载机制,可以实现代码复用,避免重复开发。
在项目根目录下创建一个 common 或 modules 目录,用于存放所有应用共享的代码。
示例结构:project/ ├── app/ │ ├── home/ # 前台应用 │ ├── admin/ # 后台应用 │ └── common/ # 公共模块(可选命名) ├── common/ # 独立的公共模块目录(推荐) │ ├── service/ │ ├── model/ │ ├── util/ │ └── trait/ ├── config/ └── route.php
注意:这里的 common 是独立于各个应用的顶层目录,不属于任何一个具体应用。
Composer 支持 PSR-4 自动加载,需在 composer.json 中注册公共模块的命名空间。
立即学习“PHP免费学习笔记(深入)”;
修改 composer.json:
"autoload": {
    "psr-4": {
        "app\": "app/",
        "common\": "common/"
    }
}
保存后运行命令更新自动加载:
composer dump-autoload
之后就可以在任何应用中使用 commonserviceUserService 这样的命名空间引用公共类。
例如,在 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 会自动加载公共模块中的类。
如果需要共享配置文件,可在 config/ 目录下定义公共配置项,如 api.php 或 services.php,然后在各应用中通过 config('api.key') 调用。
公共中间件也可放在 common/middleware/,并在各应用路由中引用:
// 在 app/home/route.php 中
use commonmiddlewareAuthMiddleware;
<p>Route::rule('user/info', 'UserController/info')->middleware(AuthMiddleware::class);</p>基本上就这些。关键是目录规划清晰,配合 Composer 自动加载,就能让多个应用高效共享代码。不复杂但容易忽略命名空间和加载配置。
 
                        
                        PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
 
                 
                                
                                 收藏
收藏
                                                                             
                                
                                 收藏
收藏
                                                                             
                                
                                 收藏
收藏
                                                                            Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号