编辑Laravel插件

时间:2018-10-05 11:17:22

标签: php laravel github composer-php git-fork

我是Laravel的新手,我已经将一个插件插入我要编辑的项目(https://github.com/jeremykenedy/laravel-users)中。

我对vendor / jeremykenedy / laravel-users / src中的文件进行了一些编辑,虽然达到了预期的效果,但是供应商位于Laravel的.gitignore中,因此无法跟踪我的更改。我当然可以编辑.gitignore,但显然我做不到正确的方法。

我还尝试将文件的编辑版本复制到我的主App / Http / Controllers目录(保持相同的文件名),以防Laravel具有覆盖层次结构之类的东西,但无效。

以git跟踪的方式编辑Laravel插件行为的正确方法是什么?

编辑:为弄清原因,我在用户表中添加了新列(“类型”列),希望此列是可编辑的,并且还可以为新字段输入内容添加用户时。

2 个答案:

答案 0 :(得分:3)

很明显,您不应该在vendor目录中进行任何编辑。您应该在github上分叉软件包。进行更改,然后在composer.json

中设置VCS repository

您可以在那里读到

  

有一些用例。最常见的一种是维护   您自己的第三方库的分支。如果您使用某种   您的项目的库,您决定更改   库,您将希望您的项目使用补丁程序版本。如果   库在GitHub上(大多数情况下是这种情况),您可以   只需将其分叉并将更改推送到分叉即可。之后   您更新项目的composer.json。所有您需要做的就是添加您的   派生作为存储库并更新版本约束以指向   您的自定义分支。在composer.json中,您应该为自定义添加前缀   分支名称为“ dev-”。有关版本约束的命名约定,请参见   图书馆以获取更多信息。

所以这对您来说是完美的用例。

所以基本上:

  1. 您应该在github上创建https://github.com/jeremykenedy/laravel-users的fork(顶部有fork按钮)
  2. 您应该创建自定义分支(例如new-features)并将所有更改推送到该分支中

  3. 您应该添加到composer.json

    "repositories": [
       {
          "type": "vcs",
          "url": "https://github.com/YOUR-GITHUB-USER/laravel-users"
       }
    ],
    
  4. 您应该确保自己位于require的{​​{1}}块中:

    composer.json

    其中"jeremykenedy/laravel-users": "dev-YOUR_BRANCH_NAME" 与步骤2中的分支名称匹配(例如YOUR_BRANCH_NAME)-请记住,此处应以new-features

  5. 为前缀

答案 1 :(得分:1)

我建议分叉原始存储库,并将您的更改添加到此存储库中,然后您可以向原始存储库创建拉取请求,以防此更改对其他用户也有用。

他们当然可以拒绝您的请求请求,因此为了使您的更改在您的项目中可用,您可以在packagist上注册fork。然后,您可以在供应商文件中引用您的软件包版本。

重要提示:不要忘了在您的仓库以及包装商中提及原始仓库和发行商,他的代码值得称赞;)