1
0

Tapヘルパーを使って処理をまとめよう

Posted at

概要

tapメソッドは第一引数を返却します。第一引数に何をしたいかは第二引数のクロージャに記述します

使用例1: ユーザーの名前を更新する

//$userにはnameを'hoge'にした後の値が入る
$user = tap(User::first(), function (User $user) {
   $user->name = 'hoge';
   $user->save();
});

使用例2:
第一引数から真偽値を返すメソッドを使用した後に第一引数から動的なメソッドを使用する

第一引数から動的なメソッドを発火したい場合は、第二引数を省略できます。

//before
$user = User::first();
$user->update([
  'name' => 'hoge'
]);
$user->->notify('更新しました')

//after: update()は真偽値を返すが、更新後にUserモデルが持つ動的なメソッドを発火させる
$user = tap(User::first())->update([
    'name' => 'hoge',
])->notify('更新しました');

エクストラ

Higher Order Messagesを使用した場合

Higher Order Messagesについては別途記事を書きます。

// before
$user = User::find(1);
$user->update($data);
$user->notify();

//after
tap(User::find(1))->update($data)->notify();

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0