Laravel5.7のその他に関するヘルパーその7です。
retry()
第一引数にリトライ回数を指定、第二引数にコールバック、第三引数に実行間隔(ms)を指定します。
コールバックが例外を投げると、実行間隔分の間隔を空け再度コールバックを実行します。
リトライ回数実行して例外が発生し続ける場合は例外を投げます。
リトライ回数以内にコールバックが正常に終了した場合、次の処理にうつります。
retry(10, function() {// 10:回数
logger(date('Y-m-d H:i:s'));
throw new Exception('retry error test');
}, 1000);// 1000 m秒 1000だと1秒
session
()
セッションインスタンスの取得、セッションの値を取得、セッションに値を設定します。
echo get_class(session());
// Illuminate\Session\SessionManager
echo session('key');
// セッションにkeyが存在したらその値を返す
session(['key1' => 1, 'key2' => 2]);
// セッションに値を設定
tap
()
第一引数で処理を実行し、その結果を第二引数のクロージャに渡し、処理した結果を返します。
第二引数を指定しない場合、tap()にメソッドチェーンを指定することができます。
その場合、メソッドチェーンの関数を実行後、tap()の処理結果を返します。
$user = tap(new User, function($user) {
$user->name = 'なまえ';
})->toArray();
print_r($user);
/*
Array
(
[name] => なまえ
)
*/
$user = tap(new User)->update(['name' => 'あああ']);
// Userインスタンスが返される。
$user = new User;
$tmp = $user->update(['name' => 'あああ']);
// この場合の$tmpはupdateの実行結果
today
()
実行日の00:00:00であるIlluminate\Support\Carbonインスタンスを返します。
echo today();
// 2019-03-30 00:00:00
throw_if
()
第一引数がtrueの場合、第二引数の例外を投げます。
throw_if(!Auth::check(), Exception::class);