LoginSignup
2

More than 1 year has passed since last update.

Organization

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

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

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
What you can do with signing up
2