【Laravel】Laravel5.7のヘルパーを一気に勉強(20) – その他その7




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);