ホームページ  >  記事  >  バックエンド開発  >  Laravelのバックグラウンドは設定を変更して自動的にロードできます

Laravelのバックグラウンドは設定を変更して自動的にロードできます

WBOY
WBOYオリジナル
2016-06-20 12:33:21860ブラウズ

1. laravel で実装される本番環境と開発環境の設定は分離されています

通常、設定ファイルに必要なパラメータは、このフォルダーの下の /config の下のディレクトリに置きます。すべてのファイルは自動的にロードされます。config (ファイル名 + "." + 設定項目) を使用してアクセスしますが、たとえば、本番環境とは異なります。開発環境は面倒ですが、laravel はこの方法を非常に便利に解決します。開発環境はルートディレクトリに .env ファイルを設定し、config 内の設定は .env を読み込むことで自由に設定を切り替えることができます。より便利なことが完了しました

2. 比較的固定されたパラメータを使用していくつかのバックグラウンド設定を実装する方法

Web サイトの設定、電子メールなど、日常の開発システムで頻繁に変更されないもの設定など 3 者間ログインの設定。これらの設定がバックグラウンドで変更された後、プログラムがそれを設定ファイルのように読み取ることができ、システムを初期化するたびにパラメータ設定を手動で変更する必要がなくなることを願っています (システムが他の人に販売されると仮定すると)。 1つ) )。

このとき、app/Http/Middleware/ResetConfig.php などのミドルウェアを作成し、このミドルウェアを app/Http/Kernel.php の protected $ に配置します。ミドルウェア配列を使用すると、書き込まれた設定ファイルを config

ResetConfig.php

public function handle($request, Closure $next){    $json_datas = $arr_datas = null;    // email    $file_path = storage_path('app/email.data');    if(file_exists($file_path)) {        $json_datas = file_get_contents($file_path);        $json_datas && $arr_datas = json_decode($json_datas, true);        $arr_datas && config(['mail' => array_merge(config('mail'), $arr_datas)]);    }    $json_datas = $arr_datas = null;    // msg    $file_path = storage_path('app/msg.data');    if(file_exists($file_path)) {        $json_datas = file_get_contents($file_path);        $json_datas && $arr_datas = json_decode($json_datas, true);        $arr_datas && config(['msg' => $arr_datas]);    }    return $next($request);}

Kernel.php

protected $middleware = [    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,    \App\Http\Middleware\ResetConfig::class,    \App\Http\Middleware\Cors::class, //解决跨域];

このようにして、プログラムを開発したら、ファイルを app/email.data に書き込むだけで、他のプログラムは config メソッドを通じて変更された設定にアクセスできるようになります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。