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...
PHP 8.3: 新增 stream_context_set_options 函数
PHP 有一个 stream_context_set_option 函数,支持两种函数签名。它可以接受为一个或者多个 context/wrapper 设置的一个 options 数组;也可以接受一个单一的 wrapper 名,选项名,及其选项值。function stream_context_set_option($stream_or_context, st...
PHP 8.3: class_alias() 支持内置 PHP 类创建别名
class_alias PHP 函数用于为一个类创建别名。别名类和原始类的行为完全一致。在 PHP 8.3 之前,为内置的 PHP 类创建别名会导致 ValueError 异常:// Not allowed in PHP < 8.3 class_alias('stdClass', 'MyNewClass'); class_alias('Travers...
PHP 8.3: PHP CLI Lint (php -l) 支持一次额 linting 多个文件
PHP 的 CLI 命令行提供了 Linting 特性,用于检测传入的文件是否有语法错误。这对于在执行前快速检测 PHP 文件或者代码片段非常有用。php -l my-file.phpNo syntax errors detected in my-file.phpPHP 8.3 之前,同一个调用中要 lint 多个 PHP 文件时不可能的,无论提供了介个文件...
让 Composer 建议将开发包放到 require-dev
Composer 2.4 添加了一个新特性,使得如果包用作开发工具使,composer require 命令提示使用 --dev 标志安装该包。当传入 --dev 标志时,该包在 composer.json 文件的 require-dev 区域中安装,其他 Composer 命令(比如 composer update,install, dump-autolo...
PHP 8.3: highlight_file 和 highlight_string 输出 HTML 变更
PHP 的 highlight_file 和 highlight_string 函数为 PHP 提供了语法高亮支持。他们接受包含 PHP 代码的文件或者字符串,并返回一个带有 PHP 关键词、函数和其他高亮 token 的 HTML 代码片段。语法高亮器的颜色可以通过 PHP INI 指令进行配置。PHP 8.3 对语法高亮器做了一些修改,导致了 HTML ...
PHP 8.3: 某些 PHP 扩展类中的类常量类型声明
作为对 PHP 8.3 中支持类常量类型的 PHP 的后续更改,Phar、SNMP 和 Phar 扩展类常量将使用常量类型进行更新。任何扩展以下类并覆盖现有常量的用户空间 PHP 类都将导致致命错误。扩展这些类的用户空间 PHP 类并重写常量的情况并不常见。受影响的扩展:Phar 扩展中的 \Phar 类;SNMP 扩展中的 \SNMP 类;...
PHP 8.4 预览: phpinfo: 显示 PHP 整型大小信息
PHP 8.4 这种 phpinfo() 输出会显示当前 PHP 安装所支持的整型位数(bit)大小。整型大小也包含在 PHP CLI 输出中: Zend Extension => 420230901 Zend Extension Build => API420230901,TS,VS16 PHP Extension Build =>...