我有一个使用Zend Framework 1构建的项目。使用PHP高达7.1,它工作正常。当我在其中一个测试服务器上升级PHP时,它显示一个内部错误:
致命错误:声明 Zend_Rest_Route :: assemble($ data = Array,$ reset = false,$ encode = true)必须与 Zend_Controller_Router_Route_Module :: assemble($ data =第52行的/public_html/library/Zend/Rest/Route.php中的数组,$ reset = false,$ encode = true,$ partial = false)
看来这两个类都属于框架。安装的ZF1版本为1.12.18。
是否有与PHP 7.2兼容的ZF1版本?或者升级到ZF2是不可避免的,以保持兼容性?
答案 0 :(得分:4)
是的,错误是由PHP的继承模型收紧引起的,所以如果框架代码在PHP 7.2中失败并出现此错误,那么答案是框架与7.2不兼容,至少在没有修复此问题的情况下(和其他类似的错误。
这个错误看起来肯定会对你来说是一个显示阻止,并且Zend 1不再被维护,所以我想简单的答案是你将不得不升级Zend或者不升级PHP。
您的另一种选择是自己分叉Zend并修复兼容性问题。或者也可能有其他人做过同样的社区分叉。我真的不会推荐这个。在某些时候,你将不得不咬紧牙关并升级;你离开它的时间越长越难,所以你现在也可以这样做。
答案 1 :(得分:2)
Zend Framework 1已经到了使用寿命,但是已经完成了一些分叉。 Shardj的一个与PHP 7.3兼容。