Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PHP5.1升级到PHP5.3_Php_Migration - Fatal编程技术网

从PHP5.1升级到PHP5.3

从PHP5.1升级到PHP5.3,php,migration,Php,Migration,我目前正在调查将我的网站从PHP5.1.6升级到5.3.10的可行性。该站点正在CentOS上运行 我知道主要的区别,比如名称空间和闭包的引入。我还花了一些时间研究了迁移指南上的“向后不兼容更改”,这些更改看起来不错,我将花费大量时间 有什么我应该留意的“陷阱”吗?我不得不让MediaWiki 1.15.1在PHP5.3上运行,因为我正在重新定位它。当时的开发团队在移交过程中已经“放手”,因此社区志愿者需要介入来完成这项工作。MW开发者的建议是“MW1.15与PHP5.3不兼容;升级到MW1.1

我目前正在调查将我的网站从PHP5.1.6升级到5.3.10的可行性。该站点正在CentOS上运行

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


有什么我应该留意的“陷阱”吗?

我不得不让MediaWiki 1.15.1在PHP5.3上运行,因为我正在重新定位它。当时的开发团队在移交过程中已经“放手”,因此社区志愿者需要介入来完成这项工作。MW开发者的建议是“MW1.15与PHP5.3不兼容;升级到MW1.17”

由于与自定义扩展相关的各种原因以及坚持使用MW 1.15模式作为跳板的需要,我不得不坚持使用MW 1.15。伙计,这是一种痛苦


主要问题是“具有按值调用的按引用参数的函数的行为已更改。以前该函数将接受按值参数,但现在发出致命错误。”换句话说,5.1和5.2在这里的容忍度不高,5.3将出现致命错误。静态地找到所有这些都是不切实际的,因此需要尝试使用公共路径,挖掘错误日志以深入查找发生这种情况的几十个案例,并对照记录的API逐一进行修复。我想不出还有哪一个烧坏了。

我最近也跳到了5.3.x,并注意到以下问题(来源于我的网站):

date.timezone(php.ini):

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

date.timezone = America/Los_Angeles
\uu toString():

  • 在PHP5.3中,magic _toString()方法不再允许您传入参数,这在某种程度上是有意义的,但确实降低了灵活性

正如评论中提到的,最好升级到5.3.10,然后迁移到5.4.1甚至5.4.2。立即跳到5.4.0不是一个好主意,当他们发布5.4.1的变更日志时,你就会明白为什么。

@Evert:不是这样,在这些版本之间有很多东西发生了变化。也就是说,在v5.1中正确的东西在v5.3中并不总是正确的,所以单元测试在那里根本没有帮助。主要的“问题”是PHP5.4现在已经过时了。@Xeoncross我知道PHP5.4最近的版本,但是,考虑到它是最近发布的,我担心它的支持和潜在问题。@crmpicco我也认为至少等待5.4.1是明智的。从历史上看,x.x.0版本几乎总是有一些问题。@Evert我觉得5.1.6->5.4.x是一个很大的飞跃,所以我想我会分两个阶段来做;5.1.6->5.3.10,然后升级到5.4.x。除了像这样的一些更改,确保您在上次安装中安装了您认为理所当然的扩展是成功的一半,正确编写代码将解决另一半问题。