标签: PHP
编程

设计模式之访问者(Vistor)模式

283 2024-02-19 22:18:00

访问者(Visitor)模式是一种行为模式,允许你将算法与它们的操作对象上分离。问题描述:假设你的团队开发了一款应用,它可以处理构造成一个巨大图形的地理信息。图中的每个节点可以代表一个复杂的实体,如城市,也可以代表更精细的东西,如工业、观光区等。如果节点所代表的真实对象之间存在道路,则这些节点与其他节点相连接。在底层中,每个节点类型...

详情...
编程

Repositories 及其真实意图

215 2024-02-16 01:39:00

由于使用了 Repository 模式,你已经替换了多少次底层数据库实现?这就是为什么,在这篇博文中,我想进一步澄清这个完全被误解的软件设计模式,以及为什么反对使用它的第一个论点(上面的问题)实际上是微不足道的,几乎无关紧要。定义 Repository首先,让我们从定义 Repository 实际是什么开始。Repository 模式在 PoEAA 中定义如...

详情...
编程

PHP 8.4 预览: Sodium: AEGIS-128L 和 AEGIS256 支持

648 2024-01-03 22:57:00

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 加密

319 2024-01-02 22:26:00

AEGIS 是 基于 AES 的认证加密算法家族,其速度明显快于普遍存在的算法,如 AES-GCM 和 CHACHA20-POLY1305 。如果扩展是使用libsodium 1.0.19或更高版本编译的,则 PHP 8.4 中的 Sodium 扩展支持 AEGIS-128L 和 AEGIS-256 加密算法。AEGIS 家族中的两种加密算法 A...

详情...
编程

Laravel 中的 PHP 注解 attributes

445 2023-12-28 04:00:00

Attributes 提供了在代码的声明中添加结构化、机器可读的元数据信息的能力:类、方法、函数、参数、属性和类常量可以是属性的目标。我相信这个定义是正确的,我相信阅读本文的大多数开发人员都至少遇到过一次 attributes 。如果没有,它们本质上是添加到类中的元数据。

详情...
编程

Laravel Octane 现已支持 FrankenPHP

667 2023-12-27 02:26:00

Laravel Octane 通过使用高性能服务器比如 Open Swoole、Swoole 和 RoadRunner 来提高应用的性能。2023 年 12 月 19 日起,它也开始支持 FrankenPHP。

详情...
编程

FrankenPHP v1.0 发布

354 2023-12-23 01:05:00

FrankenPHP 本周刚刚达成了一个重要的里程碑,发布了 v1.0 版本。FrankenPHP 是一个用 Go 编写的现代 PHP 应用程序服务器,只需一个命令就可以为您提供一个生产级 PHP 服务器。它提供了对 Symphony, Laravel, WordPress 等的原生支持:生产级 PHP 服务器,由 Caddy 驱动部署简单——将 PHP 应...

详情...
编程

在 PHP 中使用匿名类测试抽象类

291 2023-12-20 22:14:00

抽象类不能直接实例化,这为测试抽象类本身实现的功能时带来了挑战。在这篇文章中,我将分享我解决这一问题的方法。为了说明该技术,让我们假设有一个带有 move() 方法的抽象类 Vehicle,同时在其子类中强制实现 speed() 方法。/app/Utils/Vehicle.phpnamespace App\Utils; use Exception; ab...

详情...
编程

Stressless: PHP 压力测试

310 2023-12-19 22:11:00

PestPHP 发布了一个全新的插件:Stressless。这是 Pest PHP 家族的一个新成员,它为 PHP 生态系统带来了压力测试的能力。它与 Pest PHP 无缝集成,将压力测试的强大功能与 Pest 的 Expected API 的简洁和优雅相结合。正如你所看到的,开始使用 Stressless 是毫不费力的——你所需要做的就是使用 Compo...

详情...
编程

PHP 8.3: Assert: assert_options()、ASSERT_* 常量 及 assert.* INI 设置弃用

295 2023-12-19 19:54:00

PHP 8.3 弃用了所有 assert.* INI 指令,ASSET_* 常量及 assert_options() 函数。PHP 的 assert() 函数允许定义期望值,该期望值提供“抽查”来断言应用状态。它们可以在开发或测试环境中启用,但当禁用时(例如在生产系统中),这些断言在执行时成本为零。assert(!str_contains($db_name,...

详情...