Laravel で自作クラスを使う
共通処理などの実行クラスをLaravelで使いたい場合、\{Laravelプロジェクト}\app
以下に配置します。分かりやすいようLibrary
など任意のディレクトリを作成してクラスを作成しましょう。
下記は\{Laravelプロジェクト}\app\Library
にRequestUtil.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リクエストを取得できます。