2015-06-01 3 views
2

Я и мой коллега пытаются использовать локальный репозиторий git для нашего проекта Laravel. Я использую Ubuntu с PHP 5.5.9-1ubuntu4.9, и он использует Debian с PHP 5.4.39.Laravel + git, авторы имеют другую среду

Когда я вытащил свою зафиксированную версию, я получаю сообщение об ошибке при попытке запустить composer update:

[email protected]:/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 

У нас есть папка поставщика на мерзавца, так как не имея это не вариант для нас.

Я думаю, проблема в разных версиях PHP. Есть ли способ настроить версию PHP вручную, поэтому композитор получает правильные зависимости?

+2

Я не рекомендовал бы работать на проект с двумя разными версиями PHP. Это сломает ситуацию долгосрочно. Простой пример: если вы запустите «композиторное обновление» и добавьте версию библиотеки, для которой требуется PHP 5.5 и выше, это обновление не будет выполняться на ваших коллегах PHP. Всегда используйте версию PHP, которая должна использоваться в производстве! Используйте его и на всех машинах разработки - это уменьшит неприятные сюрпризы. – Sven

ответ

0

Проблема была, вероятно, это:

пользователя проверяется в проекте, включая папку поставщика.

Позже поставщик каким-то образом добавлен к .gitignore

Никто не заметил, что новые файлы не были добавлены в репозиторий и магии сделал, что все еще работал, как это было: D

1

вы можете установить PHP версии в файле composer.json в части требуют

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

Я пробовал и получил эту ошибку: - Для этого пакета требуется PHP 5.4.39, но ваша версия PHP (5.5.9-1ubuntu4.9) не удовлетворяет этому требованию. Это заставляет PHP версию, но не решает мою проблему. Спасибо. –

+0

Я не включал> = часть, хотя –

+1

Это требование НЕ является принудительной и версией PHP, когда дело доходит до разрешения доступных библиотек. Это заявление о требованиях к программному обеспечению, которое этот 'composer.json' принадлежит, например. PHP-код, который использует функции PHP5.4, должен содержать здесь минимум 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-версий с некоторыми необходимыми исправлениями. – Sven

Смежные вопросы