symfonyで携帯開発、第1弾。
機種の判定をテンプレートとプログラムでできるようにする
を実現する。
Perlでは有名なcpanモジュール、HTTP::MobileAgent。PHPでも同じようなモジュール、 PEAR::Net_UserAgent_Mobileがあるようだ。
さっそくインストール。pearを使って、簡単にインストールできる。
pear install -f -o net_userAgent_mobile
さてsymfonyで、どのように利用するのがいいのか。その場でrequire_onceしてしまっても問題ないが、symfonyの場合、フィルターを使えば、共通なインターフェースで利用できそうなので、フィルターを作ってみる。
app/app_dir/lib/myMobileFilter.class.php
フィルターのご作法にのっとり、とりあえず書いてみた。14行目で"agent"という属性を予約して、オブジェクトをぶち込んでいる。
8~11行目のエラーの取り扱いは、なぜかdevモードでNet_UserAgent_Mobileをrequire_onceすると、Strict Standards:~というwarningが気になったので、入れている。
filterを登録するには下記のようにfilters.ymlを編集する。
app/app_dir/config/filters.yml
そして利用する場合、actionクラス内なら
view内なら
こんな感じで呼び出し可能。
sfRequestに詰め込むのが、ちょっと気持ち悪い気もするが、これでいいのか、もう少し検証が必要。
なお、Net_UserAgent_Mobileは、結構更新されるようなので、Pearの更新RSSフィードを取得しておけば、運用面も安心だ。
(1)
(0)
(0)
(0)
Total: 1
トライアウト ラボラトリ! » Blog Archive » » Symfonyでモバイルの機種判別をする
5月 19th, 2008 at 23:59:41
[...] ここのサイトを参考にLet’s Try。 [...]