使用 Essentials 改进 Laravel 的默认配置
Essentials 是 Nuno Maduro 创建的一个包,为 Laravel 应用提供了更好的默认设置。它包括严格的模型、自动热加载的关联、不可变的日期等等。
主要特性
- 强制严格模式:这改善了 Eloquent 处理未定义的属性、懒加载和无效赋值。
- 饥饿加载(Eager Loading):自动饥鄂加载模型的
$with
属性中定义的关联。 - 可选的 Unguarded 模型:全局禁用 Laravel 的批量赋值保护(opt-in)
- 不可变日期:在应用中使用
CarbonImmutable
而不是不可变日期对象 - 强制 HTTPS:确保所有生成的 URL 都使用 HTTPS 协议
- 安全控制台:在生产中阻止可能具有破坏性的 Artisan 命令(e.g., migrate:fresh)。
- 资源预加载:配置 Laravel Vite 以更积极地预加载资源。
- 防止随意请求:配置 Laravel HTTP facade 来阻止随意请求的发送
- 伪造 Sleep:将 Laravel Sleep Facade 配置为模拟模式。
- 额外的 Artisan 命令:使用
make:action
生成 Action 类,使用essentials:pint
和essentials:rector
使用一些推荐的默认值来配置 Pint 和 Rector。 - 还有更多值得期待的可能会在未来i骄傲如。
虽然此包包含几个合理的默认值,但所有功能都可以通过 config/essentials.php
配置文件进行配置。
注: Nuno 只推荐在新项目中或者你对其引入的修改感到舒适时,使用该包。因其修改了 Laravel 的默认设置。
安装该包,可以运行如下命令:
composer require nunomaduro/essentialsphp artisan vendor:publish --tag=essentials-stubs