- 已关闭**。此问题需要details or clarity。当前不接受答案。
- 想要改进此问题?**添加详细信息并通过editing this post阐明问题。
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';
}
那么有必要更新它吗?或者只要它能工作就可以了吗?
3条答案
按热度按时间hl0ma9xz1#
更新
composer.json
中的PHP版本号只会告诉composer你的项目应该使用哪个版本的PHP,它会用它来决定哪些包与你的应用程序兼容。例如,如果你有
"php": "8.2"
,那么它只会安装与PHP 8.2兼容的软件包版本。它还可以防止您在安装了错误版本PHP的环境中运行
composer install
等。要真正升级您正在使用的PHP版本,您需要将其安装在应用程序运行的环境中(在您的服务器、VM、Docker容器、XAMPP、MAMP、本地操作系统、WSL或其他环境中)。
j13ufse22#
为了确保您的软件现在运行的是php8.2,您可以通过调用phpinfo() function进行检查。
但是你需要确保你所有的代码仍然在工作。要做到这一点,你可以运行你的应用程序的测试套件(如果提供的话)。
我建议您阅读向后不兼容的更改,并检查代码没有使用它。您必须这样做三次,每个版本一次(8.0,8.1,8.2)您应该这样做的弃用功能,所以移植到PHP9将更容易。
你已经升级了composer.json,很多库也升级了。所以,在开发环境中进行一些手工测试可能是个好主意。
关于枚举类型,没有必要升级代码(但对于可维护性来说是个好主意)。
mqxuamgl3#
当我们谈论“PHP的版本”时,我们通常指的是“执行PHP脚本的软件版本”(理论上,我们可以指“该软件实现的语言规范的版本”,但PHP没有外部语言标准,因此该软件本质上就是规范)。
打个比方,假设你买了一台新电脑,然后把现有的键盘插上,你可能需要检查三件事:
1.你确定把它插对电脑了吗?你可以看看电线,或者你可以打开记事本开始打字。
1.它能完全适应新电脑吗?也许它有特殊的宏键来打开你最喜欢的软件,或者在你最喜欢的游戏中执行特殊的动作。你可以测试一下,这些功能是否仍然能达到你的预期效果;或者您可以查看说明手册,了解在新系统上需要设置什么。
1.有没有你以前不能使用的新功能?也许宏键现在可以做额外的事情;但如果你不使用它,并不意味着你不用你的新电脑。
对于PHP升级,您可以问同样的三个问题:
1.你肯定是用那个版本的软件吗?你可以看看系统设置,也可以直接用phpinfo,phpversion这样的函数问PHP。
1.你的程序在新版本上运行的“正确”吗?理想情况下,你会有一套很好的自动化测试;更实际的是,您可以手动测试功能,并密切关注错误日志;你也可以查找the migration guides in the PHP manual来看看你可能需要修改什么。特别注意the 7.4 to 8.0 migration,因为那是大多数“破坏性”修改发生的地方。
1.有没有新的特性你可以使用,而你以前不能?这就是枚举的用武之地-你现在可以使用它们,如果你想,但不使用它们并不意味着你没有使用PHP 8.2.有一个新的方式做某事并不意味着旧的方式将立即,或永远,停止工作.