伊藤清徳の垂直落下式ムーンサルトプレス伊藤清徳の垂直落下式ムーンサルトプレスPerlとかPHPとかMySQLとか...がんばっても8割だ。Comment先日CodeIgniterが2.0にバージョンアップしたり、はてぶ界隈でhttp://h2o-space.com/blog_ver2/diary/195こちらの記事が話題となっているようですので、CodeIgniterを使い始めて3ヶ月の私がちょっと反応してみます。私がCIを利用しはじめた理由は、コーディング規約がゆるゆるインストールにコマンドがいらない拡張がらくちん比較的広いPHPのバージョンに対応モデルの扱いがゆるいというところでした。モデルのあたりは、前述の話題サイトにも書かれていますね。実際に使い始めて特にいいなと思ったのが、ユーザーガイドのページの使いやすさ・読みやすさです。PHPさえちゃんとできれば、ユーザーガイドのページを見ながら開発をラクに進められます。書籍などはいらないと言ってよいです。学習コストが異常なほど低いです。コントローラーの頭の良さに驚きを隠せないです。値をシステム内で縦断させて、参照/変更がかなり簡単にできます。ローダーと呼ばれる、ライブラリや設定ビューを呼び出す機能も、頭が良いです。非常に簡単に移植できました。CI自身のコアの拡張も分かりやすく、簡単にできます。何が一番驚きって、とにかく高速。ぶっちゃけ、普通のサイト作ったり、モデルパターンの少ないWEBサービスだったら、DBのクエリの速度以外は気にしないでいいレベルです。決済などの問題で、色んな拡張の必要性に迫られるケースが多々あるのですが、そのへんでCIはパワーを発揮してくれます。悪く言えばおせっかい機能満載で、サイトの性質や、サイト作りの方針によっては足かせになります。私のECサイト構築の立場では後者の立場だったのでCIはそのへんを解決してくれました。言え、CIいいところばかりでは有りません。前述の通りモデルやDB周りの実装がゆるゆるで、ぶっちゃけモデルなんかナシでどうにかできちゃいますが、ActiveRecordの機能は有しているものの、Cakeよりは、ずっと「DBを操作している感」のある使い方になると思います。DB操作が多いサイト作りの場合、モデルファイルが大量になるかもしれません。CIを使ううえでPHPerが一番戸惑うのが、セッションでしょうね。CIのセッションは、PHPのセッションは使わず独自実装です。cookieに全てのデータを突っ込むcookieセッションか、DBへデータを保存するDBセッションの2パターンが用意されていますが、やっぱりファイルを使ったセッションもほしいところ。自作でライブラリを作るか、別に配布されているライブラリを利用擦る必要があります。(ただ、前述のとおりライブラリづくりは比較的簡単です。)デフォルトで$_GETを破棄するという豪快な仕様になっているので、そのへんを扱うのを最初戸惑うかもしれません。(設定さえ覚えれば、すぐに慣れますが)私の場合は、$_REQUESTを取り回す自作ライブラリで対応しています。デフォルトで$_GETが使えるように変更されていますとご指摘いただきました。ありがとうございます。あと、これは良いと言う人と悪いという人がいますが、CIのviewは基本的に生PHPです。私の場合は、生PHPは「うーん」な人なので、Smarty拡張しました。(ただし、Smartyも「うーん」ですwwPHPTALにしようかなとか考えています)というわけで、とにかくCIは頭がイイんだぜ!って話になっちゃいましたが、よくないところを吸収するには、それなりのPHPの知識も必要というわけです。以前書いたPHPのフレームワーク選択の記事でも書きましたが、CIは、良くも悪くもちゃんとPHPが使えているということが前提条件であるFWでしょう。伊藤清徳の垂直落下式ムーンサルトプレス。