はじめに
- Laravelには、便利なグローバルヘルパー関数がたくさん付属しています。 開発がはるかに簡単になるヘルパをいくつかピックアップしました。
ヘルパ関数
array_flatten()
- array_flatten関数は、多次元配列を単一レベルの配列に平坦化します。
$ array = [ 'name' => 'John' 、 'tools' => [ 'Laravel' 、 'Recipes' ] ] ; $ flattened = array_flatten ($ array ); // ['John'、 'Laravel'、 'Recipes']
一部の値に別の配列が含まれている可能性があるすべての配列値を収集する必要がある場合は、非常に役立ちます。ここでは、すべての値のリストを含む新しい配列を取得することに集中しています。それは魅力のように機能します!
array_forget()
- array_forget関数は、「ドット」表記を使用して、深くネストされた配列から特定のキーと値のペアを削除します。
$ array = [ 'users' => [ 'managers' => [ 'name' => 'John' ] ] ] ; array_forget ($ array 、 'users.managers' ); // ['users' => []]
これは、配列要素を削除するためのネイティブPHP関数であるunset()関数のより良いバージョンです。
array_get()
- 「ドット」表記を使用して、深くネストされた配列から値を取得します。
$ array = [ 'users' => [ 'managers' => [ 'name' => 'John' ] ] ] ; $ price = array_get ($ array 、 'products.desk.price' ); // 100
array_only()
- 配列内に使用したくないキーがたくさんあると想像してみてください。実際のところ、10個のキーのうち、2つだけを使用して、すぐに新しい配列を作成する必要があります。各アイテムを調べてarray_forget()する代わりに、必要なアイテムを選択するだけで済みます。array_only関数は、指定された配列から指定されたキーと値のペアのみを返します。
$ array = [ 'name' => 'John' 、 'type' => 'user' 、 'age' => 44 ] ; $ lice = array_only ($ array 、 [ 'name' 、 'age' ] ); // ['name' => 'John'、 'age' => 44]
array_prepend()
- array_pushを使用し、配列をプリペンディングする代わりに逆にする必要があった頻度。array_prepend関数は、アイテムを配列の先頭にプッシュします。
$ array = [ 'one' 、 'two' 、 'three' 、 'four' ] ; $ array = array_prepend ($ array 、 'zero' ); // ['zero'、 'one'、 'two'、 'three'、 'four']
- キー/値に対しても機能するのは素晴らしいことです。必要に応じて、値に使用するキーを指定できます。
$ array = [ 'price' => 100 ] ; $ array = array_prepend ($ array 、 'Desk' 、 'name' ); // ['name' => 'Desk'、 'price' => 100]
array_sort_recursive()
- 多くの場合、すべてを同時に並べ替える必要があるネストされた配列を取得します。はい、各配列をループして並べ替える簡単な関数を作成できますが、次の関数があるのはなぜですか。array_sort_recursive関数は、sort関数を使用して配列を再帰的にソートします。
$array = [ ['Roman', 'Taylor', 'Li'], ['PHP', 'Ruby', 'JavaScript'], ]; $sorted = array_sort_recursive($array); /* [ ['Li', 'Roman', 'Taylor'], ['JavaScript', 'PHP', 'Ruby'], ] */
array_wrap()
- 単一の文字列の結果を、要素が1つだけの配列に変換したい場合があります。コードを1行に減らすことができるのは常に良いことです。array_wrap関数は、指定された値を配列にラップします。指定された値がすでに配列である場合、変更されません。
$string = 'Success'; $array = array_wrap($string); // ['Success'] If the given value is null, an empty array will be returned: $nothing = null; $array = array_wrap($nothing); // []
public_path()
- アプリケーションアイコン、svgイメージ、cssリソースなど、アプリ内で静的に使用されるパブリックファイルをパブリックフォルダーに配置する必要があります。 public_path関数は、完全修飾パスをパブリックディレクトリに戻します。public_path関数を使用して、パブリックディレクトリ内の特定のファイルへの完全修飾パスを生成することもできます。
$ path = public_path (); $ path = public_path ('css / app.css' );
optional関数
- どんな引数も指定でき、そのオブジェクトのプロパティへアクセスするか、メソッドを呼び出せます。 指定したオブジェクトがnullだった場合、エラーを発生させる代わりに、プロパティとメソッドはnullを返します。
- 下記の例だとUserモデルにtestというプロパティがないのにエラーが発生しない。
Rubyでいう
&.
の処理と同じ
$user = User::find(1); optional($user)->test
実行結果はnullが返ってくる
dump関数
- 指定した変数をダンプします。ddと違う点は処理が停止しないで変数をダンプできる
$user = User::find(1); dump($user);
コレクション
- Illuminate\Support\Collectionクラスは配列データを操作するための、書きやすく使いやすいラッパーです。以下の例をご覧ください。配列から新しいコレクションインスタンスを作成するためにcollectヘルパを使用し、各要素に対しstrtoupperを実行し、それから空の要素を削除しています。
$collection = collect(['taylor', 'abigail', null])->map(function ($name) { return strtoupper($name); })->reject(function ($name) { return empty($name); }); dd($collection);