1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Laravelの使える?ヘルパ関数

Last updated at Posted at 2021-08-02

Laravel8のヘルパ関数で実際に使った使えたものをまとめる

Laravelではグローバルに使える関数が多数あり、それらを使用することにより開発効率や可読性が向上します。
そのため用途にあったものがある場合、積極的に使用するようにしましょう。
以下では用途にまとめてヘルパ関数を記載しています。

パス

mix()

mix関数は、バージョンつけしたMixファイルのパスを取得します。

$path = mix('css/app.css');

storage_path()

storage_path関数は、アプリケーションのstorageディレクトリへの完全修飾パスを返します。storage_path関数を使用して、ストレージディレクトリ内の特定のファイルへの完全修飾パスを生成することもできます。

$path = storage_path();

$path = storage_path('app/file.txt');

文字列

Str::lower()

Str::lowerメソッドは指定文字列を小文字に変換します。

use Illuminate\Support\Str;

$converted = Str::lower('LARAVEL');

// laravel

Str::upper()

Str::upperメソッドは、指定文字列を大文字に変換します。

use Illuminate\Support\Str;

$string = Str::upper('laravel');

// LARAVEL

Str::substr()

Str::substrメソッドは開始位置と文字列長の引数で指定した部分文字列を返します。

use Illuminate\Support\Str;

$converted = Str::substr('The Laravel Framework', 4, 7);

// Laravel

Str::replace()

Str::replaceメソッドは、文字列内の指定した文字列を置き換えます。

use Illuminate\Support\Str;

$string = 'Laravel 8.x';

$replaced = Str::replace('8.x', '9.x', $string);

// Laravel 9.x

Fluent文字列

Fluent文字列はオブジェクト指向で、複数の文字列操作をチェーンできるインターフェイスを提供しています。
複数の文字列操作をする場合は、自然言語のように記述できるため、コードの可読性が上がります。
Str::of()の引数に対象の文字列を指定して使用します。

append

appendメソッドは、指定値を文字列へ追加します。

use Illuminate\Support\Str;

$string = Str::of('Taylor')->append(' Otwell');

// 'Taylor Otwell'

contains

containsメソッドは、指定された文字列に指定された値が含まれているかどうかを判別します。このメソッドは大文字と小文字を区別します。

use Illuminate\Support\Str;

$contains = Str::of('This is my name')->contains('my');

// true

is

isメソッドは、指定文字列が指定パターンに一致するかどうかを判別します。アスタリスクはワイルドカード値として使用できます

use Illuminate\Support\Str;

$matches = Str::of('foobar')->is('foo*');

// true

$matches = Str::of('foobar')->is('baz*');

// false

trim

trimメソッドは、文字列をトリムします。

use Illuminate\Support\Str;

$string = Str::of('  Laravel  ')->trim();

// 'Laravel'

$string = Str::of('/Laravel/')->trim('/');

// 'Laravel'

when

whenメソッドは指定条件がtrueの場合、指定したクロージャを呼び出します。クロージャは、fluent文字列インスタンスを受け取ります。

use Illuminate\Support\Str;

$string = Str::of('Taylor')
                ->when(true, function ($string) {
                    return $string->append(' Otwell');
                });

// 'Taylor Otwell'

必要であれば、3番目のパラメータとして別のクロージャをwhenメソッドに渡せます。このクロージャは、条件パラメータがfalseと評価された場合に実行します。

use Illuminate\Support\Str;

$string = Str::of('Steve')
                ->when(false, function ($string) {
                    return $string->append(' Otwell');
                }, function ($string) {
                    return $string->append(' Jobs');
                });

// 'Steve Jobs'

URL

route()

route関数は、指定した名前付きルートのURLを生成します。

$url = route('route.name');

ルートがパラメーターを受け入れる場合は、それらを関数の2番目の引数として渡すことができます。

$url = route('route.name', ['id' => 1]);

デフォルトでは、route関数は絶対URLを生成します。相対URLを生成する場合は、関数の3番目の引数としてfalseを渡してください。

$url = route('route.name', ['id' => 1], false);

その他

abort()

abort関数は、例外ハンドラによりレンダーされるであろう、HTTP例外を投げます。

abort(403);

ブラウザに送信する必要のある例外のメッセージとカスタムHTTP応答ヘッダを指定することもできます。

abort(403, 'Unauthorized.', $headers);

abort_if()

abort_if関数は、指定された論理値がtrueと評価された場合に、HTTP例外を投げます。

abort_if(! Auth::user()->isAdmin(), 403);

abortメソッドと同様に、例外の応答テキストを3番目の引数として指定し、カスタム応答ヘッダの配列を4番目の引数として関数に指定することもできます。

###abort_unless()
abort_unless関数は、指定した論理値がfalseと評価された場合に、HTTP例外を投げます。

abort_unless(Auth::user()->isAdmin(), 403);

abortメソッドと同様に、例外の応答テキストを3番目の引数として指定し、カスタム応答ヘッダの配列を4番目の引数として関数に指定することもできます。

collect()

collect関数は、指定値からコレクションインスタンスを生成します。

$collection = collect(['taylor', 'abigail']);

logger()

logger関数は、debugレベルのメッセージをログへ書き出します。

logger('Debug message');

関連情報の配列を関数へ渡すこともできます。

logger('User has logged in.', ['id' => $user->id]);

関数に値を渡さない場合は、ロガーインスタンスが返されます。

logger()->error('You are not allowed here.');

dd()

dd関数は指定された変数の内容を表示し、スクリプトの実行を停止します。

dd($value);

dd($value1, $value2, $value3, ...);

スクリプトの実行を停止したくない場合は、代わりにdump関数を使ってください。

###dump()
dump関数は指定した変数をダンプします。

dump($value);

dump($value1, $value2, $value3, ...);

now()

now関数は、現時点を表す新しいIlluminate\Support\Carbonインスタンスを生成します。

$now = now();

optional()

optional関数はどんな引数も指定でき、そのオブジェクトのプロパティへアクセスするか、メソッドを呼び出せます。指定したオブジェクトがnullだった場合、エラーを発生させる代わりに、プロパティとメソッドはnullを返します。

return optional($user->address)->street;

{!! old('name', optional($user)->name) !!}

optional関数は、2番目の引数としてクロージャも受け入れます。最初の引数として指定された値がnullでない場合、クロージャが呼び出されます。

return optional(User::find($id), function ($user) {
    return $user->name;
});

参考

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?