Laravelの素敵な機能(Collection)

PHP7の登場でPHP界隈が盛り上がってますね!

そして、PHPフレームワークのLaravelも5系の登場で人気急上昇中といった感じでしょうか。

Laravelの機能で気になったことがあるので紹介しますー。

Collection

Laravelには配列データを操作するために、書きやすく使いやすいラッパーが用意されています。

それをCollectionと呼びます。(Illuminate\Support\Collectionクラス)

Collectionクラスは、内部で持っている配列を操作でき、メソッドチェーンでスムーズに処理してくれます。 ※つまり、すべてのCollectionメソッドは新しいCollectionインスタンスを返すってことですね。

$collection = collect(['a', 'b', 'c', 'hogehoge'])
    ->map(function($name)){
        return strtoupper($name);
    })
    ->reject(function($name)) {
        return strlen($name) > 1;
    });

上記サンプルは、要素ひとつひとつについて、小文字をすべて大文字にしてから、文字数が1文字を超える要素を削除することをしています。

コレクションの生成

上記サンプルで書いたように配列を引数にcollect(['hogehoge', 'hoge', ''])としてあげればいいです。

Eloquentオブジェクトは、Collectionを返却してくれるので、コレクションさえ扱えれば、データ取得後も配列操作がより簡単になります!

配列操作はCollectionで!

これは後日書きますね。