戏里戏外

Laravel 应用中 4 个必不可少的功能配置

2024-12-03#Laravel

在 Laravel 应用中,AppServiceProvider 是一个核心的服务提供者,它负责引导和配置应用的基础功能。

<?php

use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Model;
use Illuminate\Support\Facades\URL;
use Illuminate\Support\Facades\Vite;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     */
    public function boot(): void
    {
        $this->configureCommands();
        $this->configureModels();
        $this->configureUrl();
        $this->configureVite();
    }

    // ...
}

以下是 4 个在 AppServiceProvider 中必不可少的功能配置。

配置数据库安全命令

use Illuminate\Support\Facades\DB;

private function configureCommands(): void
{
    DB::prohibitDestructiveCommands(
        $this->app->isProduction()
    );
}

在生产环境中禁用破坏性的数据库命令是一个很好的安全实践,通过 prohibitDestructiveCommands 方法可以防止意外的数据库操作。

配置模型行为

use Illuminate\Support\Facades\Model;

private function configureModels(): void
{
    Model::shouldBeStrict();
    Model::unguard();
}

通过 shouldBeStrict 方法可以强制模型在开发环境中严格模式下运行,从而捕获潜在的错误。

unguard 方法则允许模型在开发环境中绕过授权检查,方便调试。

强制 HTTPS

use Illuminate\Support\Facades\URL;

private function configureUrl(): void
{
    URL::forceScheme('https');
}

通过 forceScheme 方法强制所有 URL 使用 HTTPS 协议,确保应用在生产环境中安全可靠。

优化资源加载

use Illuminate\Support\Facades\Vite;

private function configureVite(): void
{
    Vite::usePrefetchStrategy('aggressive');
}

通过配置 Vite 的预加载策略,可以优化前端资源的加载性能。

参考地址