Zend 框架转移到 Laminas: 回顾
早在 2018 年 10 月,Rogue Wave Software 就宣布重组其 Zend 投资组合,包括 Zend Framework。Zend Framework 社区一时震惊,这是可以理解的,许多人对该框架的未来感到担忧。六个月后,即 2019 年 4 月,Roue Wave 宣布他们将把该项目作为 Laminas 项目移交给 Linux 基金会。在宣布这一...
PHP 8.4: Date: 新增 DateTime(Immutable)::get/setMicroseconds 方法
PHP 8.4 及其此后的版本中, DateTime 和 DateTimeImmutable 类支持通过 getMicroseconds 和 setMicroseconds 方法获取和设置 DateTime/DateTimeImmutable 对象的秒数。虽然可以使用时间戳创建/更新 DateTime 和 DateTimeImmutable 对象...
PHP 开发工具:提升开发体验
随着 Laravel、Symfony、CakePHP 等框架的出现,PHP 已经成为构建 web 应用的一种非常强大的语言。这些框架极大地改善了 PHP 生态系统中的开发人员体验。但是,仍然有一些工具可以开发人员有更好的体验。代码格式化程序、代码分析器、代码嗅探器等可以极大地改进您的工作流程,并可以帮助您编写更好的代码。在本文中,我将列出一些我认为可以让开发...
“…”省略号运算符在 PHP 中的多种用法
随着 PHP 发展到现代版本,一个在不同地方被彻底使用的操作符是(…)操作符。在本文中,我将讨论这个运算符在 PHP 中的各种用例。变参函数及方法变参函数是接受可变数量参数的函数。这里的省略号运算符可以用来定义 PHP 中的可变函数。省略号运算符在此上下文中也称为 “rest” 运算符。例如,下面是一个变参函数。function sum(...$number...
PHP 中匿名函数的实际用例
PHP中 的匿名类允许你动态创建一个类,而不必定义新类。当想要创建一个只使用一次的类时,它们特别有用。下面的 memoize helpler 函数使用匿名类来缓存函数调用的结果。function memoize($target) { static $memo = new WeakMap; return new class ($target...
Laravel 中高效的用户时区处理
当今世界,web 应用经常用来满足来自不同时区的用户的需求。无论是事件调度、显示准确的时间戳还是管理用户交互,正确处理时区对于提供无缝的用户体验至关重要。然而,管理时区可能是一项复杂的任务,尤其是在处理不同地区、夏令时变化和不同用户偏好时。在构建应用时,几乎可以肯定地你会存储 DateTime 和其他与时间戳相关的数据。默认情况下,Laravel 在每个迁移...
PHP 8.4: OCI8 和 PDO-OCI 扩展从 PHP 核心移至 PECL
oci8 和 pdo_oci8 扩展提供了在 PHP 中使用 Oracle 数据库的功能。这些扩展依赖于商业供应商 Oracle 的专有库。这些扩展累积的未修复错误已有一段时间。此外,这些扩展需要付出相当大的努力才能将其资源对象迁移到类对象。考虑到这些扩展对第三方专有库的依赖,以及所需的维护工作,oci8 和 pdo_oci8 扩展不再是 PHP 核心的一部...
PHP 没有多继承的原因
多年来,PHP 作为一种语言已经有了很大的发展。从最初由 Rasmus Lerdorf 作为他的业余项目开始的一种简单的函数式脚本语言,到支持面向对象编程功能 PHP,已经走过了漫长的道路。尽管 PHP 在其每一个版本中都在实现和改进面向对象编程的功能,但有一个功能是缺失的,我一直想知道为什么这些年来 PHP 中没有这个功能,即多继承。PHP 不支持多继承有...
PHP 中使用组合优先于继承的原因
在面向对象编程中,类可以通过两种方式实现多态行为:“继承”和“组合”。继承是一种将对象或类建立在另一个对象或类的基础上并保留类似实现的机制。换句话说,使用继承,类从其父类(无论是直接的还是间接的)继承字段和方法。子类可以覆盖它继承的方法,也可以隐藏它继承的字段或方法。继承在类之间建立了一种“is-a”关系。例如,“汽车就是车辆”。意思是汽车“继承”了汽车的所...
PHP 8.4: 新增 request_parse_body 函数
PHP自动解析 HTTP POST 请求,以填充 $_POST 和 $_FILES 超级全局变量。然而,使用 PUT 和 PATCH 等方法的其他 HTTP 请求不会自动解析,而是由 PHP 应用来解析请求数据。随着越来越多地使用 HTTP 方法(如 PUT、DELETE 和 PATCH)的 REST API 的流行,一致地解析 HTTP 请求数据非常重要。...