2
2

More than 3 years have passed since last update.

ユーザーエージェントを判別するAgentをLaravelにインストールする

Posted at

68747470733a2f2f6a656e737365676572732e636f6d2f7374617469632f6d656469612f6167656e742e706e67.png

「Agent」のロゴ。ダンディですね。

UserAgentを識別するライブラリ「Agent」

PHPでユーザーのOSやブラウザの種類を判別したいときには「Agent」が便利です。

使い方

<?php
use Jenssegers\Agent\Agent;

$agent = new Agent();

// デバイスのチェック
$agent->isAndroidOS();

// ブラウザのチェック
$agent->isIE();
$agent->isSafari();

Laravelへのインストール

composerでインストールします。

composer require jenssegers/agent

Laravelから呼び出せるように設定をconfig/app.phpに足します。

config/app.php
Jenssegers\Agent\AgentServiceProvider::class,
config/app.php
'Agent' => Jenssegers\Agent\Facades\Agent::class,

LaravelのBladeに便利に渡す

ServiceProviderを追加し、Bladeテンプレートに常に$agentが渡されるようにします。
これでいつでもBlade内から$agentを参照することによってUserAgentを取得できます。

app/Providers/AgentServiceProvider.php
<?php

namespace App\Providers;

use View;
use Jenssegers\Agent\Agent;
use Illuminate\Support\ServiceProvider;

class AgentServiceProvider extends ServiceProvider
{
    public function boot()
    {
        $agent = new Agent();

        View::share('agent', $agent);
    }

    public function register()
    {
        //
    }
}
config/app.php
<?php
    ...  ...

        /*
         * Application Service Providers...
         */
        App\Providers\AppServiceProvider::class,
        App\Providers\AuthServiceProvider::class,

        ...  ...

        App\Providers\AgentServiceProvider::class,
    ],

これで以下のようにBladeテンプレートから呼び出せます。

index.blade.php
    @if($agent->isIE())
        {{ 'Internet Explorerを使っています。' }}
    @endif
2
2
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
2
2