Zend Framework 1 与 PHP 7.2 兼容吗?

Is Zend Framework 1 compatible with PHP 7.2?

我有一个用 Zend Framework 1 构建的项目。在 PHP 到 7.1 时,它工作正常。当我在其中一台测试服务器上升级 PHP 时,它显示了一个内部错误:

Fatal error: Declaration of Zend_Rest_Route::assemble($data = Array, $reset = false, $encode = true) must be compatible with Zend_Controller_Router_Route_Module::assemble($data = Array, $reset = false, $encode = true, $partial = false) in /public_html/library/Zend/Rest/Route.php on line 52

看来 类 都属于该框架。安装的 ZF1 版本是 1.12.18.

是否有与 PHP 7.2 兼容的 ZF1 版本?还是为了保持兼容性升级到ZF2是不可避免的?

是的,错误是由于 PHP 的继承模型收紧引起的,所以如果框架代码在 PHP 7.2 中出现此错误,那么答案是框架是与 7.2 不兼容,至少在不修复此(和其他类似)错误的情况下不兼容。

这个错误看起来肯定会成为你的阻碍,Zend 1 不再维护,所以我想简单的答案是你将不得不升级 Zend 或不升级 PHP.

您的另一种选择是自己分叉 Zend 并解决兼容性问题。或者可能有其他做过同样事情的人进行社区分叉。不过我真的不推荐这样做。在某些时候,您将不得不硬着头皮升级;放得越久越难做,不如现在就做。

Zend Framework 1 已经结束,但已经完成了一些分支。 Shardj 的一个与 PHP 7.3 兼容。