Laravelが本番サーバーではないときに警告メッセージを表示したら意外と便利でした
警告メッセージ
最近、ぼくはLaravelで構築する際に開発環境の場合に警告メッセージを表示するようにしています。
開発サーバーやステージングサーバーで有ることを確認したり、逆に本番サーバーなのにデバッグがオンになっていないかなどを確認する用途で使用しています。
あると意外と便利だったので紹介します。
動作環境
- Laravel 8
- prologue/alerts 0.4.8
prologue/alertsについて
prologue/alertsは、フラッシュメッセージ用のライブラリです。使用方法は前回の記事を参照してください。
ミドルウェアの作成
環境変数を確認してフラッシュメッセージを送るミドルウェアを作成します。
app/Http/Middleware/EnvAlerts.php
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Prologue\Alerts\Facades\Alert;
class EnvAlerts
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
if (config('app.env') !== 'production') {
Alert::warning('本アプリケーションは、本番環境ではありません。');
}
if (config('app.debug')) {
Alert::error('デバックモードがオンになっています。');
}
return $next($request);
}
}
ミドルウェアの登録
ミドルウェアは作成しただけでは、動作しないため、登録してあげる必要があります。
通常アクセス時全てに提要する場合には、ミドルウェアグループのweb
にミドルウェアを追加します。
app/Http/Kernel.php
protected $middlewareGroups = [
'web' => [
// ...
\App\Http\Middleware\EnvAlerts::class,
],
// ...
];