Webアプリケーション情報のスクラップ集
お知らせ
2008-10-20
新着記事
PHP関連
symfony1.2でaskeet(サンプルのQ&Aサイト)を再構築する
DB関連
アプリケーションサンプル
CodeIgniterで作成した簡易プロジェクト管理システム
Links
CakePHPで携帯版のシステムを構築する
CakePHPガイドブックを参考により実践的な携帯版の構築方法を検証
携帯版システムの前提条件
- PC版システムをベースにビュー・レイアウトを切り替えることで対応する
- 携帯版独自の遷移はコントローラーに通常と同様に記述する
- 携帯版はSJIS、PC版はEUC(UTF8)での出力とする
- 携帯版の判定は各キャリアのIPアドレスのリストを元に判定し、携帯以外からのアクセスを防止する機能を実装
- PC版に携帯からアクセスを行った場合に自動的に携帯用URLにリダイレクトさせる
- 携帯版ではセッションIDを常にパラメータ内に保持させる
- /m/でアクセスされた場合は携帯版システムとして認識させ、Webサービス'Mobile'を有効にする
手順1.設定ファイル・ルーティング設定を追加する
/app/config にモバイル用の設定ファイル mobile.ini.php を配置し bootstrap.php から読み込ませる。
bootstrap.php
require_once(dirname(__FILE__) . "/mobile.ini.php");
mobile.ini.php
/**
* 設定
*/
// 携帯用URL(/m/)
if(!defined('CAKE_MOBILE')) define('CAKE_MOBILE', 'm');// 携帯用出力文字コード
if(!defined('CAKE_MOBILE_ENC')) define('CAKE_MOBILE_ENC', 'SJIS-win');// 携帯以外からのアクセスを許可する
if(!defined('CAKE_MOBILE_ALLOW')) define('CAKE_MOBILE_ALLOW', TRUE);// 携帯以外からのアクセス時の遷移先URL(ロケーション遷移)
if(!defined('CAKE_MOBILE_NG_URL')) define('CAKE_MOBILE_NG_URL', '/');
/**
* 携帯判別用IPアドレスリスト
*/
global $MOBILE_IP;
$MOBILE_IP = array(
// docomo
'210.153.84.0/24',
'210.136.161.0/24',// softbank
'202.179.204.0/24',
'202.253.96.248/29',
:
);
ルーティング設定
/app/config/routes.php に/m/であればWebサービス「Mobile」であることを記述。
(/m/は上記mobile.iniのCAKE_MOBILE定数に記述)
// for Mobile
$Route->connect('/'. CAKE_MOBILE .'/:controller/:action/*', array('webservices' => 'Mobile'));
投稿日:2008/06/05
前後の記事
- SimpleTestでヘッダに情報を追加する方法
- symfony1.1へアップグレードは簡単?
- CakePHPで携帯版のシステムを構築する
- CakePHPでmod_rewriteが使えない場合
- PHP5限定 CakePHPのView内の関数処理を綺麗に記述する(邪道でしょうか?)
