如何安全地使用 Laravel Facade
这个问题在 Laravel 文档中也不是特别清晰,不过 Facade 有一件事可能会在系统中导致意外漏洞:Facade 像单例与匿名函数绑定的传统服务容器不同,Facade 保留了解析过的实例并在未来 Facade 调用中使用它。我们来看看 Laravel 的代码: /** * Resolve the facade root instance...
Laravel 服务容器介绍
Laravel 服务容器(Service Container)可能有点神秘,尤其是如果你不经常使用它的话。在这篇文章中,我将解释如何使用它,以及应该避免哪些常见错误。Laravel 服务容器的工作方式优美而强大,允许您轻松地注入依赖项,解析定制的服务,用假的服务替换实时服务进行测试,甚至可以创建在整个应用中持久化属性的单例(Singleton)。...
Laravel Octane 现已支持 FrankenPHP
Laravel Octane 通过使用高性能服务器比如 Open Swoole、Swoole 和 RoadRunner 来提高应用的性能。2023 年 12 月 19 日起,它也开始支持 FrankenPHP。
Laravel 中的 API 版本控制:正确操作的完整指南
确保 API 保持一致性和可靠性类似于在风暴期间保持船只稳定。随着应用的增长和变化,你需要管理 API 的不同版本。Laravel 是一个流行的 PHP 框架,它提供了大量的工具来帮助您在这些波涛汹涌的水域中导航。但有这么多路要走,你如何确保自己走在正确的道路上?请进入 API 版本控制。您可以通过多种方式对 Laravel API 进行版本控制,但最直接的...
在 PHP 中使用匿名类测试抽象类
抽象类不能直接实例化,这为测试抽象类本身实现的功能时带来了挑战。在这篇文章中,我将分享我解决这一问题的方法。为了说明该技术,让我们假设有一个带有 move() 方法的抽象类 Vehicle,同时在其子类中强制实现 speed() 方法。/app/Utils/Vehicle.phpnamespace App\Utils; use Exception; ab...
Stressless: PHP 压力测试
PestPHP 发布了一个全新的插件:Stressless。这是 Pest PHP 家族的一个新成员,它为 PHP 生态系统带来了压力测试的能力。它与 Pest PHP 无缝集成,将压力测试的强大功能与 Pest 的 Expected API 的简洁和优雅相结合。正如你所看到的,开始使用 Stressless 是毫不费力的——你所需要做的就是使用 Compo...
Laravel Tailwind Merge - 解决 Laravel 中的 Tailwind CSS 合并问题
Laravel Tailwind Merge 是一个自动解决 Laravel 中 Tailwind CSS 类冲突的包。这允许您合并多个 Tailwind 类并解决冲突。以下是 README 文件中的一个基本示例。在 blade 组件中提供的以下代码:
Laravel Volt 实时状态
我们来创建一个 Volt 组件,用它来显示实时用户数量。概念要实现该特性,我们需要一个方法来跟踪活跃用户。一个方法是,将活跃用户以日志记入数据库表格。每个条目包含用户 ID 以及何时激活的时间戳。然后,您可以检查最后 5 分钟内或任何其他所需时间段内的活动。另一种方法是在 users 表中添加一个 “last_login_at” 字段。第三种可能性是使用 w...
TallStackUI - TALL 栈应用的新组件库
TallStackUi 是 TALL 栈(Tailwind、Alpine.js、Laravel 和 Livewire)应用程序的现成组件库。AJ Meireles 在发布公告中表示,“经过两个月的工作,现在是时候推出 TallStackUI 了:一个用于 TALL Stack 应用程序的新组件库。有 20 多个现成组件和一种创新的个性化方式。”根据 Meir...