Net_UserAgent_MobileをcakePHP1.2RC2で使う
携帯キャリアの判定に, PearのNet_UserAgent_Mobileを使う方法。まず、下記からNet_UserAgent_MobileとPearをダウンロード
http://pear.php.net/package/Net_UserAgent_Mobile/
http://pear.php.net/package/PEAR
UserAgentMobileのファイルを展開すると、mobile.phpとMobileフォルダが出来るので、下記のディレクトリのように設置。PEARも展開するといくつかファイルがあるので、PEAR.phpを下記のように設置。
app |-vendors |-PEAR.php |-Net |-UserAgent |-Mobile(ディレクトリ) |-Mobile.php
app/vendors/pear_ini.phpファイルを作成
<?php ini_set('include_path', dirname(__FILE__) . PATH_SEPARATOR . get_include_path()); ?>
例えば、mobileというコントローラで呼ぶ場合
app/controllers/mobile_controller.phpを下記のように作成
<?php App::import('Vendor', 'pear_ini'); App::import('Vendor', 'Net/UserAgent/Mobile', array('file' => 'Net' . DS . 'UserAgent' . DS . 'mobile.php')); class MobileController extends AppController { var $name = 'Mobile'; var $layout = ''; function index( ) { $agent = &Net_UserAgent_Mobile::factory(); switch( true ) { case ($agent->isDoCoMo()): // DoCoMoかどうか //Docomo用の処理 break; case ($agent->isSoftBank()): // softbankかどうか //Softbank用の処理 break; case ($agent->isEZweb()): // ezwebかどうか //Au用の処理 break; default: //PC用の処理 break; } } } ?>
上記の例だと、エージェントを判定して、それぞれ処理を実行する場合の基本パターン。
cakephp1.2RC2だと、vendor('hoge');というようなインポート関数が非推奨になり、ワーニングが出るので、App::importを使う。