【发布时间】:2010-11-07 21:05:01
【问题描述】:
PHP 5.3 版已经发布,虽然看起来不错,但我的所有代码都已经可以正常工作了。我看不出这个新版本提供了什么来证明升级和解决升级后可能出现的问题的合理性。
我是否应该升级只是为了良好的做法,还是不需要升级,除非我实际使用新功能?
【问题讨论】:
-
有趣的评论你真的应该。新的“跳转标签”运算符看起来很棒:GOTO :-D
PHP 5.3 版已经发布,虽然看起来不错,但我的所有代码都已经可以正常工作了。我看不出这个新版本提供了什么来证明升级和解决升级后可能出现的问题的合理性。
我是否应该升级只是为了良好的做法,还是不需要升级,除非我实际使用新功能?
【问题讨论】:
您可能会考虑升级只是为了“提高 PHP 运行时速度和内存使用”和错误修复。 Source。我还要说,如果你在任何地方使用create_function,你应该升级并用更干净的lambda 替换那个丑陋、讨厌的烂摊子。 Here 是 5.2 的迁移指南。
【讨论】:
我也在考虑同样的事情...如果有任何升级以修复错误,但请确保检查兼容性,此版本中发生了一些变化(goto、命名空间、参数解析、mhash 等...) ,
用 lambdas 替换 create_function 本身应该足以升级,使用 create_function 的内存使用和开销是荒谬的。
【讨论】:
您可能会对两件事感兴趣,第一是用 lambda 替换 create_function(),另一是研究后期静态绑定。 现在 LSB 可用,有一些事情可以用更清洁和更有效的方式解决。
就我个人而言,我一直在期待特征,但它没有包含在这个版本中。当我发现时我很难过:(。现在我什至不记得为什么我认为它会被包含在 5.3 中。
【讨论】:
我想说,您需要回答几个大问题才能帮助您做出此决定。其中最重要的是,您的网站/产品/客户做什么?如果您正在管理一个应用程序(例如 CMS 或购物车),那么您需要了解许多主机暂时不会升级,因为他们等待他们使用的操作系统的官方支持的软件包/RPM,并且他们需要时间构建、测试和发布。
如果这只是在专用服务器上运行的自定义站点,那么同样的问题可能很重要。虽然在这种情况下,您始终可以手动编译,但如果您像我一样对干净、有条理的服务器不屑一顾,那可能不一定是最好的主意。就像 Jason 提到的,应该有显着的速度改进,正如 WishCow 所说,如果你使用 create_function(),你现在可以放弃它们以获得更简洁的代码。
另外请记住,您正在使用的任何第三方库/扩展(PECL、PEAR、Zend Framework、Drupal、Wordpress 或自定义编写的)可能由于任何给定的原因而无法在 5.3 上运行。
如果可能,试运行升级总是更好。我在家里的办公桌旁边有一台服务器,我可以用它来升级并打开分析器来查看我的站点的性能,并确保一切正常。如果你不能做到这一点,那么你必须小心,因为如果事情进展不顺利,你可能会有一些停机时间。
【讨论】: