Laravel で自作クラスを使う

共通処理などの実行クラスをLaravelで使いたい場合、\{Laravelプロジェクト}\app以下に配置します。分かりやすいようLibraryなど任意のディレクトリを作成してクラスを作成しましょう。
下記は\{Laravelプロジェクト}\app\LibraryRequestUtil.phpを作成したサンプルです。

isMobile()はモバイルからのアクセスならtrueを返し、それ以外の場合はfalseを返します。

<?php
namespace App\Library;

class RequestUtil
{
    static public function isMobile($request) {
        $userAgent = $request->header('User-Agent');

        return strpos($userAgent, 'iPhone') !== false ||
            strpos($userAgent, 'iPod') !== false ||
            strpos($userAgent, 'Android') !== false;
    }
}

コントローラで自作クラスを使う

名前空間を指定して該当クラスを使用できます。

use App\Library\RequestUtil;

class SampleController extends Controller
{
    public function show(Request $request) {
        if (RequestUtil::isMobile($request)) {
            $this->setArgs('device', 'Mobile');
        } else {
            $this->setArgs('device', 'PC');
        }
        return view("child", $this->Args);
    }
}

Bladeで自作クラスを使う

@inject()で該当クラスを読み込み使用できます。

@inject('requestUtil', 'App\Library\RequestUtil')
<?php if ( $requestUtil->isMobile(request()) ): ?>
Bladeではrequest()でHTTPリクエストを取得できます。
このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

コメント

メールアドレスが公開されることはありません。 が付いている欄は必須項目です