Laravelでは、PC・スマホの判定、ブラウザの判定、ロボットの判定などユーザーエージェントを使用して判定する場面というのがあるかもしれません。
今回のこの記事では、これらのことを行う際に使える方法について紹介します。
Contents
jessenger/ajent をインストールする
まず、下記のコマンドで、jessenger/ajentをインストールします。
composer require jenssegers/agent
そして、config/app.phpを編集して、providersとaliasを追加します。
config/app.php
..... 'providers' => [ .... Jenssegers\Agent\AgentServiceProvider::class, ] 'aliases' => [ .... 'Agent' => Jenssegers\Agent\Facades\Agent::class, ] .....
これで、設定は完了です。
jessenger/ajentの使い方
jessenger/ajentの使い方は、簡単です。
下記のようにソースに記述することで判定を行うことができるようになります。
<?php use Jenssegers\Agent\Agent; ..... $agent = new Agent(); ..... // デバイスのチェック $agent->isAndroidOS(); .....
PC・スマホ・タブレット判定
PC・スマホ・タブレット判定も上記のようにAgentクラスのメソッドで提供されています。
判定方法は下記のようになります。
//モバイル(スマホ)の判定 $agent->isPhone(); //PCの判定 $agent->isDesktop(); //タブレットの判定 $agent->isTablet();
OS・ブラウザの判定
OSやブラウザ判定も簡単に行うことができます。ユーザーエージェントに含まれる文字列をisメソッドで判定してくれます。
//ウィンドウズの判定 $agent->is('Windows'); //firefoxの判定 $agent->is('Firefox'); //iphoneの判定 $agent->is('iPhone'); //OS Xの判定 $agent->is('OS X');
ロボットの判定
ロボットかどうかの判定にも対応しています。使用方法は同様です。
$agent->isRobot();
OSの名前を取得する
OSの名前を取得することもできます。使用方法は下記となります。
$platform = $agent->platform();
Ubuntu, Windows, OS X, …という感じで取得してくれます。
デバイスの名前を取得する
iPhone, Nexus, AsusTabletなどのデバイス名を取得したい時もあるかもしれません。
下記のようにすると取得することができます。
$device = $agent->device();
ブラウザ名を取得する
下記のようにすることでブラウザ名を取得できます。
$browser = $agent->browser();
ロボット名を取得する
ロボット名を取得することもできます。
$agent->robot();
ブラウザやOSのバージョンの取得
ブラウザやOSのバージョンを取得することもできます。
$browser = $agent->browser(); $version = $agent->version($browser); $platform = $agent->platform(); $version = $agent->version($platform);
jessenger/ajentをbladeで使用する方法
bladeで使用するには下記のように記載することで使用することができます。
@if((new \Jenssegers\Agent\Agent())->isDesktop()) {{-- your code --}} @endif @if((new \Jenssegers\Agent\Agent())->isMobile()) {{-- your code --}} @endif
まとめ
今回は、Laravelでユーザーエージェントを使用した判定に関しての記事について書きました。
まだ、記載できてない情報もありますので気になる方は、下記の参照サイトに記載しているgithubのリポジトリなどを参照してみてください。
[参考]:jenssegers / agent(github)
[参考]:ユーザーエージェントを判別するAgentをLaravelにインストールする