Laravel7 ヘルパー「Fluent文字列」の簡単な使い方

Laravel7 ヘルパー「Fluent文字列」の簡単な使い方

Laravel7より追加されたヘルパー「Fluent文字列」の簡単な使い方を記述してます。

環境

  • OS windows10 pro 64bit
  • Composer 1.10.5
  • PHP 7.4.5
  • MariaDB 10.4.12
  • Laravel Framework 7.6.2

※windows10に Laravel のインストールはこちら
※windows10に Composer のインストールはこちら
※windows10に PHP のインストールはこちら
※windows10に MariaDB のインストールはこちら

事前準備

実行結果を表示するための適当なコントローラーを作成します。

php artisan make:controller HelloController

app/Http/Controllers/HelloController.phpが生成されているので、
「use Illuminate\Support\Str;」を追加して下記の通りに編集しておきます。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Str;

class HelloController extends Controller
{
	public function index()
	{
		$hello = Str::of('Hello World');		
		return view('hello', compact('hello') );
	}
}

resources\views配下にhello.blade.phpを作成して下記の通りに編集します。

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Laravel</title>

        <!-- Fonts -->
        <link href="https://fonts.googleapis.com/css?family=Nunito:200,600" rel="stylesheet">

        <!-- Styles -->
        <style>
            html, body {
                background-color: #fff;
                color: #636b6f;
                font-family: 'Nunito', sans-serif;
                font-weight: 200;
                height: 100vh;
                margin: 0;
            }

            .full-height {
                height: 100vh;
            }

            .flex-center {
                align-items: center;
                display: flex;
                justify-content: center;
            }

            .position-ref {
                position: relative;
            }
            
            .content {
                text-align: center;
            }

            .title {
                font-size: 84px;
            }

            .m-b-md {
                margin-bottom: 30px;
            }
        </style>
    </head>
    <body>
        <div class="flex-center position-ref full-height">            

            <div class="content">
                <div class="title m-b-md">
                    {{$hello}}
                </div>
            </div>
        </div>
    </body>
</html>

後はroutesフォルダ配下のweb.phpにルーティングだけ設定しておきます。

Route::resource('/hello', 'HelloController');

実行します。

php artisan serve --host 0.0.0.0

ブラウザから http://プライベートIP:8000/helloにアクセスすると「Hello World」が表示されていると思います。

afterヘルパー実行

作成したコントローラーを下記のように編集します。
afterヘルパーは、指定した文字列以降の全ての文字列を返します。

$hello = Str::of('Hello World')->after('Hello');	

実行結果

下記に、他のパターンの実行結果を記載します。

$hello = Str::of('Hello Hello World')->after('Hello');

<出力結果>
Hello World

$hello = Str::of('Hello World')->after('mebee');

<出力結果>
Hello World

afterLastヘルパー

afterLastヘルパーは、指定した文字列が複数存在しても、最後に存在した箇所から全ての文字列を返します。

$hello = Str::of('Hello World Hello World')->afterLast('Hello');

<出力結果>
World

$hello = Str::of('App\Http\Controllers\Controller')->afterLast('\\');

<出力結果>
Controller

$hello = Str::of('Hello World')->after('Hello');

<出力結果>
World

appendヘルパー

指定した文字列を追加することが可能です。

$hello = Str::of('Hello')->append(' World');

<出力結果>
Hello World

asciiヘルパー

アスキーコードを文字列に変換してくれるようです。

$hello = Str::of('ĤÈĻĻŌ ŴŎŔĽÐ')->ascii();

実行結果

basenameヘルパー

パスから一番最後の文字列を返してくれます。

$hello = Str::of('/foo/bar/hello')->basename();	

<出力結果>
hello

$hello = Str::of('\foo\bar\hello')->basename();

<出力結果>
hello

$hello = Str::of('/foo/bar/hello.jpg')->basename();

<出力結果>
hello.jpg

## 拡張子を除くことも可能です。
$hello = Str::of('/foo/bar/hello.jpg')->basename('.jpg');	

<出力結果>
hello

camelヘルパー

スネークケースやケバブケースの文字列をキャメルケースに変換してくれます。

## スネークケース
$hello = Str::of('hello_world')->camel();

## ケバブケース
$hello = Str::of('hello-world')->camel();

## パスカルケース
$hello = Str::of('HelloWorld')->camel();

<出力結果>
helloWorld

上記以外にも複数のヘルパーが用意されいるので、こちらをご確認下さい。