CakePHPでモバイル/スマホの判定

スポンサーリンク

CakePHP3の開発でモバイル判定を行う方法を調べたところ、デフォルトのライブラリとして含まれている mobiledetect(Mobile_Detect)が使えるらしい。CakePHP の API としては、RequestHandlerComponent::isMobile() を利用できます。

— 環境 —
PHP 5.5.19
CakePHP 3.1.1

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

RequestHandlerComponent::isMobile() でモバイル判定

以下のどちらかでモバイルからのアクセスかどうかを判定できます。返り値は true または false となる。

RequestHandlerComponent::isMobile() については以下参照。

RequestHandlerComponent::isMobile() / Request Handling – CakePHP Cookbook 3.x documentation

$this->request->is(‘mobile’); の書き方については、CakePHP 2 のドキュメントで発見しました。CakePHP 3 で試したところ、こちらの書き方でも動作しました。

リクエストとレスポンスオブジェクト – CakePHP Cookbook 2.x ドキュメント

モバイル判定される UserAgent

User Agent で判断するらしく、以下の文字列がユーザーエージェントに含まれる場合はモバイルからのアクセスと判定するそうです。

————————-
Android
AvantGo
BlackBerry
DoCoMo
Fennec
iPad
iPhone
iPod
J2ME
MIDP
NetFront
Nokia
Opera Mini
Opera Mobi
PalmOS
PalmSource
portalmmm
Plucker
ReqwirelessWeb
SonyEricsson
Symbian
UP.Browser
webOS
Windows CE
Windows Phone OS
Xiino
————————-

以上です。

スポンサーリンク
私は Ruby on Rails の前は、PHP & CakePHP を使っていました(今も使いますけど)。PHP についてはオライリーの本を中心に軽く10冊以上は読み込みました。
 
スポンサーリンク

Leave Your Message!