我在我的应用程序中工作,我正在使用一些软件包,但我有必要更改或添加一些逻辑。我读到,当它们在供应商目录中时,我们必须不更改包的代码,但我没有找到我可以做的。任何想法?
答案 0 :(得分:3)
这与包不同。
一刀切的解决方案是分叉包,基本上复制它并修改复制版本中的代码。
通常,软件包可以提供扩展或构建其工作的方法。这将非常依赖于软件包,我建议您参考它的文档以获得更多帮助。
如果你采取第一条路线,你必须知道一些事情:
你分叉一个包,你将负责维护它。
如果您对软件包进行分叉,则最终会得到一个由原始作者无法维护的软件包,因为您已对其进行了更改。如果将其保留在编辑器中并编辑原始包,则下次运行composer update
时将覆盖该包。此外,如果您正在对工作进行版本控制,则不会对您的包进行修改。但如果正确分叉,它将与原始包装无关。这意味着您的软件包可能会过时,除非您花费精力维护它的更新。
如果你正在使用作曲家,这很可能会涉及分支原始包回购和修改该回购中的代码。 (不要只对本地包文件执行此操作)。这可能是最好的解决方案,因为这意味着如果原始仓库对其包进行了更改,您可以执行与您的仓库的合并以将其更新带入您的代码(同时不影响您的更改,除非更新直接与代码交互你正在修改)。从那里,将新的分叉存储库添加到composer.json
文件中并使用它。