Composer不支持批量重命名包,所谓“重命名”实为三类操作:改installer-name仅调整vendor内目录名;用repositories+package类型伪造新包名;或借助Rector等工具重构命名空间,三者均需手动逐包配置且不改变功能契约。

Composer 没有“批量重命名包”这个功能,所谓“重命名”实际是三类不同操作的混淆:改安装目录名(installer-name)、换包身份(repositories + package 类型)、或重构代码命名空间(需外部工具)。动画素材整理和 Composer 无关,别被标题误导。
用 installer-name 改 vendor 下的包目录名
这只能改单个包在 vendor/ 里的文件夹名,不影响代码、autoload 或依赖关系,纯属视觉整理。
- 必须在该包自己的
composer.json里加:"extra": {"installer-name": "my-animation-kit"} - 主项目执行
composer update vendor/package后,目录从vendor/vendor/package变成vendor/my-animation-kit - 不支持通配符或正则;多个包要分别改各自的
composer.json - 风险点:如果其他包硬编码了
vendor/vendor/package路径(比如某些插件扫描逻辑),会直接失效
用 repositories + package 类型伪造新包名
这是真“换名”——让 Composer 把一个包当成另一个名字来装,连 require 语句都要跟着改。适合你想彻底隔离旧包、又不想动原仓库时。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- 在主项目
composer.json的repositories里加一条package类型源: "type": "package", "package": { "name": "my-org/animation-tools", "version": "1.0.0", "dist": { "url": "https://example.com/archive.zip", "type": "zip" }, "autoload": { "psr-4": { "MyOrg\Animation\": "src/" } } }- 然后
composer require my-org/animation-tools:1.0.0—— 注意,这里name是你自定义的,不是原包名 - 漏写
autoload就 Class not found;dist.url必须是 zip/tar 直链,不能是 Git URL
命名空间重构不是 Composer 职责,别用 sed 硬扫
如果你说的“动画素材”其实是 PHP 类(比如 AnimationSprite、TimelineEffect),那改命名空间必须用 AST 工具,否则必翻车。
-
composer require rector/rector --dev,再配RenameClassRector规则,精准改use、new、返回类型、联合类型 - 同步改三处:
composer.json的autoload.psr-4映射、文件物理路径(如从src/Anim/移到src/Effects/)、再跑composer dump-autoload -o - 用
grep -r "namespace Anim\" vendor/查有没有第三方包也占了同名空间,冲突得手动解
真正容易被忽略的是:所有这些“重命名”都不改变包的功能或接口契约。如果你依赖的动画库本身 API 不稳定,换个名字也救不了运行时错误——先看 composer outdated 和 composer why-not,再动手。

















