我是Laravel的新手,我已经将一个插件插入我要编辑的项目(https://github.com/jeremykenedy/laravel-users)中。
我对vendor / jeremykenedy / laravel-users / src中的文件进行了一些编辑,虽然达到了预期的效果,但是供应商位于Laravel的.gitignore中,因此无法跟踪我的更改。我当然可以编辑.gitignore,但显然我做不到正确的方法。
我还尝试将文件的编辑版本复制到我的主App / Http / Controllers目录(保持相同的文件名),以防Laravel具有覆盖层次结构之类的东西,但无效。
以git跟踪的方式编辑Laravel插件行为的正确方法是什么?
编辑:为弄清原因,我在用户表中添加了新列(“类型”列),希望此列是可编辑的,并且还可以为新字段输入内容添加用户时。
答案 0 :(得分:3)
很明显,您不应该在vendor
目录中进行任何编辑。您应该在github上分叉软件包。进行更改,然后在composer.json
您可以在那里读到
有一些用例。最常见的一种是维护 您自己的第三方库的分支。如果您使用某种 您的项目的库,您决定更改 库,您将希望您的项目使用补丁程序版本。如果 库在GitHub上(大多数情况下是这种情况),您可以 只需将其分叉并将更改推送到分叉即可。之后 您更新项目的composer.json。所有您需要做的就是添加您的 派生作为存储库并更新版本约束以指向 您的自定义分支。在composer.json中,您应该为自定义添加前缀 分支名称为“ dev-”。有关版本约束的命名约定,请参见 图书馆以获取更多信息。
所以这对您来说是完美的用例。
所以基本上:
fork
按钮)您应该创建自定义分支(例如new-features
)并将所有更改推送到该分支中
您应该添加到composer.json
:
"repositories": [
{
"type": "vcs",
"url": "https://github.com/YOUR-GITHUB-USER/laravel-users"
}
],
您应该确保自己位于require
的{{1}}块中:
composer.json
其中"jeremykenedy/laravel-users": "dev-YOUR_BRANCH_NAME"
与步骤2中的分支名称匹配(例如YOUR_BRANCH_NAME
)-请记住,此处应以new-features
答案 1 :(得分:1)
我建议分叉原始存储库,并将您的更改添加到此存储库中,然后您可以向原始存储库创建拉取请求,以防此更改对其他用户也有用。
他们当然可以拒绝您的请求请求,因此为了使您的更改在您的项目中可用,您可以在packagist上注册fork。然后,您可以在供应商文件中引用您的软件包版本。
重要提示:不要忘了在您的仓库以及包装商中提及原始仓库和发行商,他的代码值得称赞;)