Laravel + git,贡献者环境不同

Laravel + git, contributors have different environment

我和我的同事正在尝试为我们的 Laravel 项目使用本地 git 存储库。 我使用的是 Ubuntu,PHP 5.5.9-1ubuntu4.9,他使用的是 PHP 5.4.39 的 Debian。

当我拉取他提交的版本时,尝试 运行 composer update:

时出现错误
user@ubuntu:/var/www/frontend$ composer install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Nothing to install or update
Generating autoload files
PHP Fatal error:  Class 'Illuminate\Support\Arr' not found in /var/www/frontend/vendor/laravel/framework/src/Illuminate/Support/helpers.php on line 182
Script php artisan clear-compiled handling the post-install-cmd event returned with an error   [RuntimeException]                                                                                                                                                            
Error Output: PHP Fatal error:  Class 'Illuminate\Support\Arr' not found in /var/www/frontend/vendor/laravel/framework/src/Illuminate/Support/helpers.php on line 182  

我们在 git 上有供应商文件夹,因为没有它不是我们的选择。

我想问题出在不同的 php 版本上。有没有办法手动设置 php 版本,以便 composer 获得正确的依赖项?

你可以在 composer.json 文件的 require 部分设置 php 版本

"require": {
"php": ">=5.3.0",
},

问题大概是这样的:

用户签入项目,包括供应商文件夹。

后来的供应商以某种方式被添加到 .gitignore

没有人注意到新文件没有被添加到存储库中,魔法确保一切仍然像以前一样工作:D