Laravel 的 toUri() 方法:通过字符串流畅地构建 URI
你是否曾经需要从文本中提取 URL 并使用查询参数动态修改它?Laravel 全新的 toUri() 方法将字符串操作转变为流畅的 URI 构建体验。处理嵌入在文本内容中的 URL 一直以来都是一个繁琐的过程,需要使用正则表达式、字符串解析和手动构建 URL。无论您是在处理用户生成的内容、解析配置文件还是处理动态重定向,提取和修改 URI 通常都会导致代码脆...
使用 Laravel Introspect 包分析 Laravel 代码库
使用 Laravel Introspect 扩展包,你可以分析 Laravel 代码库,使用类型安全的流畅 API (fluent API) 直接从代码库中查询视图、模型、路由、类等:你是否正在进行复杂的重构工作,需要查找特定视图的所有使用位置?你是否正在构建开发工具或其他需要代码库信息的工具?是否需要 Eloquent 数据模型的结构化架构信息?这些都是需...
在 Laravel 中集成 ReactPHP 服务
创建一个 Laravel 命令php artisan make:command SaleServer --command=bidserver:sale该命令将生成一个运行ReactPHP 服务的 daemon。调用服务器此命令使用 HTTP post 从 Livewire 组件中调用:Http::asForm()->post(co...
通过探索开源项目学习 Laravel
对于刚起步的开发者来说,获得实践经验就像一个“先有鸡还是先有蛋”的问题。如果没有亲身体验过真实的项目,就很难掌握获得机会所需的技能。然而,如果没有这些机会,积累经验似乎是不可能的。这时,开源项目就成了天赐之物。通过探索和贡献这些项目,你不仅可以了解专业应用程序的构建方式,还能有机会了解经验丰富的开发者如何解决实际问题。即使对于经验丰富的开发者来说,探索开源项...
使用 Essentials 改进 Laravel 的默认配置
Essentials 是 Nuno Maduro 创建的一个包,为 Laravel 应用提供了更好的默认设置。它包括严格的模型、自动热加载的关联、不可变的日期等等。主要特性强制严格模式:这改善了 Eloquent 处理未定义的属性、懒加载和无效赋值。饥饿加载(Eager Loading):自动饥鄂加载模型的 $with 属性中定义的关联。可选的 ...
ElasticLens:Laravel 中 Eloquent 驱动的 Elasticsearch
ElasticLens 是一个将 Elasticsearch 与 Eloquent 模型集成的 Laravel 包。它在提供高级搜索能力的同时,还维持了 Laravel 熟悉的语法。它与 laravel-elasticsearch 包协同工作,允许开发人员轻松执行全文搜索、管理索引迁移和自定义字段映射。User::search('loves espresso...
如何修改 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 () { // ... })-...