Laravel 底层 - 扩展框架
几天前,我正在修复一个不稳定的测试,结果发现我的工厂需要一些 unique 和 valid 值。Laravel 封装了 FakerPHP,我们通常通过 fake() 助手来访问它。FakerPHP 附带了 valid() 和 unique() 等修饰符,但你一次只能使用一个,所以不能执行 fake()->unique()->valid(),这正是我...
Laravel Collection 新增的 select 方法
还记得 Laravel Collection 中 only 方法吗,它允许你从集合中检索项目子集,例如,如果有一个这样的数据数组。...
[Laravel 扩展包]Replicate Laravel PHP 客户端
Replicate Laravel 包是 Replicate API 的 PHP 客户端,Replicate API 是用于运行和微调开源 AI 模型的 API。以下是使用 Replicate Laravel 客户端的一个示例:use HalilCosdu\Replicate\Facades\Replicate; $response = Replic...
Laravel 底层 - 策略模式
策略模式是一种行为设计模式,使得算法行为可以在运行时被选择。我们将在本文中讨论策略模式,以及 Laravel 如何在幕后使用它。在 Laravel 社区中,它通常被称为 Manager 模式。我在书中也遇到过它被标记为 “Builder” 模式的情况,我不同意这一点,稍后我将解释原因。简单地说,策略模式允许你根据条件切换实现(或算法)。在我们深入研究之前,需...
[Laravel 扩展包]Laravel Honeypot(蜜罐):防止垃圾信息通过表单提交
当将表单添加到公共网站时,垃圾信息机器人可能会试图使用虚假值提交表单。幸运的是,这些机器人中的大多数都相当愚蠢。您可以通过在表单中添加一个不可见的字段来阻止其中的大多数操作,该字段在提交时永远不应该包含值。这样的字段被称为蜜罐。这些垃圾信息机器人只会填充所有字段,包括蜜罐。当提交的蜜罐字段已满时,此包将丢弃该请求。除此之外,这个包还检查提交表单所花的时间。这...
[Laravel 扩展包]Laravel Slower——使用 AI 优化 Eloquent 查询
Laravel Slower 包是为那些希望提高应用程序性能的Laravel开发人员设计的。此包识别慢速查询,并建议进行优化,如索引和其他改进。取决于你如何配置应用调度程序,你可以每天运行以下命令来分析和清理旧记录:php artisan slower:clean /*{days=15} Delete records older than 15 days....
Laravel 中将 CSV 文件作为集合读取
大型项经常需要在某个时刻从大型 CSV 文件导入数据。如果处理不当,很可能会导致内存问题。值得庆幸的是,您可以使用League 的 CS V包 方便地读取 CSV 文件,并将其作为 Laravel 的集合进行迭代。尤其是使用惰性集合。通过这种方式,可以将 CSV 文件作为集合读取,而无需将整个文件加载到内存中。首先,请使用 Composer 安装 leagu...
[Laravel 扩展包]DirectoryTree Authorization:Laravel 的原生角色和权限管理包
Steve Bauman 的 DirectoryTree Authorization 包是 Laravel 的一个简单的原生角色和权限管理系统。它使用 Laravel 的 Gate 和开箱即用的授权方法,并提供以下轻量级 API 来管理角色和权限:use DirectoryTree\Authorization\Permission; use Directo...
在带有 MingleJS 的 Livewire 应用中使用 Vue 或 React 组件
MingleJS 可用于在 Livewire 组件或 Filament 应用中使用 Vue 和 React 组件。该包由 Joao Patricio 创建,对于在登录页及你想使用 Vue 或 React 的复杂组件很有用。它也可以作为一种增量方式,在 Vue 或 React 生态系统中使用用 Livewire 或使用第三方组件。MingleJS Demo 组...
[Laravel 扩展包]Moonshine:一个基于 Laravel 的后台管理面板
Moonshine 是 Laravel 的一个开源软件包,提供了一个管理面板,你可以可以用于 MVP、后台应用程序和内容管理系统。你可以在几分钟内制作一个具有授权和 CRUD 的管理面板。Moonshine Demo AdminMoonshine 是一个使用包的 CMS 功能进行快速开发的工具,以及使用熟悉的工具(如 Blade、Livewire 和 Alp...