使用 PHP Sodium 扩展进行 AEGIS 加密
AEGIS 是 基于 AES 的认证加密算法家族,其速度明显快于普遍存在的算法,如 AES-GCM 和 CHACHA20-POLY1305 。如果扩展是使用libsodium 1.0.19或更高版本编译的,则 PHP 8.4 中的 Sodium 扩展支持 AEGIS-128L 和 AEGIS-256 加密算法。AEGIS 家族中的两种加密算法 A...
Laravel 设计模式之装饰器模式
在所有讨论的设计模式中,“四人”原著中的装饰器设计模式最吸引我。它的简单而强大(即广泛的使用/适用性)使它成为我个人的最爱。然而,这种简单性和实用性经常被忽视,取而代之的是,焦点被转移到了“哦,过度工程化”或“过早的抽象是万恶之源!”(因为有一个接口在使用中)。虽然我并不是说从来都不是这样,但我认为可以公平地说,用同一把刷子对每个用例和实现进行标记是明显不公...
CSS 中的宽度与高度
本文将介绍 CSS 中的 width 和 height 是如何工作的。一句话总结就是:要想确定树的宽度 width,就要向上看,要想确定高度 height,就要向下看...
使用别名增强 Laravel 开发工作流程
命令行别名是缩短现有命令或将一组命令组合为一个有意义的单词或缩写的便捷方法。今天,我将与大家分享一些我最常用的别名,帮助我每天节省时间。随着时间的推移,这可能会导致节省数小时甚至数天的时间,甚至更少的错误。让我们深入研究。如何添加别名打开 ~/.bashrc (或者,如果使用的是 ZSH, .zshrc)。别名的结构非常简单,由一个简单的键/值对组成:ali...
如何安全地使用 Laravel Facade
这个问题在 Laravel 文档中也不是特别清晰,不过 Facade 有一件事可能会在系统中导致意外漏洞:Facade 像单例与匿名函数绑定的传统服务容器不同,Facade 保留了解析过的实例并在未来 Facade 调用中使用它。我们来看看 Laravel 的代码: /** * Resolve the facade root instance...
Laravel 服务容器介绍
Laravel 服务容器(Service Container)可能有点神秘,尤其是如果你不经常使用它的话。在这篇文章中,我将解释如何使用它,以及应该避免哪些常见错误。Laravel 服务容器的工作方式优美而强大,允许您轻松地注入依赖项,解析定制的服务,用假的服务替换实时服务进行测试,甚至可以创建在整个应用中持久化属性的单例(Singleton)。...
2024 年的 7 个时尚服装电商趋势
根据 Statista 的数据,2023 年,时尚电子商务行业约占整个电子商务行业的 21%。这是由几个趋势推动的,如日益增长的全球化、快速发展的创新,以及新冠肺炎等因素驱动的消费者消费习惯的变化(以及许多其他因素)。那么,电商时尚商家还能期待什么呢?对于那些想进入这个领域的人来说:在开发产品线、商业模式和营销计划时,你应该考虑哪些因素?让我们来看看我们预测...
Laravel 中的 PHP 注解 attributes
Attributes 提供了在代码的声明中添加结构化、机器可读的元数据信息的能力:类、方法、函数、参数、属性和类常量可以是属性的目标。我相信这个定义是正确的,我相信阅读本文的大多数开发人员都至少遇到过一次 attributes 。如果没有,它们本质上是添加到类中的元数据。
Laravel Octane 现已支持 FrankenPHP
Laravel Octane 通过使用高性能服务器比如 Open Swoole、Swoole 和 RoadRunner 来提高应用的性能。2023 年 12 月 19 日起,它也开始支持 FrankenPHP。