【问题标题】:upgrading from PHP 5.1 to PHP 5.3从 PHP 5.1 升级到 PHP 5.3
【发布时间】:2012-03-06 16:27:22
【问题描述】:

我目前正在研究将我的网站从 PHP 5.1.6 升级到 5.3.10 的可行性。该网站在 CentOS 上运行。

我知道主要区别,例如命名空间和闭包的引入。我还花了一些时间查看迁移指南上的“向后不兼容性更改”,这些内容看起来不错,我将花费大量时间。

有什么“陷阱”需要我留意吗?

【问题讨论】:

  • @Evert:并非如此,这些版本之间发生了很多变化。 IE。 v5.1 中正确的东西在 v5.3 中并不总是正确的,因此单元测试根本无济于事。
  • 主要的“陷阱”是 PHP 5.4 现已推出。
  • @Xeoncross 我知道 PHP 5.4 的最新版本,但是考虑到它是最近发布的,我担心支持和潜在问题。
  • @crmpicco 我也认为等待至少 5.4.1 是明智的。从历史上看,x.x.0 版本几乎总是存在一些问题。
  • @Evert 我觉得 5.1.6 -> 5.4.x 是一个很大的飞跃,所以我想我会分两个阶段进行; 5.1.6 -> 5.3.10,然后到 5.4.x。

标签: php migration


【解决方案1】:

我最近也跳转到 5.3.x 并注意到以下问题(来自我的 blog):

date.timezone (php.ini):

  • PHP 开发人员将错误级别从严格降低到警告,因此如果您没有正确设置此日期函数,您将看到围绕任何日期函数的大量警告。

例子:

date.timezone = America/Los_Angeles

__toString():

  • 在 PHP 5.3 中,神奇的 __toString() 方法不再允许您传入参数,这在某种程度上是有意义的,但确实会降低灵活性。

如 cmets 中所述,您最好先升级到 5.3.10,然后再迁移到 5.4.1 甚至 5.4.2。立即跳到 5.4.0 不是一个好主意,当他们发布 5.4.1 的更新日志时,您就会明白为什么。

【讨论】:

  • 除了像这样的一些改变,确保你安装了你在上次安装中认为理所当然的扩展是成功的一半,正确编写代码将解决另一半。
【解决方案2】:

我必须让 MediaWiki 1.15.1 在 PHP 5.3 上运行,因为我正在重新托管它 (here)。当时的开发团队在交接中已经“放手”了,所以社区志愿者需要介入来做这件事。 MW 开发人员的建议是“MW1.15 与 PHP 5.3 不兼容;升级到 MW 1.17”

由于与自定义扩展相关的各种原因以及需要坚持使用 MW 1.15 架构作为垫脚石,我不得不坚持使用 MW 1.15。伙计,是不是很痛苦!!!!

主要问题是“具有按值调用的按引用参数的函数的行为已更改。以前该函数将接受按值参数,但现在会发出致命错误。”换句话说,5.1 和 5.2 在这里有一个草率的容忍度,而 5.3 会因为一个致命的错误而呕吐。静态地找到所有这些是不切实际的,所以这是一个尝试使用常见路径、挖掘错误日志以深入挖掘并找到发生这种情况的数十个案例并检查记录的 API 以通过以下方式修复每个案例的案例案例基础。我想不出其他任何被烧毁的incompatibilities。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-09
    • 2015-05-20
    • 1970-01-01
    • 2021-03-04
    • 2012-07-23
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    相关资源
    最近更新 更多