【问题标题】:Upgrading Zend Framework Advise升级 Zend 框架建议
【发布时间】:2011-05-16 23:13:09
【问题描述】:

我在任何古老的 Zend Framework 版本 0.6 和 PHP 5.1.6 中使用“MJS_Controller_PathRouter”。当我在较新的 php 版本中运行它时,例如5.2.x 或 5.3.x,它抛出这个错误:

声明 MJS_Controller_Router_PathRoute::__construct() 必须与 Zend_Controller_Router_Route_Interface::__construct() 在 /opt/ezxwebadmin-versions/ezxwebadmin_2.11.5/Library/MJS/Controller/Router/PathRoute.php 第 34 行

我想删除这个增强的重写路由器并升级我们的应用程序以使用更新的 Zend Framework 版本。我们的 Web 应用程序不使用 Zend 提供的任何类,我们只是利用 MVC 架构和 Zend 框架的重写功能。

现在有人能建议我们升级到哪个 Zend Framework 版本吗?

【问题讨论】:

  • 它总是最新的。这是唯一一个,包括所有错误和安全修复。
  • 如果您只使用 MVC 部分,那么我能给出的最佳建议是删除该部分并使用更简单和可测试的东西。
  • 是的。我也在考虑使用最新版本。但问题是我们已经部署了这个 Web 应用程序的服务器正在使用 PHP 5.1.6,所以如果需要,我是否能够在不将 PHP 5.1.6 升级到 5.3.x 的情况下升级这些服务器上的 Web 应用程序?

标签: php zend-framework upgrade


【解决方案1】:

您遇到的错误实际上是 PHP 严格的编码标准错误,应该很容易修复。只需打开Zend_Controller_Router_Route_InterfaceMJS_Controller_Router_PathRoute 并比较__construct 方法的参数即可。它们需要相同,因此请更改您的类以匹配接口中的参数。

Zend 框架需要 PHP 5.2.4。 ZF2 需要 PHP 5.3+。 PHP 5.1.6 已经快 5 年了,所以你真的应该升级(或计划升级)。如果您正在使用像 CentOS 这样的带有非常古老的 PHP 包的东西,您可能需要考虑切换到 Zend Server 社区版(它是免费的)。这可以与 Yum 一起安装,并为您提供更新版本的 PHP。

【讨论】:

  • 感谢您的建议。首先,我修复了这个MJS_Controller_Router_PathRoute 并确保它与Zend_Controller_Router_Route_Interface 兼容。还同意将 PHP 从 5.1.6 升级到 5.2.x/5.3.x。
【解决方案2】:

您应该仔细查看从 0.8 开始的 Zend Framework Migration Notes

然后查看Zend Framework Download Archives 并逐个版本升级您的框架版本(遵循迁移说明中列出的版本)以获取与您拥有的 PHP 兼容的版本或(理想情况下)最新版本:1.11。 x

【讨论】:

  • 我检查了迁移说明,它们很好。感谢您向我指出这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-19
  • 2012-04-27
  • 2012-03-12
  • 2011-12-12
  • 2020-05-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多