首页 > 后端开发 > php教程 > 在Laravel中,如果同时有多个开发者,怎么进行包的更新?

在Laravel中,如果同时有多个开发者,怎么进行包的更新?

WBOY
发布: 2016-06-06 20:12:45
原创
903 人浏览过

是这样的,如果其中一个人增加了一项依赖,并且是注册到了Provider中。此时其他人更新完代码后,执行composer update会出现错误。
我曾想吧vendor加入到git中。但是开发中有一些包是不需要放到生产环境的。
我想请教一下各位大侠,是怎么处理这个问题的。

---更新---
我遇到的问题是这样的。
假如有两个开发者,他们已经完成了项目的初始化。现在开发者A在本地添加了依赖:
composer require vendor/package
这个包是一个Laravel的扩展,需要注册一个ServiceProvider。所以开发者A就需要在config/app.php中添加这个Provider。之后是一系列的后继配置blabla~。OK,现在A可以提交代码,并push到远程分支了。
而后开发者C(别问我B哪去了)pull下了代码。现在他在执行的代码时发现缺少依赖。那现在他需要添加这个依赖。
我现在的方式是执行了
composer update vendor/package
因为Laravel在composer.json中注册了几个钩子,其中一个会在更新时执行。这个命令在初始化的时候,因为要加载ServiceProvider,而代码中A添加的Provider在依赖中并不存在。所以composer就happy的抛出异常退出了。
这就是我的问题。请问大家是怎么处理的

回复内容:

是这样的,如果其中一个人增加了一项依赖,并且是注册到了Provider中。此时其他人更新完代码后,执行composer update会出现错误。
我曾想吧vendor加入到git中。但是开发中有一些包是不需要放到生产环境的。
我想请教一下各位大侠,是怎么处理这个问题的。

---更新---
我遇到的问题是这样的。
假如有两个开发者,他们已经完成了项目的初始化。现在开发者A在本地添加了依赖:
composer require vendor/package
这个包是一个Laravel的扩展,需要注册一个ServiceProvider。所以开发者A就需要在config/app.php中添加这个Provider。之后是一系列的后继配置blabla~。OK,现在A可以提交代码,并push到远程分支了。
而后开发者C(别问我B哪去了)pull下了代码。现在他在执行的代码时发现缺少依赖。那现在他需要添加这个依赖。
我现在的方式是执行了
composer update vendor/package
因为Laravel在composer.json中注册了几个钩子,其中一个会在更新时执行。这个命令在初始化的时候,因为要加载ServiceProvider,而代码中A添加的Provider在依赖中并不存在。所以composer就happy的抛出异常退出了。
这就是我的问题。请问大家是怎么处理的

1、有人已经require包,就证明这个配置已经在 composer.json文件中了,对于你来说,你 pull 了代码,只需要 composer install 就可以了,完全不需要update

2、另外一种情况避免问题,就是有大于一个的开发者,那最好是确实谁是主导者,谁能决定一些什么事情。

首先,新的包要放到composer.json里面,然后只上传该文件到git里面。其他团员可以随时更新composer.json文件。

其次,如果有些包只是在开发环境而不是在线环境的话,你可以放需要的包到:

<code>"require-dev": {
    "codeception/codeception": "1.6.0.3"
}
//然后只安装开发环境所需要的服务包 这样你就可以随时掌握不同的服务包在不同的环境下面了
composer install --dev
</code>
登录后复制

你应该把执行composer update时出的错误贴上来,否则别人不知道你出的究竟是什么问题!

将 composer.json 加入 git 版本控管
vendor 包就不是问题了..

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板