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

创建公共模块需在根目录下建立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 这样的命名空间引用公共类。

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.phpservices.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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
mysql数据库如何进行性能基准测试
上一篇 2026年9月10日 03:44:20
中通快递物流信息查询 中通快递单号在线追踪
下一篇 2025年11月28日 07:43:23

相关推荐

  • mysql数据库如何进行性能基准测试

    答案是MySQL性能基准测试需明确目标如TPS、QPS、响应时间及并发能力,根据业务场景选择工具如sysbench、mysqlslap或HammerDB,设计贴近实际的测试方案,结合系统资源与数据库状态监控,持续验证优化效果。 MySQL数据库的性能基准测试,核心在于模拟真实业务场景下的负载,评估系…

    2026年9月10日
    300
  • AIGC查重官网入口 知网免费检测链接

    知网官方不提供免费AIGC查重服务,个人用户需通过https://cx.cnki.net官网付费检测,或经由学校等机构系统获取免费权限,谨防非官方“免费入口”风险。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 目前知网官方不提供免费的AI…

    2026年9月10日
    000
  • vivo浏览器收藏夹在哪里_vivo浏览器书签收藏位置与管理方法

    1、打开vivo浏览器,点击右上角三点菜单进入“收藏”即可查看收藏夹;2、可通过主页添加“收藏夹”小部件快捷访问;3、在收藏夹中新建文件夹并拖动书签分类管理;4、支持导出HTML格式书签文件至本地备份;5、登录vivo账号并开启数据同步,可实现多设备间书签自动同步。 如果您在使用vivo浏览器时想要…

    2026年9月10日
    000
  • thinkphp ajax请求接收不到数据怎么回事

    答案:ThinkPHP中AJAX接收不到数据主因是请求方式与后端处理不匹配。1. 前端以JSON格式发送需用contentType: ‘application/json’,后端须通过file_get_contents(‘php://input’)解析;…

    2026年9月10日
    100
  • VSCode注释技巧:生成文档与注解

    掌握VSCode%ignore_a_1%技巧可提升代码可读性与开发效率。1. 使用JSDoc添加函数说明,支持智能提示;2. 快捷键Ctrl/Cmd+/快速切换行注释,输入/**自动生成块注释;3. 配合”Document This”插件一键生成JSDoc模板;4. 利用js…

    2026年9月10日
    100
  • 如何在安装mysql时设置默认存储引擎

    在MySQL配置文件的[mysqld]段落中添加default-storage-engine=InnoDB,2. 初始化时可通过命令指定默认引擎,3. 启动后执行SHOW VARIABLES验证设置,创建表并用SHOW CREATE TABLE确认引擎类型是否生效。 在安装 MySQL 时设置默认存…

    2026年9月10日
    000
  • 数据库查询结果按特定模式排序:实现 Suppliers_ID 的正确排序

    本文旨在解决数据库查询结果排序问题,特别是当需要按照类似 “S01, S02, …, S09, S010, S011” 这样的模式对 VARCHAR 类型的 Suppliers_ID 进行排序时。我们将探讨如何提取 Suppliers_ID 中的数字部分并进行排序…

    2026年9月10日
    100
  • 倒反天罡!AI 新贵 345 亿美元报价谷歌浏览器,此前碰瓷 Tiktok 未果

    ai 应用领域再掀惊涛骇浪。 一家成立仅三年的初创公司 Perplexity,突然向科技巨头谷歌发起震撼攻势——正式提出以 345 亿美元全现金收购 Chrome 浏览器业务。 这一数字令人瞠目:Perplexity 在今年 7 月完成最新一轮融资后,估值仅为 180 亿美元。此次报价几乎达到自身估…

    2026年9月10日
    100
  • 4499元起!荣耀Magic8系列正式开售 配AI智能体YOYO

    4499元起!荣耀Magic8系列正式开售 配AI智能体YOYO4499元起!荣耀Magic8系列正式开售 配AI智能体YOYO4499元起!荣耀Magic8系列正式开售 配AI智能体YOYO4499元起!荣耀Magic8系列正式开售 配AI智能体YOYO

    10月23日,荣耀magic8系列正式发售。该系列手机聚焦ai技术与全场景智慧体验的深度结合,首次搭载全新magicos 10操作系统以及具备自进化能力的ai智能体yoyo,同时在硬件配置方面也实现了全面跃升。 荣耀Magic8 据CNMO消息,荣耀Magic8系列采用第五代骁龙8至尊版芯片平台。其…

    2026年9月10日 用户投稿
    000
  • 智能客服全能助手!聚合接待平台覆盖淘宝京东,实现全渠道响应!淘宝京东全搞定!晓多聚合接待让跨平台响应快如赤兔!

    一、电商客服管理的革命性突破 如今,商家在淘宝、京东等六大主流平台同步经营已成为常态,但随之而来的客服压力也日益加剧——日均300+咨询量,跨平台切换频繁,导致消息漏回、响应延迟、服务参差不齐等问题频发。晓多智能客服全能助手应运而生,如同电商战场上的“赤兔马”,实现全渠道秒级响应、多平台统一管理,助…

    2026年9月10日
    000
  • VSCode Webview面板架构设计

    Webview面板是VSCode扩展中用于嵌入网页内容的核心组件,基于Chromium引擎运行在隔离环境中,由Webview Panel、HTML内容、消息通信机制和资源加载策略构成;通过postMessage实现与扩展主进程的双向通信,需使用asWebviewUri安全引用本地资源;设计时应注重隔…

    2026年9月10日
    000
  • win10忘记开机密码怎么进入系统 _Win10忘记密码进入系统方法

    若无法登录Windows 10,可通过微软账户在线重置密码;本地账户可利用恢复环境替换Utilman.exe调用命令提示符修改密码,或使用PE启动盘清除密码;还可启用隐藏管理员账户绕过登录,若有预先创建的密码重置盘也可用于恢复访问。 如果您无法输入正确的密码登录Windows 10系统,导致被锁定在…

    2026年9月10日
    000
  • 苹果16 Pro Max如何查看后台应用耗电

    答案:查看 iPhone 16 Pro Max 耗电 App 需进入“设置”>“电池”,下拉查看过去24小时或10天的 App 耗电百分比排序,点击时间条可查看详情,开启“显示活动”可区分前后台使用时长,结合系统见解判断异常耗电,通过关闭后台刷新与限制定位服务减少不必要的耗电。 想知道你的 i…

    2026年9月10日
    100
  • 构建基于ZFS文件系统的NAS存储服务器需要哪些特殊硬件支持?

    构建ZFS NAS需注重内存、ECC支持、直通磁盘控制与UPS:建议每TB配1-2GB RAM,优先选用ECC内存以保障数据完整性;使用IT模式HBA卡实现磁盘直通,避免假RAID;可选企业级SSD作为ZIL提升写性能,配合UPS防止日志中断;L2ARC可扩展读缓存但需权衡内存开销;核心在于可控性与…

    2026年9月10日
    000
  • 苹果手机连接不上wifi如何解决

    检查wifi是否开启 第一步,确保手机的wifi功能已经开启。可以通过从屏幕右上角向下滑动,打开控制中心,查看wifi图标是否处于亮起状态。如果未开启,点击图标将其打开。 确认网络名称和密码无误 请核对所连接的wifi名称和密码是否准确。如果是公共场所的网络,建议向管理人员获取正确的连接信息;若是家…

    2026年9月10日
    000
  • VSCode怎么右键打开HTML_VSCode右键菜单添加HTML预览功能教程

    首先安装“Open in Browser”插件并重启VSCode,右键HTML文件可选择在默认浏览器中预览;通过设置指定浏览器如Chrome或Firefox,或使用Live Server插件实现自动刷新预览,若插件失效则检查配置、环境变量或重装插件。 在VSCode中,右键打开HTML文件并进行预览…

    2026年9月10日
    100
  • 虚拟化与云计算硬核技术内幕 (32) —— 产品经理与潘金莲

    在上一期中,小e学习了如何利用namespace机制,实现了进程之间cpu、ram、网络、用户、文件系统挂载点和进程ipc的隔离,同时也学习了利用cgroups机制,来限制进程对资源的使用,例如将进程占用的cpu时间片限制为100mcore (100毫核,相当于0.1核)。 有了这两种机制,是不是就…

    2026年9月10日
    000
  • VSCode版本管理:解决代码冲突

    代码冲突发生时,VSCode通过颜色高亮和操作按钮直观展示当前与 incoming 更改,可选择保留、合并或手动编辑,解决后保存并提交即可。建议频繁拉取更新、使用特性分支、减少共改同一文件以降低冲突风险。 在使用 VSCode 进行版本管理时,代码冲突是多人协作开发中常见的问题。当多个开发者修改了同…

    2026年9月10日
    000
  • Laravel模型递增ID?自增ID如何禁用?

    禁用Laravel自增ID需在迁移中使用uuid(‘id’)->primary()并设置模型$incrementing = false和$keyType = ‘string’,以支持UUID主键。 Laravel模型默认是使用自增ID作为主键的,…

    2026年9月10日
    100
  • vs2010怎么显示代码行数

    在使用 visual studio 2010 编程时,显示代码行数可以更高效地定位问题和理解程序结构。以下是几种在 vs2010 中查看或显示代码行数的有效方式。 方法一:利用状态栏查看当前行号 启动 VS2010,并打开需要编辑的项目。 在顶部菜单中点击“视图” → “状态栏”,确保状态栏已启用并…

    2026年9月10日
    100

发表回复

登录后才能评论
关注微信