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