Kenichi Ando
neo.k****@gmail*****
2008年 6月 8日 (日) 10:01:10 JST
安藤です。 2008/06/08 9:18 decoy <youtu****@gmail*****>: > decoyです。 > >> オートロードは、システム初期化時にライブラリなどをロードするという >> 機能ですが、システム初期化時に、どんな引数を渡すのでしょうか? > > あ、↑これを先に言ったほうが手っ取り早かったですね。 > ユーザライブラリにPEARのNet_UserAgent_Mobileに > ちょっとだけ手を加えたMy_UserAgent_Mobileというものがあるのですが > そのクラスのコンストラクタにUser-Agentを渡す、といったものです。 Net_UserAgent_Mobileはクライアントの指定で使わざるを得ないのでしょうか? 一応、CIの日本語版パッチでは、日本のモバイルを配慮して、UserAgentを追加していますが。 そのままでも、PCとモバイルの表示切替などが行えるような状態ではあります。 > > User-Agentを渡したいなら$_SERVER['HTTP_USER_AGENT']を > 直接書けばいいと思われるかもしれませんが > テストする際等に毎回、UAを偽装してアクセスする手間を省く為に > config辺りにUAを直接書いて、そのconfigにUAの記載がある場合は > そのキャリアとして扱うといったような処理を想定していました。 > > UAを偽装してアクセスするよりconfig辺りに書く(ソースに直接書く)ほうが手間なのでは?と感じられたかもしれませんが > 一人で開発して一人でテストするのであればわざわざ上記のような事をする必要はないのですが > テストする人がお偉いさんだったりする場合があるので「偽装してくれ」とはなかなか言いづらい状況です。 > > そこで質問です。 > 例えばCodeIgniterとNet_UserAgent_Mobileを連携する場合、 > 皆さんはどのようにして実装するのが妥当だと思われますか? 基本的な話ですが、PEARなどのライブラリとCIが疎な関係に保つことを 重視した設計がいいとされます。必要以上にリソースを占有しないなどの 設計志向ですか。 結論から書くと、PEARのライブラリも疎に扱った方がよいかと思います。 > > 使用イメージとしては毎回、コントローラの中で$this->load->library('Net_UserAgent_Mobile');なんかを書かずに > $this->net_useragent_mobile->getCarrierLongName();等を書けばその値が取得でき、 > > プログラム上のどこかにUAを直接書けばクライアントのUAが何であれ、プログラム上で書いたUAとして扱われる、 > というような感じにしたいと考えております。 基本的に、CIのUserAgentで判断し、クライアントに見てもらうときだけ、 コメントアウトなどしてバイパスすればいいのではないでしょうか? 見当違いのこと答えていたらごめんなさい。 //安藤 > > 以上、宜しくお願い致します。 > > // decoy > > _______________________________________________ > Codeigniter-users mailing list > Codei****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users >