laravel5.1で、消費税や送料など基本的には固定値だが、数年内に一回だけ更新される値を、更新スケジュールで指定したい!
laravel5.1では、固定値はconfigフォルダ内で「任意のファイル名・任意のキー名」で保存するのが一般的。
| 
					 1 2  | 
						// 設定値は簡単に取得できる $val = \Config::get(任意のファイル名.任意のキー名);   | 
					
ただ、消費税は平成31年(西暦2019年) 10月に10%に上がる予定(約3年後)
しかも、延期されたりもするので、このスケジュールや税額も設定画面から指定したい!
しょうがないので、管理画面経由でMySQLに設定された日時と値を見て、configファイルを毎日書き換えるのが一番楽そうだったので、実装してみた。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25  | 
						    public function handle()     {         // 消費税は平成31年(西暦2019年) 10月に10%に上がる予定(約3年後)         //'tax' => 8, // デフォルトは8%                // 毎日、DBの消費税の値で上書きする(本日以前で一番新しい日付の設定を使う)         $tax_query = Tax::query();         $tax = $tax_query->whereDate('operation_date', '<=', date('Y-m-d'))                          ->orderby('operation_date', 'desc')                          ->first();         $tax_rate = $tax->tax_rate;         // config/cart.phpファイルを読み込む         $config_tax = file_get_contents(config_path() ."/cart.php");         $tax_pattern = "/'tax' => [0-9]+,/"; // 消費税の設定文字列         $tax_replacement = sprintf("'tax' => %d,", $tax_rate); // 置き換える文字列         // 置換したテキストをファイルに上書きする         $tax_replaced_config = preg_replace($tax_pattern, $tax_replacement, $config_tax);                 file_put_contents(config_path() ."/cart.php", $tax_replaced_config);         // Configキャッシュを更新         echo shell_exec( 'php artisan config:cache' );         return ;     }  | 
					
毎日、更新しないで、値を見比べて違っていたら上書きするって処理にした方がいいな、コレ。