php 如何更新程序的编程语言版本?[已关闭]

92vpleto  于 2023-01-16  发布在  PHP
关注(0)|答案(3)|浏览(125)

3天前关闭。
社区在2天前审查了是否重新讨论此问题,并将其关闭:
原始关闭原因未解决
Improve this question
我有一个程序是用php写的,现在的版本是7. 4,一切都很好用。
今天我已经把composer.json中的PHP版本升级到了8.2,一切都还能正常工作。现在的问题是,我的软件现在真的是在最新版本的PHP上,还是我还需要做些什么?
有必要更新代码吗?例如,枚举是新的。
之前在我的代码中枚举是这样的:

use Elao\Enum\SimpleChoiceEnum;

final class LogReason extends SimpleChoiceEnum
{
    public const NEW_REGISTRATION = 'NEW_REGISTRATION';
}

那么有必要更新它吗?或者只要它能工作就可以了吗?

hl0ma9xz

hl0ma9xz1#

更新composer.json中的PHP版本号只会告诉composer你的项目应该使用哪个版本的PHP,它会用它来决定哪些包与你的应用程序兼容。
例如,如果你有"php": "8.2",那么它只会安装与PHP 8.2兼容的软件包版本。
它还可以防止您在安装了错误版本PHP的环境中运行composer install等。
要真正升级您正在使用的PHP版本,您需要将其安装在应用程序运行的环境中(在您的服务器、VM、Docker容器、XAMPP、MAMP、本地操作系统、WSL或其他环境中)。

j13ufse2

j13ufse22#

为了确保您的软件现在运行的是php8.2,您可以通过调用phpinfo() function进行检查。
但是你需要确保你所有的代码仍然在工作。要做到这一点,你可以运行你的应用程序的测试套件(如果提供的话)。
我建议您阅读向后不兼容的更改,并检查代码没有使用它。您必须这样做三次,每个版本一次(8.0,8.1,8.2)您应该这样做的弃用功能,所以移植到PHP9将更容易。
你已经升级了composer.json,很多库也升级了。所以,在开发环境中进行一些手工测试可能是个好主意。
关于枚举类型,没有必要升级代码(但对于可维护性来说是个好主意)。

mqxuamgl

mqxuamgl3#

当我们谈论“PHP的版本”时,我们通常指的是“执行PHP脚本的软件版本”(理论上,我们可以指“该软件实现的语言规范的版本”,但PHP没有外部语言标准,因此该软件本质上就是规范)。
打个比方,假设你买了一台新电脑,然后把现有的键盘插上,你可能需要检查三件事:
1.你确定把它插对电脑了吗?你可以看看电线,或者你可以打开记事本开始打字。
1.它能完全适应新电脑吗?也许它有特殊的宏键来打开你最喜欢的软件,或者在你最喜欢的游戏中执行特殊的动作。你可以测试一下,这些功能是否仍然能达到你的预期效果;或者您可以查看说明手册,了解在新系统上需要设置什么。
1.有没有你以前不能使用的新功能?也许宏键现在可以做额外的事情;但如果你不使用它,并不意味着你不用你的新电脑。
对于PHP升级,您可以问同样的三个问题:
1.你肯定是用那个版本的软件吗?你可以看看系统设置,也可以直接用phpinfophpversion这样的函数问PHP。
1.你的程序在新版本上运行的“正确”吗?理想情况下,你会有一套很好的自动化测试;更实际的是,您可以手动测试功能,并密切关注错误日志;你也可以查找the migration guides in the PHP manual来看看你可能需要修改什么。特别注意the 7.4 to 8.0 migration,因为那是大多数“破坏性”修改发生的地方。
1.有没有新的特性你可以使用,而你以前不能?这就是枚举的用武之地-你现在可以使用它们,如果你想,但不使用它们并不意味着你没有使用PHP 8.2.有一个新的方式做某事并不意味着旧的方式将立即,或永远,停止工作.

相关问题