PHP 中的树和树遍历
我将在本文中介绍树结构。什么是树,如何使用以及何种情况下使用、请注意,这只是一个基本的介绍,而不是整个故事。我甚至可能在某个地方错了,如果你认为我搞错了:请在评论中告诉我,或者给我发私信。🌳 什么是树?要回答这个问题,我们首先要看一下图(Graph)。在图论中,图(Graph)是以某种方式相互关联的数据点(或节点 Node)的(视觉)结构。例如,这种关系可以...
设计模式之访问者(Vistor)模式
访问者(Visitor)模式是一种行为模式,允许你将算法与它们的操作对象上分离。问题描述:假设你的团队开发了一款应用,它可以处理构造成一个巨大图形的地理信息。图中的每个节点可以代表一个复杂的实体,如城市,也可以代表更精细的东西,如工业、观光区等。如果节点所代表的真实对象之间存在道路,则这些节点与其他节点相连接。在底层中,每个节点类型...
Repositories 及其真实意图
由于使用了 Repository 模式,你已经替换了多少次底层数据库实现?这就是为什么,在这篇博文中,我想进一步澄清这个完全被误解的软件设计模式,以及为什么反对使用它的第一个论点(上面的问题)实际上是微不足道的,几乎无关紧要。定义 Repository首先,让我们从定义 Repository 实际是什么开始。Repository 模式在 PoEAA 中定义如...
PHP 8.4: Mbstring: 新增 mb_trim、mb_ltrim 和 mb_rtrim 函数
PHP 8.4 为现有的 trim、ltrim 和 rtrim 函数添加了等效的 mb_ 函数。trim/ltrim/rtrim 函数在字符串的开头和结尾都去掉空白字符。默认情况下,这会去掉空空格( )、制表符(\t)、LF(\n)、CR(\r)、NUL字节(\0)和垂直制表符(\v)字符。新的 mb_trim、mb_ltrim 和 mb_rtrim 函数支...
PHP 8.4: Date: 新增 DateTime(immutable)::createFromTimestamp 方法
PHP 8.4 中的 DateTime 和 DateTimeImmutable 类有一个名为 createFromTimeStamp 的新方法,用于从给定的 UNIX 时间戳(作为整数或浮点数)创建实例。PHP 8.4 之前,从 UNIX 时间戳中创建 DateTime,必须使用 createFromFormat 创建,通过 U / U.u 格式、
PHP 8.4 预览: Sodium: AEGIS-128L 和 AEGIS256 支持
AEGIS 是基于 AES 的认证加密算法家族,其速度明显快于 AES-GCM。如果扩展是使用 libsodium 1.0.19或更高版本编译的,则 PHP 8.4 中的 Sodium 扩展支持 AEGIS-128L 和 AEGIS-256 加密算法。PHP 8.4 Sodium 扩展支持 AEGIS-128L 和 AEGIS256,使用的 PHP...
使用 PHP Sodium 扩展进行 AEGIS 加密
AEGIS 是 基于 AES 的认证加密算法家族,其速度明显快于普遍存在的算法,如 AES-GCM 和 CHACHA20-POLY1305 。如果扩展是使用libsodium 1.0.19或更高版本编译的,则 PHP 8.4 中的 Sodium 扩展支持 AEGIS-128L 和 AEGIS-256 加密算法。AEGIS 家族中的两种加密算法 A...
Laravel 中的 PHP 注解 attributes
Attributes 提供了在代码的声明中添加结构化、机器可读的元数据信息的能力:类、方法、函数、参数、属性和类常量可以是属性的目标。我相信这个定义是正确的,我相信阅读本文的大多数开发人员都至少遇到过一次 attributes 。如果没有,它们本质上是添加到类中的元数据。
Laravel Octane 现已支持 FrankenPHP
Laravel Octane 通过使用高性能服务器比如 Open Swoole、Swoole 和 RoadRunner 来提高应用的性能。2023 年 12 月 19 日起,它也开始支持 FrankenPHP。
FrankenPHP v1.0 发布
FrankenPHP 本周刚刚达成了一个重要的里程碑,发布了 v1.0 版本。FrankenPHP 是一个用 Go 编写的现代 PHP 应用程序服务器,只需一个命令就可以为您提供一个生产级 PHP 服务器。它提供了对 Symphony, Laravel, WordPress 等的原生支持:生产级 PHP 服务器,由 Caddy 驱动部署简单——将 PHP 应...