@lolka02

Почему yii2 не работает с php версией 5.4 хотя в требованиях стоит от 5.4?

при запуске сайта с php5.4 выдает ошибку
PHP Parse error: syntax error, unexpected 'function' (T_FUNCTION), expecting identifier (T_STRING) or \\\\ (T_NS_SEPARATOR) in /var/www/site/data/www/site.ru/vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php on line 5

я так понял что эта библиотека работает с php7, есть ли обойти эту ошибку на php5.4? или как отказаться от этой библиотеки, в composer-e не нашел ее.
  • Вопрос задан
  • 1630 просмотров
Пригласить эксперта
Ответы на вопрос 3
Akdmeh
@Akdmeh
PHP, Yii2, Music
Если библиотека работает с PHP 7, то нужно либо переходить на PHP 7, либо отказываться от библиотеки.
Последняя версия PHP 5.4 была выпущена более трех лет назад. Сейчас даже 5.6 уже официально не поддерживается!
Вы действительно уверены, что стоит до сих пор использовать настолько застаревшее ПО?
Ответ написан
Комментировать
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
а как Вы ее обойдете, если если это сторонняя библиотека. Вы полезете в вендор править код? Да и если исправите какова вероятность, что не пойдут другие? Если библиотека под 7-ку, то надо использовать на семерке. К тому же семерка быстрее и вообще лучше чем 5.4. Так что я бы решал вопрос с версией php, а не с библиотекой. Хотя конечно всегда найдется говнокод, который решит вопрос с ошибкой. Но по такому скудному описанию сложно что-то советовать.
Ответ написан
@Vitsliputsli
Не важно зависимость yii это или нет. Yii2 может работать с 5.4 поэтому в composer.json указано "require": "php": ">=5.4.0". Для myclabs/deep-copy требуется php 7.2 поэтому в нем указано "require": "php": "^7.2". Очевидно, что при установке yii2 и компонента myclabs/deep-copy, разрешив зависимости, тот же composer забракует 5.4, т.к. хотя для yii2 этого достаточно, но уже недостаточно для myclabs/deep-copy.
Нужно обновлять php, потому что даже если и решите эту проблему, завтра возникнет подобная с другим компонентом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы