cakephperの日記(CakePHP, Laravel, PHP) Twitter


継続的WebセキュリティテストサービスVAddyを始めました!

2008-09-26

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を使う。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/cakephper/20080926/1222396366