必须在主项目composer.json的repositories中配置type为"path"的仓库,url用相对路径(如"../my-utils"),本地包需有合法composer.json且name与require完全一致、含git commit,启用symlink并执行composer update才能实时调试。

要在主项目中实时调试本地 PHP 包,必须让 Composer 直接读取磁盘上的源码目录,而不是从 Packagist 下载副本;这要求在主项目 composer.json 的 repositories 中正确声明 path 类型仓库,并确保本地包的 name、路径、版本三者逐字对齐,否则 Composer 会静默跳过该仓库且不报错。
配置 path 仓库的基本结构
在主项目根目录的 composer.json 文件中,找到或新增 【repositories】 字段,它必须是顶层数组,不能嵌套在 require 或其他字段下。
添加一个对象,type 设为 "path",url 值写成相对于该 composer.json 文件的路径,例如 "../my-utils" 或 "./packages/sdk-core"。
url 末尾不能加斜杠,写成 "../my-utils/" 会导致整个仓库被 Composer 忽略——这个错误不会触发任何提示,只会让 require 失败。
整个 repositories 必须是数组格式:即使只配一个仓库,也要写成 [{ "type": "path", "url": "../my-utils" }],写成 { "type": "path", "url": "../my-utils" } 会解析失败。
本地包 composer.json 的硬性要求
方法一:name 字段必须与主项目 require 中的字符串完全一致,包括大小写、分隔符(仅允许短横线 -)、vendor 名全部对齐。例如本地包写 "acme/utils",主项目就不能写 "Acme/utils" 或 "acme_utils"。
方法二:目录下必须存在合法的 composer.json 文件,语法需严格有效(无尾逗号、全双引号、JSON 格式正确),且至少包含 name 和 version 两个字段;version 可填 "dev-main"、"dev-develop" 等分支名,不能留空或写 "1.0.0"——path 源下 version 字段仅用于占位,Composer 实际只读取当前 Git HEAD 所在分支。
方法三:本地包目录必须已执行过 git init 并至少有一个 commit,否则 Composer 会拒绝加载该包,报错 "Package is not installed" 但不说明原因。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
启用符号链接实现热更新
第一步:在本地包自己的 composer.json 中添加 【"options": {"symlink": true}】 ——不是主项目配,而是本地包配;缺这句,Windows 和 Docker 环境下一定会 fallback 到复制模式,改代码不生效。
第二步:以管理员权限(Windows)或开启开发者模式(Windows)运行终端,确保系统支持创建符号链接。
第三步:执行 composer update acme/utils(指定包名),不是 composer install;install 不会刷新已有链接,update 才会重建 symlink 并指向最新 HEAD。
验证是否成功:Linux/macOS 运行 ls -la vendor/acme/utils,输出应含 -> ../my-utils;Windows 运行 dir vendor\acme\utils,应显示“JUNCTION”或“快捷方式”类型。若显示为普通文件夹,说明 symlink 创建失败,立刻检查本地包 composer.json 是否漏了 options 段。
避免生产环境部署失败
CI/CD 流水线或生产服务器上不存在本地路径,一旦 repositories 中保留 path 条目,composer install 会直接报错并中断构建。
不要将 path 配置提交到 Git 主干分支;开发时用临时分支或本地 patch 方式管理,上线前必须手动删除或注释掉 repositories 中的 path 条目。
更稳妥的做法是使用 Studio 工具:它通过运行时动态注入仓库配置,不修改 composer.json,避免误提交风险。

















