如何在 Ubuntu 和 Debian 上安装升级 PHP 8.3
PHP 8.3 是 2023 年 PHP 的主要新更新。它带来了一些不错的新功能,如类型化类常量、DateTime 扩展中的一组新 Exception、新增 json_validate 函数,以及一些新功能、更改和弃用。和往常一样,PHP 8.3 带来了一些错误修复和改进,以及性能改进。本文介绍了如何在现代 Debian 系统和 Ubuntu 系统上安装 P...
Nginx Unit 作为 PHP 和 Laravel 服务器
Nginx Unit 是一个 Nginx 带来的 “通用 Web 应用服务器”。它是一个可以和你的代码库“直接”通信的 web 服务器,帮你以代码能够理解的方式将 HTTP 请求传递给代码。对于 PHP 支持,它有一个创建 PHP 进程的 PHP 模块,类似于 PHP-FPM,但不需要 PHP-FPM。摆脱 PHP-FPM 对我来说真的很好,所以我决定看看它...
PHP 8.3 正式发布
PHP 8.3 即将于近日发布。其中涉及多个新特性、变更及特性弃用:新特性-类常量显式类型、新增 json_validate 函数、动态类常量及枚举成员获取、gc_status() 返回额外的 GC 信息
解决 PHP 扩容问题
我们有一个导出功能,可以在许多后台作业过程中创建 Excel 文件。多年来工作出色。不过,那已是过去。我们在一个PHP项目中有一个导出功能。给定一个数据源,它将在许多后台工作的过程中构建一个 Excel 文件。一旦文件完成,就开始最后一项工作,通过电子邮件向用户发送一个标记化链接供下载。这一策略运行良好,多年来没有出现任何重大问题。也就是说,直到,正如你可能...
如何将 Caddy Server 与 PHP 结合使用
Caddy 服务器是一个模块化的现代 web 服务器平台,支持自动 HTTPS 证书、QUIC 和 HTTP/2、Zstd 和 Brotli 压缩、各种现代特性以及经典的 web 服务器功能,如可配置虚拟主机、URL 重写和重定向、反向代理等。2020 年 5 月发布的当前版本 Caddy 2 对其配置语法、自动化、插件等进行了重大改进。本文介绍了如何将 P...
使用 PHP Curl 扩展发送 HTTP/3 请求
HTTP/3 是 HTTP 的第三个大版本,它基于 QUIC。不像基于 TCP 的 HTTP/1.1 和 HTTP/2,HTTP 是基于一个多路复用的 UDP 协议,QUIC。HTTP/3 以及 TLS 1.3,在性能和延迟上进行了巨大改进。虽然 HTTP/3 修改了许多传输层语义(比如,从 TCP 到 UDP 的转变),但保留了 HTTP 语法请求头、请求...
解析用户提供的 INI 字符串及文件时的安全考虑
PHP 提供了 parse_ini_string 和 parse_ini_file 函数,用来重用 PHP 内置的用于 PHP 自己的 INI 配置文件的解析器。除了解析文本之外,INI 解析器支持也支持系统环境变量及文本解析时的 PHP 常量。从 PHP 8.3 起,它也支持环境变量的回退值语法。
PHP 8.3: 细粒化 DateTime 异常
在 PHP 8.3 中,Date/Time 扩展引入了特定于扩展的颗粒度异常和错误类,以便更好地表达错误和异常的状态。这使得捕获日期相关的异常更为简单和干净。在 PHP 8.3 之前,DateTime 扩展使用标准的 \Exception 和 \Error 。新增的 Exception/Error 类继承了现有的 \Error 和 \Exception 类,...
PHP 8.3: get_class() 和 get_parent_class() 函数弃用不带参数调用
PHP 8.3 弃用多个支持多个签名的函数及类方法。历史上,这些函数最初只接受一个函数签名,不过在后来的版本中在不声明新函数情况下支持另一套参数。get_class 和 get_parent_class 函数也是支持两个签名的函数。两个函数都接受 object $object 参数,并返回其类名,或者其父类名(get_parent_class 函数)。
PHP 8.3: 内置 CLI 服务器 $_SERVER['SERVER_SOFTWARE'] 值更新
PHP有一个内置的 CGI 兼容服务器,可在不使用成熟的服务器软件如 Apache、Nginx 或 Caddy 时,测试 PHP 应用。它遵循 RFC 3875,定义了必须的元变量及其特征。在 $_SERVER 超全局变量中暴露给 PHP 应用。在 PHP 8.3 之前,$_SERVER['SERVER_SOFTWARE'] 的值使用的是 PHP %vers...