抢先体验:MacOS成功安装PHP8.4教程

根据官方消息,PHP 8.4将于2024年11月21日发布。它将通过三个 alpha 版本、三个 beta 版本和六个候选版本进行测试。

这次的重大更新将为PHP带来许多优化和强大的功能。我们很高兴能够引导您完成最有趣的更新升级,这些更改将使我们能够编写更好的代码并构建更强大的应用程序。

准备好了吗?让我们深入了解吧!


PHP8.4的新增功能

PHP 8.4 的 DOM 扩展现在支持 HTML5

PHP 8.4 的 DOM 扩展刚刚进行了重大升级,支持 HTML5 解析和序列化。这意味着在处理 HTML5 特定标签或在 JavaScript 中嵌入 HTML 时不再令人头疼。

只需使用新DOM\HTMLDocument类,您的 HTML5 内容就会得到正确处理,符合现代 Web 标准。

以下是从字符串创建 HTML 文档的方法:

use DOM\HTMLDocument;

$htmlDocument = HTMLDocument::createFromString('<!DOCTYPE html><html><body>Hello, HTML5!</body></html>');

或者从文件中:

use DOM\HTMLDocument;

$htmlDocument = HTMLDocument::createFromFile('path/to/your/file.html');

了解更多:PHP RFC:DOM HTML5 解析和序列化

PHP 8.4 默认情况下 bcrypt 加密成本增加

在 PHP 8.4 中, bcrypt的默认加密成本已增加到 12。这意味着什么?

Bcrypt 是 PHP 使用的密码哈希函数。它充当了抵御想要破解密码的黑客的盾牌。

该护盾的加密强度可以调整。设置或“成本”越高,屏蔽越强,因为 bcrypt 是一种自适应函数:“随着时间的推移,可以增加迭代次数以使其变慢,因此即使计算量增加,它仍然可以抵抗暴力搜索攻击力量。”

为什么它如此重要?因为增加 bcrypt 的加密成本会使密码散列速度慢几毫秒。

了解更多信息:PHP RFC:增加默认 BCrypt 加密成本

PHP 8.4 可以更可靠地解析大型 XML 文档

此更改解决了 ext/xml PHP 扩展中涉及大型 XML 文档解析处理的潜在问题。

libxml2 版本 2.7.0 中的冲突修改在使用xml_parse()xml_parse_into_struct()函数时无意中中断了大型文档解析,从而导致解析错误。

PHP 8.4 引入了一个新的解析器选项来正确处理这些大型 XML 文档并防止解析错误,使开发人员能够有效地解析大型 XML 文档,而不需要复杂的解决方法。

了解更多信息:PHP RFC:XML_OPTION_PARSE_HUGE

PHP 8.4 中新的多字节修剪函数

PHP 8.4 的 mbstring 扩展现在包含三个新函数:mb_trim()mb_ltrim()mb_rtrim()。此添加使修剪具有多字节字符的字符串变得更加容易,从而改进了之前将 regex 与preg_replace().

新函数以多字节安全方式处理空格和其他字符。默认行为会删除一组预定义的字符,其中包括各种类型的空格字符,其中包括一些\s正则表达式中通常未涵盖的字符。

以下是 PHP 8.4 中的函数及其默认行为:

  • mb_trim($string, $characters):修剪字符串两端的字符。

  • mb_ltrim($string, $characters):从字符串的开头(左侧)修剪字符。

  • mb_rtrim($string, $characters):从字符串末尾(右侧)修剪字符。

默认情况下,$characters包括各种空白字符,但由于存储和兼容性问题,并非所有可能的 Unicode 字符。

了解更多:PHP RFC:修剪函数 mb_trim、mb_ltrim 和 mb_rtrim 的多字节

IMAP模块被移到PECL

在PHP 8.4中,IMAP模块无法在configure中编译集成,被移到了PECL。有IMAP模块需求的开发者,需要单独进行编译。


如何在MacOS上安装PHP8.4

目前PHP8.4还没有发布,但是ServBay己经集成了最新的PHP8.4 Dev版本,并且内置了IMAP等模块。开发者可以直接通过他们的官方网站https://www.servbay.com下载安装,只需要3分钟就可以配置好一个PHP开发环境。

(ServBay 提供广泛的 PHP 版本,从 PHP 5.6 到最新的 PHP 8.4 Dev都有,确保开发者可以随时使用他们所需的开发环境)

了解相关

结论

PHP 8.4带来了大量令人兴奋的新功能和改进,使开发人员能够编写更干净、更快、更具表现力的代码。

然而,升级到 PHP8.4 时务必谨慎。考虑向后兼容性更改并彻底测试您的代码以确保平稳过渡。通过使用ServBay,可以在不影响开发环境的情况下了解PHP 8.4的新功能并仔细规划升级过程,您可以释放 PHP8.4 的全部潜力,并将您的开发技能提升到新的高度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/588675.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解决React报错Encountered two children with the same key

当我们从map()方法返回的两个或两个以上的元素具有相同的key属性时&#xff0c;会产生"Encountered two children with the same key"错误。为了解决该错误&#xff0c;为每个元素的key属性提供独一无二的值&#xff0c;或者使用索引参数。 这里有个例子来展示错误是…

YOLOv8主要命令讲解

YOLOv8主要有三个常用命令&#xff0c;分别是&#xff1a;train&#xff08;训练&#xff09;、predict&#xff08;预测&#xff09;、export&#xff08;转化模型格式&#xff09;&#xff0c;下面我将展开讲讲三个常用命令的常用参数与具体使用方法。 一、训练 通过自己标…

STM32单片机通过串口控制DDSM210 直驱伺服电机

1 电机介绍 官方资料&#xff1a;https://www.waveshare.net/wiki/DDSM210 DDSM210 直驱伺服电机是基于一体化开发理念&#xff0c;集外转子无刷电机、编码器、伺服驱动于一体的高可靠性永磁同步电动机&#xff0c;其结构紧凑&#xff0c;安装方便&#xff0c;运行稳定&#x…

react核心知识

1. 对 React 的理解、特性 React 是靠数据驱动视图改变的一种框架&#xff0c;它的核心驱动方法就是用其提供的 setState 方法设置 state 中的数据从而驱动存放在内存中的虚拟 DOM 树的更新 更新方法就是通过 React 的 Diff 算法比较旧虚拟 DOM 树和新虚拟 DOM 树之间的 Chan…

【PCL】教程 supervoxel_clustering执行超体聚类并可视化点云数据及其聚类结果

[done, 417.125 ms : 307200 points] Available dimensions: x y z rgba 源点云milk_cartoon_all_small_clorox.pcd > Loading point cloud... > Extracting supervoxels! Found 423 supervoxels > Getting supervoxel adjacency 这段代码主要是使用PCL&#xff08;Po…

Linux进程——进程的创建(fork的原理)

前言&#xff1a;在上一篇文章中&#xff0c;我们已经会使用getpid/getppid函数来查看pid和ppid,本篇文章会介绍第二种查看进程的方法&#xff0c;以及如何创建子进程&#xff01; 本篇主要内容&#xff1a; 查看进程的第二种方法创建子进程系统调用函数fork 在开始前&#xff…

【华为】路由综合实验(基础)

【华为】路由综合实验 实验需求拓扑配置AR1AR2AR3AR4AR5PC1PC2 查看通信OSPF邻居OSPF路由表 BGPBGP邻居BGP 路由表 配置文档 实验需求 ① 自行规划IP地址 ② 在区域1里面 启用OSPF ③ 在区域1和区域2 启用BGP&#xff0c;使AR4和AR3成为eBGP&#xff0c;AR4和AR5成为iBGP对等体…

buuctf-misc-22.神秘龙卷风1

22.神秘龙卷风1 题目&#xff1a;暴力破解-翻译Brainfuck计算机语言 根据提示是4位密码&#xff0c;直接破解密码即可 解压后发现是这样一个文档 我们尝试使用网站翻译这个 内容由“”、“.”、“>”三种符号组成&#xff0c;我刚开始认为这是一种密文&#xff0c;经过搜索…

thinkpad电脑文件隐藏了怎么恢复?教你几招

在使用ThinkPad电脑时&#xff0c;有时我们可能会发现一些文件或文件夹突然“消失”了&#xff0c;这通常是因为它们被隐藏了。本文将为您介绍几招恢复ThinkPad电脑上隐藏文件的方法&#xff0c;帮助您轻松找回丢失的文件。 图片来源于网络&#xff0c;如有侵权请告知 一、了解…

【实时数仓架构】方法论

笔者不是专业的实时数仓架构&#xff0c;这是笔者从其他人经验和网上资料整理而来&#xff0c;仅供参考。写此文章意义&#xff0c;加深对实时数仓理解。 一、实时数仓架构技术演进 1.1 四种架构演进 1&#xff09;离线大数据架构 一种批处理离线数据分析架构&#xff0c;…

when to create a ViewRootImpl

when to create a ViewRootImpl when method setView is called: when method dispatchDetachedFromWindow is called:

预训练模型介绍

一、什么是GPT GPT 是由人工智能研究实验室 OpenAI 在2022年11月30日发布的全新聊天机器人模型, 一款人工智能技术驱动的自然语言处理工具 它能够通过学习和理解人类的语言来进行对话, 还能根据聊天的上下文进行互动,能完成撰写邮件、视频脚本、文案、翻译、代码等任务 二、 为…

TypeScript学习笔记:迈向更安全的JavaScript编程

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Linux专栏05:Linux基本指令之目录处理指令

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Linux专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Linux基本指令之目录处理指令 编号&#xff1a;05 文章目录 Linux基…

STM32之HAL开发——电容按键

电容按键原理 电容器 (简称为电容) 就是可以容纳电荷的器件&#xff0c;两个金属块中间隔一层绝缘体就可以构成一个最简单的电容。如图 32_1 (俯视图)&#xff0c;有两个金属片&#xff0c;之间有一个绝缘介质&#xff0c;这样就构成了一个电容。这样一个电容在电路板上非常容…

线程同步与条件变量

再论生产消费者问题 问题 如果缓冲池为空&#xff0c;如何定义消费者的行为? 一种可能的解决方案 这种方案是可行的&#xff0c;但是如果生产者一直不生产&#xff0c;那么消费者会反复查看产品的数量为 0 并休眠&#xff0c;这样会浪费 cpu 的资源&#xff0c;并且生产者生产…

MWCNTs微纳米纤维膜的制备

MWCNTs微纳米纤维膜是一种由多壁碳纳米管&#xff08;MWCNTs&#xff09;与聚合物纤维复合而成的纳米纤维膜。这种材料结合了MWCNTs的良好性能和纳米纤维膜的高比表面积、高通量等特点&#xff0c;具有广泛的应用前景。 在制备过程中&#xff0c;首先需要对MWCNTs进行酸化处理和…

基于SpringBoot的私人健身与教练预约管理系统设计与实现

一、引言 私人健身与教练预约管理系统&#xff0c;可以摆脱传统手写记录的管理模式。利用计算机系统&#xff0c;进行用户信息、管理员信息的管理&#xff0c;其中包含首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;教练管理&#xff0c;健身项目管理&#xff0c;项…

Agent AI智能体:如何借助机器学习引领科技新潮流

文章目录 &#x1f4d1;前言一、Agent AI智能体的基本概念二、Agent AI智能体的技术进步2.1 机器学习技术2.2 自适应技术2.3 分布式计算与云计算 三、Agent AI智能体的知识积累3.1 知识图谱3.2 迁移学习 四、Agent AI智能体的挑战与机遇4.1 挑战4.2 机遇 小结 &#x1f4d1;前言…

Linux下安装snaphu

1、官网下载安装包 2、解压&#xff0c;移动文件夹到/usr/local/下 3、在/usr/local/下创建man&#xff0c;在man下创建man1文件夹 4、进入到snaphu的src文件夹里&#xff0c;执行sudo make&#xff0c;如果报错 在这个 Makefile 中&#xff0c;-arch x86_64 是 macOS 特定的…