如何修改 Laravel HTTP 客户端的默认行为
当使用依赖于 Laravel HTTP 客户端的 Laravel 包时,你有时会想改变包与外部服务交互的行为。其中一种方法是使用 Laravel 服务容器带来的强大依赖注入功能。问题如果你只想看代码示例,你可以跳过这一节。在我们的一个项目中,我们不得不使用一个名为 DocuWare 的文档管理软件中的 API。当你必须做这样的事情时,在搜索引擎上搜索现有的软...
使用数据库注释跟踪包含敏感数据的字段
最近,我在探索一个 Rails 应用时,注意到开发人员通过表的列定义将数据库列标记为具有敏感数据。各种数据库都支持列注释,但以下是 MySQL 对列注释的解释:列的注释可以使用 COMMENT 选项指定,长度最多为 1024 个字符。注释由 SHOW CREATE TABLE 和 SHOW FULL COLUMNS 语句显示。它也显示在信息模式 COLUMNS ...
在 Laravel 中使用 Auto Eager Loading 全局防止 N+1 问题
当你在 Laravel 中缓存一个值时,会将其存储在缓存存储中(如 Redis、Memcached 等),以便之后检索。这很好,因为它可以防止像数据库查询或 API 调用这样昂贵的操作。use Illuminate\Support\Facades\Cache; Cache::put('name', 'Cherika'); $name = Cache::ge...
Laravel 枚举驱动路由权限
Laravel 通过向 can() 方法添加直接枚举支持简化了路由中的权限检查。这种增强消除了显式访问枚举值属性的需要,从而产生了更清晰、更具表现力的路由定义。当构建权限管理至关重要的管理面板或多租户应用,并且希望利用 PHP 的类型安全功能时,此功能尤其突出。Route::get('/admin', function () { // ... })-...
Laravel 中的一次性电子邮件检测
Laravel 的 Disposable Email 包旨在检测和阻止超过 10 万个已知域名的电子邮件地址。此包提供了多种使用一次性电子邮件检测规则的方法,如验证规则、blade 指令和服务 Facade:use EragLaravelDisposableEmail\Rules\DisposableEmailRule; $request->val...
Laravel 中的全文搜索
Laravel 通过 whereFullText 和 orWhereFullText 方法,提供了健壮的全文搜索能力,提供了一种相较于 LIKE 语句更复杂的数据查询方法。技术要求支持的数据库:MariaDB、MySQL 或 PostgreSQL目标字段全文(Full-text)索引对于大数据量系统,请考虑使用 ElasticSearch 或 Meilise...
Filament v4 Beta 版即将发布!嵌套资源、多因素认证等新特性值得期待
Filament v4 是 Filament 有史以来规模最大、功能最丰富的版本。本文将介绍 Filament v4 中的一些新特性:嵌套资源长期以来,Filament 团队一直收到嵌套资源的请求。而这个功能,在 Filament v4 中最终实现了。嵌套资源资源允许你在父资源的上下文中操作给定的 Filament 资源。例如,在开发学...
通过 Tailwindo 将 Bootstrap CSS 转换为 Tailwind
使用 awssat/tailwindo 包可以精确地将 Bootstrap 类自动转换成 Tailwind 类。安装 Tailwindo运行如下代码,可以在系统上全局安装该包。composer global require awssat/tailwindo用途使用如下命令将遍历 Laravel Blade 视图文件,将其中文件转换成 Tailwind。cd ...
在 Laravel 中记忆缓存
当你在 Laravel 中缓存一个值时,会将其存储在缓存存储中(如 Redis、Memcached 等),以便之后检索。这很好,因为它可以防止像数据库查询或 API 调用这样昂贵的操作。...
使用 Laravel 的新 HTTP::record() 方法监控 HTTP 交互
Laravel 引入了一个用于 HTTP 调试的新工具,通过 HTTP::record() 方法,你可以在维持实际外部服务通信的同时,监测真实的 HTTP 请求。use Illuminate\Support\Facades\Http; // Start recording HTTP interactions Http::record(); ...