gpt4 book ai didi

php - 在 Laravel 中安全地编辑第三方 Composer (供应商)包并防止在发布新版本包时丢失自定义更改

转载 作者:可可西里 更新时间:2023-11-01 12:30:14 24 4
gpt4 key购买 nike

我想编辑我在 Laravel 5 项目中从 composer 中提取的一个包,但是我相信如果我运行 composer update 并且这个包的新版本已经发布,我将失去所有我的改变。我应该如何编辑包?有没有办法将包从供应商目录中复制出来,以便我可以在项目的其他地方使用它?

最佳答案

简单、快速、安全的方法:

  1. 在 Laravel 的根目录中创建一个目录,并将其命名为 packages 或任何您喜欢的名称。
  2. 将修改后的包从供应商目录移动到您的包目录。
  3. 更新 composer.json 以从您的 packages 目录而不是 vendor 目录加载包。

首先将它从 require 中移除

"require": {
"php": ">=5.6.4",
"laravel/framework": "5.3.*",
"laravelcollective/html": "^5.3.0", <==== remove this line
"barryvdh/laravel-debugbar": "^2.3",
"doctrine/dbal": "^2.5"
},

然后添加到自动加载

"autoload": {
"psr-4": {
"App\\": "app/",
"Collective\\Html\\": "packages/laravelcollective/html/src", <==== add this line
},
}

请不要忘记运行

composer dumpauto

步骤 3 的替代方法。

如果您使用的是最新版本的 Composer ,还有一个新的选择。

将这个添加到你的 composer.json

"repositories": [
{
"type": "path",
"url": "./packages/laravelcollective"
}
]

然后修改包的版本为dev-master

"require": {
"php": ">=5.6.4",
"laravel/framework": "5.3.*",
"laravelcollective/html": "dev-master", <==== this line
"barryvdh/laravel-debugbar": "^2.3",
"doctrine/dbal": "^2.5"
},

最后

composer update

关于php - 在 Laravel 中安全地编辑第三方 Composer (供应商)包并防止在发布新版本包时丢失自定义更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31080696/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com