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 メソッドを通じて変更された設定にアクセスできるようになります。