如何在'composer update'命令时防止覆盖文件

时间:2015-07-25 07:04:54

标签: composer-php laravel-5.1

我正在开发laravel 5.1项目。我已更新了几个用于自定义的文件,例如vendor / laravel / framework / src / Illuminate / Foundation / Auth / AuthenticatesUsers.php文件。它需要安装新包,所以我修改了composer.json并运行命令'composer update'并安装了包,但我在AuthenticatesUsers.php文件中更新的所有代码都被原始代码替换。

如何在更新作曲家时防止这种覆盖?

2 个答案:

答案 0 :(得分:0)

如果您还想使用Composer轻松更新依赖项,则不应编辑vendor文件夹中的文件。有效地编辑外部包的文件意味着您正在分配该项目并自行维护。这意味着您只需应用一次更改,然后停止所有进一步的开发,或者您经常需要检查原始包的更新并将其更改与您的更改合并。

我很确定有一些方法可以解决现有文件中添加更改的根本问题,但您当前的问题会受到XY problem的影响 - 您想要向Laravel添加更改但不知道如何做得好,发现编辑可以解决问题,但现在需要防止覆盖该文件,并询问是否阻止覆盖 - 而不是询问如何将更改添加到Laravel类。

答案 1 :(得分:0)

一个漂亮而干净的解决方案是fork the repository并将其添加到packagist。然后只需使用改进版(即可以说)laravel的源代码来改变作曲家依赖性。