【问题标题】:PHP composer, don't lose package code changes on updatePHP 作曲家,不要在更新时丢失包代码更改
【发布时间】:2021-05-27 08:42:52
【问题描述】:

我正在开展一个项目,该项目需要对所需的包进行许多编辑。一切正常,直到更新即将到来。更新包后,对其所做的所有更改都会立即替换为较新的版本(即使更新后的文件没有实际更新)。

我的问题是,我怎样才能在修改后的包上保留我的编辑,并且仍然能够运行 composer update 而不必担心丢失我的编辑并重新开始。

【问题讨论】:

  • 当然。这就是为什么你永远不应该改变 vendor 文件夹中的任何内容

标签: php composer-php save


【解决方案1】:

简答:你不能。更新将始终提取存储库中存在的代码并覆盖本地副本。这就是包的工作原理。

更长的答案:你不能。编辑包是一个坏主意。如果您发现需要编辑包,则说明您执行错误,因为不需要修改该代码。如果您需要其他功能,您可以:

  1. 添加一个包装器。创建一个称为外观的类,它实现了该包,但具有您想要的更改功能。
  2. fork 并添加新功能,看看是否可以将其添加到包中。您想要的功能可能对其他人有用,如果作者同意,可以合并到包中。然后它将存在于您未来的所有更新中。
  3. 分叉,进行更改,然后包含它。如果由于某种原因前两个选项不起作用,您可以创建自己的项目分支并将您的更改放在那里。然后,每当您需要更新软件包以获取最新代码时,您都可以创建一个新的 fork 并将您的更改迁移/合并到它。

【讨论】:

  • 我可以问一个包装类的例子吗?例如,当我们使用具有多个类的包并假设我们要覆盖 5 个方法(或添加新方法)时,它会如何工作?
  • 我无法提供,因为它将为您尝试扩展的代码自定义编写。
猜你喜欢
  • 2015-09-11
  • 2014-01-27
  • 2018-09-02
  • 2020-05-11
  • 2016-11-30
  • 2014-09-20
  • 2021-10-16
  • 2015-02-16
  • 1970-01-01
相关资源
最近更新 更多