2008年05月20日

CodeIgniter

最近 CodeIgniter日本 CodeIgniter ユーザ会) を触ってみている。
PHP 向けの MVC モデルに基づいたフレームワークで、ライトウェイトなところが特徴。
以前ちょっと Mojavi などは触ったことがあったが、色々あった煩わしさを感じず好感触だった。

セッションが独自仕様だったり、GETリクエストを利用しない基本構造だったりと色々あり、
国内の場合クッキーを用いることが出来ない携帯などの環境に対しては若干相性が悪い。
それを改善するためのコードも日本 CodeIgniter ユーザ会のサイトに掲載されていたので参考になった。

ただ若干気になる部分がちらほらあったのでそういう部分の修正をしたりした。

・IP の一致をチェックする部分が無条件で取り除かれている

携帯利用がメインのコンテンツではない場合、IP が一致する環境は少なくないと思うので、
無条件に拒否するのではなく、クッキーから読み出せた場合は無視しないようにした方がよさそう。
(この機能を使わないならば config.php から無効にすべきだと思う)
なのでこの部分を特定の状況だけ無視するように変更した。

・permitted_uri_chars に = を追加している

そもそもGETリクエストになるわけではないので無理に = を使う必要はなくて
アンダースコアやハイフンを使えば追加しなくてもいいと思った。
追加しなくて済むように変更してみた。

・クッキーに対応した環境でも一度セッション ID が見えてしまう

継続的にメンテナンスする気があれば、UA や IP から携帯を判定して、
該当した場合だけ URL にセッション ID を含めるようにした方が外見が多少綺麗かも知れない。

・url_suffix でセッション ID を付加している

この場合 URL ヘルパなどで site_url() を呼び出す際に引数を省略するとセッション ID が付加されない。
Config.php で定義されている site_url() の実装をオーバーライドすべきだと思うけど、
元々 url_suffix に .html などを指定する本来の用途では削ぎ落とされるべき箇所なので、
セッションIDが付加された場合にのみ付加するような処理にした方がよさげ。
(そうしないと somedomain.com/.html みたいな感じになっちゃうと思う。まあ somedomain.com/SESSID=〜〜.html も決して美しいとは言えないけど……)
これに関連して、URI ルーティングのパターンも増やさなければいけない。
でもそこまでやるなら素直に GET リクエストで実装するのもアリかな、と思った。

どうしようかなあ。
posted by oov at 05:15| Comment(0) | TrackBack(0) | プログラム | このブログの読者になる | 更新情報をチェックする
この記事へのコメント

この記事へのトラックバック