Совместим ли Zend Framework 1 с PHP 7.2?


У меня есть проект, построенный в Zend Framework 1. С PHP до 7.1 он работает нормально. Когда я обновил PHP на одном из тестовых серверов, он показывает внутреннюю ошибку:

Фатальная ошибка: декларация Zend_Rest_Route::собрать($данных = массив $возврат = false, то $кодировать = правда) должен быть совместим с Zend_Controller_Router_Route_Module::собрать($данных = массив $возврат = false, то $кодировать = true и $частичным = ложь) в /public_html/библиотека/Зенд/отдых/маршрут.php on line 52

Похоже, что оба класса принадлежат фреймворку. Установленная версия ZF1-1.12.18.

Существует ли версия ZF1, совместимая с PHP 7.2? Или обновление до ZF2 неизбежно для поддержания совместимости?

1 2

1 ответ:

Да, ошибка вызвана ужесточением модели наследования PHP, поэтому если код фреймворка не работает с этой ошибкой в PHP 7.2, то ответ заключается в том, что фреймворк не совместим с 7.2, по крайней мере, не без исправления этой (и других подобных) ошибок.

Эта ошибка определенно выглядит так, как будто она станет для вас пробкой шоу, и Zend 1 больше не поддерживается, поэтому я думаю, что простой ответ заключается в том, что вам придется либо обновить Zend, либо не обновлять PHP.

Ваш другой альтернативой было бы развилить Zend самостоятельно и исправить проблемы совместимости. Или могут быть разветвления сообщества другими людьми, которые сделали то же самое. Хотя я бы не рекомендовал этого делать. В какой-то момент вам придется укусить пулю и обновить; это будет труднее сделать, чем дольше вы оставите его, так что вы можете сделать это сейчас.