在开发 Symfony2 项目时,我经常遇到第三方包中的错误。大多数时候,这些错误很微妙,但很难找到。例如,仅在本周我就发现了三个错误,其中使用简单的 if ( $value )
构造测试了一个值,但需要使用 ( $value !== null)
或 ( $value !== false )
。
在相关项目的相关 github 页面上没有足够的权限,我能做的最好的事情就是推送一个 pull 请求。 merge 请求通常需要相当长的时间。同时,特别是在使用 master 版本时, merge 其他 pull 请求,从而导致 composer 进行更新。发生这种情况时,任何本地错误修复都将恢复为原始代码。
有什么方法可以处理这种情况吗?
理想情况下,我希望第三方包能够更新,但我的修改仍然存在。当然,直到 pull 请求被 merge 。
最佳答案
有一个项目允许您在使用 composer 下载包后应用补丁。它是为与 Drupal 项目一起使用而创建的,但我相信它也应该与您自己的补丁一起使用。
https://github.com/jpstacey/composer-patcher
否则,您可以 fork 项目、进行改进、提交 pull 请求,同时在 composer 中使用您自己的 fork 存储库。请参阅[此答案][ https://stackoverflow.com/a/14637668/3492835 ) 以获得有关如何实现该目标的详细说明。
编辑:
明星们说现在快到 2016 年了,有些事情发生了变化。
jpstacey/composer-patcher
被认为已弃用,取而代之的是 netresearch/composer-patches-plugin项目。这是一个 Composer 插件,功能基本相同,但它也能够应用本地补丁。
关于php - Composer 和第三方错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27922782/