> 백엔드 개발 > 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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿