【发布时间】:2017-03-02 17:11:45
【问题描述】:
在供应商文件夹中更改通过 composer 安装的软件包的正确方法是什么。
A:将包目录复制到项目源中(不再被composer更改)并从那里使用。
B:扩展类。
我认为 B 是正确的方法,但我发现它有两个问题。 1. 扩展类可能与供应商目录中更新的基类不兼容。 (在“作曲家更新”之后) 2. 如何在类链中操作方法。
$classA = new ClassA();
$classB = $classA->getsomeOtherClassInstance();
$classB->methodToChange();
即我必须更改 A 类和 B 类以确保调用 B 的扩展版本。
【问题讨论】:
-
在私有存储库中分叉,然后根据需要对其进行编辑,然后将其用作单独的包,这将防止在您想要更新时将包“重新覆盖”到原始包您的供应商。
-
@HassanAhmed 作为一个单独的包使用......你的意思是我会将它添加到作曲家并成为我自己的供应商,还是让它位于供应商文件夹之外的目录中。
-
还有第三种方式:组合。
标签: php composer-php