Google Gemini 的 PHP 客户端 API
要求要完成快速指南,请确保你的开发环境满足以下需求:PHP 8.1+设置安装首先,通过 Composer 包管理器安装 Gemini:composer require google-gemini-php/client请确保允许 php-http/discovery composer 插件运行,或者如果你的项目还没有整合 PSR-18 客户端,请手动安装此客户...
PHP 8.4: Opcache: INI 对 JIT 启用方式的更改
PHP 8.0 添加了 JIT 编译支持。默认禁用 JIT,并且有两个切换切换开关,opchache.jit 及 opcache.jit_buffer_size 用来控制 PHP 主要的功能模式以及 JIT 使用的缓冲大小(buffer size)。在 PHP 8.4 之前,其默认的 INI 配置值为:opcache.jit=tracing
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 。如果没有,它们本质上是添加到类中的元数据。