h2ospace

PHPフレームワークの「codeIgniter」がスゴすぎる

2011-02-03 19:00:40

新しいことを勉強して、久々に心底感動しました。

Facebookである方が「もうすぐCodeIgniterカンファレンスが開催される」といったつぶやきをしているのを拝見し、この時初めてその存在を知りました。。
PHPのフレームワークで、習得が早く、動作速度が爆速だということだったので、ちょっと触ってみるかとダウンロードしてドキュメントを読みながら Hello World!を作ってみる。すると・・・

こ・・これはすごい・・


なにがすごいって、これまで私は「CakePHP」を超愛用していました。CakePHPは、もちろんそのほとんどがすごくいいのですが、若干だけ不満があったのです。しかし、codeIgniterではCakePHPの好きなところはそのままに、不満が全部吹っ飛んでいたのです。

では、その全貌をご覧入れましょう。

モデル・ビューが不要

CakePHPもcodeIgniterも、MVCを採用したPHPフレームワークなので「モデル・ビュー・コントローラー」をセットで作成します。
これ自体は非常に素晴らしい思想なのですが、ちょっとしたプログラムを作りたいときは、これが若干面倒くさい。しかし、CakePHPはこのあたりのルールが非常に厳格なので、基本的にはモデルもビューも作らないと怒られます。

もちろん、「モデルは使いません」「ビューを作らなくてもエラーを出さないで」と設定することは出来るのですが、基本的に怒られるのでちょっと凹む。しかし、codeIgniterは割りきってます。コントローラーさえあれば、なにも言わずに動いてくれます。

データベースも不要

CakePHPはデータベースも基本的には必須です。セットアップするときにデータベースの設定情報を記述しないと、先頭のページでエラーが出ます。
これももちろん「使いません」と宣言すれば良いのですが、codeIgniterは基本は使わないので、なんとも言いません。

記述が簡素

CakePHPは、例えば「Blog」というコントローラーを作りたければ、「BlogController」という名前にするとか、モデルになると「Blogs」と複数形になるとか名前もかなり厳しく定義されています。これを体に覚え込ませなければなりません。しかし、codeIgniterのコントローラーの宣言は、「class Blog」。簡単です。
さらに、「class Blog extends CI_Controller」(CIは CodeIgniterの略と思われる)と記述するだけなので、一瞬で覚えられます。簡単。

結論

その後、カレンダーを作ったり、ファイルアップロードを作ったり、メール送信を作ったりしてみると、またまた感動の嵐だったわけですが、そのあたりはまた後日にサンプルプログラムなども含めて紹介していきましょう。とにかく、codeIgniterは丁度JavaScriptで「jQuery」を触ったときのような、感動を味わうことができました。

ただし、これをもって「CakePHPより codeIgniterの方が優れている。今すぐ乗り換えよう」とはなりません。そもそもの思想の違いだと思います。

私が、CakePHPを「うざったい」と思うのは、反抗期の子供のようなもので、あれこれと世話を焼いてくれるCakePHPに若干窮屈さを感じているのだと思います。
codeIgniterは、そこを「自由にやりなさい」と放任してくれるので、楽な気がするのですが、おそらく、はまり始めると底なし沼になる恐れがあります。そうなれば、CakePHPのおせっかいさはすごく助かることになるでしょう。

また、プラグインの豊富さなどもCakePHPの魅力としては外せません。なかなか悩ましい選択ですが、こうしていろいろ選べるのも楽しみの一つかなと思い、どちらも愛用していこうと思います。

また、どちらの記事も今後書いていきます。

※このエントリは ブロガーにより投稿されたものです。朝日インタラクティブ および ZDNet Japan編集部の見解・意向を示すものではありません。
  • 新着記事
  • 特集
  • ブログ