Сегодня я побежал composer update
, и обновление полностью сломало мой сайт. Я нашел в php.log следующую информацию:
72.15.153.139 - - [11/Ноябрь/2015: 21: 01: 45 -0500] "GET/HTTP/1.1" 500 - "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv: 42.0) Gecko/20100101 Firefox/42.0" [Wed Nov 11 21:01:48 2015] [error] [клиент 127.7.179.129] Ошибка PHP-анализа: синтаксическая ошибка, неожиданная "функция" (T_FUNCTION), ожидающая идентификатор (T_STRING) или \\(T_NS_SEPARATOR) в/var/lib/openshift/55c481747628e14556000188/app-root/runtime/repo/config/vendor/danielstjules/stringy/tests/CreateTest.php в строке 5 "GET/HTTP/1.1" 500 - "-" "Mozilla/5.0 (Windows NT 6.1, WOW64; rv: 42.0) Gecko/20100101 -" [11/Ноябрь/2015: 21: 01: 48 -0500] Firefox/42,0"
Похоже, что виноват "danielstjules/stringy". Но как я могу вернуться к старой версии (или с помощью новостной версии?) Этого пакета? Я попытался изменить файл composer.lock и изменил
"require": {
"danielstjules/stringy": "~1.8",
to
"require": {
"danielstjules/stringy": "~1.9",
и снова запустите composer update
, но он предоставил информацию:
Загрузка репозиториев композитора с информацией о пакете Обновление зависимостей (включая require-dev) Ничего не устанавливать или обновлять Запись файла блокировки Создание файлов автозагрузки Ошибка PHP Parse: синтаксическая ошибка, неожиданные "функции" (T_FUNCTION), ожидающий идентификатор (T_STRING) или \(T_NS_SEPARATOR) в/var/lib/openshift/55c481747628e14556000188/app-root/runtime/repo/config/vendor/danielstjules/stringy/tests/CreateTest.php в строке 5 Script php artisan с явным компилятором обрабатывает событие post-update-cmd, возвращенное с ошибкой
[RuntimeException] Ошибка: ошибка PHP Parse: синтаксическая ошибка, неожиданная функция (T_FUNC TION), ожидая идентификатор (T_STRING) или \(T_NS_SEPARATOR) в/var/lib/o penshift/55c481747628e14556000188/приложение корневой/выполнение/репо/конфигурация/поставщик/Danie lstjules/stringy/tests/CreateTest.php в строке 5
Как я могу отменить этот пакет? Спасибо.
ИЗМЕНИТЬ 2:
composer install
автоматически изменит composer.lock
. Вместо этого я изменил composer.json
, и он успешно использовал старую версию 1.8.
Но сборка все еще не удалась. Это описание проблемы было причиной. Но после я rm -rf test/
проблема все еще была.
ИЗМЕНИТЬ 3:
Я попробовал следующее:
-
rm -rf vendor/
-
composer update
Проблема исчезла.