【问题标题】:Laravel + git, contributors have different environmentLaravel + git,贡献者有不同的环境
【发布时间】:2015-08-14 17:29:47
【问题描述】:

我和我的同事正在尝试将本地 git 存储库用于我们的 Laravel 项目。 我使用的是带有 PHP 5.5.9-1ubuntu4.9 的 Ubuntu,而他使用的是带有 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得到正确的依赖?

【问题讨论】:

  • 我不建议在一个项目中使用两个不同的 PHP 版本。这将长期破坏事情。简单示例:如果您运行 composer update 并添加需要 PHP 5.5 及更高版本的库版本,则此更新将不会在您的同事 PHP 上运行。始终使用应该在生产中使用的 PHP 版本!也可以在所有开发机器上使用它 - 这将减少令人不快的意外。

标签: php git laravel dependencies composer-php


【解决方案1】:

问题可能是这样的:

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

后来供应商不知何故被添加到 .gitignore

没有人注意到新文件没有被添加到 repo 中,魔术确保一切仍然正常运行:D

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我试过并得到了这个错误: - 这个包需要 php 5.4.39 但你的 PHP 版本(5.5.9-1ubuntu4.9)不满足这个要求。这会强制使用 php 版本,但不能解决我的问题。谢谢。
    • 虽然我没有包含 >= 部分
    • 在解析可用库时,此要求不是强制要求和 PHP 版本。这是关于 composer.json 所属软件要求的声明,例如使用 PHP5.4 特性的 PHP 代码应该至少需要 PHP 5.4.0。与 PHP 5.3 兼容的代码在这里会说 5.3.0 - 请记住,5.3 版本有几个重要的错误修复,因此最小值可能是 (IIRC) 5.3.3、5.3.9、5.3.17 之一或 5.3.23 以解决具有某些必需错误修复的 PHP 版本。
    • 我认为它会强制使用该版本,因为即使我安装了更高版本,它也会因上述错误而失败。我不明白没有 ">=" 它需要一个特定的版本。正如你所说,我添加了“>=5.4”,因为 laravel 4.2 需要这个版本,它现在应该对我们所有人都可以正常工作。
    猜你喜欢
    • 2014-10-16
    • 2012-07-29
    • 1970-01-01
    • 2014-01-30
    • 2011-09-13
    • 2010-12-24
    • 2014-04-15
    • 2021-12-10
    • 1970-01-01
    相关资源
    最近更新 更多