Webアプリケーション情報のスクラップ集

お知らせ

Blogサイトを公開しました

2008-10-20

新着記事

PHP関連

symfony1.2でaskeet(サンプルのQ&Aサイト)を再構築する

DB関連

MySQLでのランキング計算

アプリケーションサンプル

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

前後の記事


コメント

▲ページの先頭へ