2007年11月10日

Cheetan->CakePHP->CodeIgniter

前回はPHPのフレームワークが乱立しすぎていて、どれに絞ったらよいか迷いながら、適当にチュートリアル(のコピペ)とかしつつ、結局「ちいたん」という軽量のフレームワークに辿りついたところまで書きました。

ただこの時点では(まあ今もそうですが)フレームワークの良し悪しを判断することなどできず、単にチュートリアルが動いたっていうレベルなんですが…。でも一応動いたりするとその後の学習意欲が全然違うわけで、とりあえずちいたんをごにょごにょいじったりしてみました。

CakePHPも今度は多少真面目にチュートリアルに取り組み、Bakeで自動生成したりとかアクティブレコードでHABTM関連のテーブルを操作?してみたりとか。CodeIgniterもビデオチュートリアルを見ながら、ちゃんと一時停止して全部コード書いて〜みたいなことをやってみました。

んで、そうこうするうちに要するに基本がわかってない、というかそもそもオブジェクト指向だとかMVCとかいう以前に、自分が何をやりたいのかを見失ってることに気づきました(遅い)。

LIMITを使ったページングを実装したい、というのはこれまでで書いてきたことですが、そもそもそれを実装しようにも元のスクリプトがぐちゃぐちゃで、そこをすっきりさせたいがためのフレームワークだったわけです。

ですが当たり前のことですが、フレームワークを使えば自動的にぐちゃぐちゃなコードがすっきりするわけでもなく、一体どこが問題なのか?という部分を考えていくうちに、要するに表示系のコードとデータベースからデータを取得しているような部分のコード、またFORMからの入力を整形?しているような部分のコードなどを分離すればいいのではないか?と気づきました。

というかMVCに基づいたフレームワークで0から構築していけば、まあよっぽどおかしな事をしなければ大抵はそうなるようにできているわけです。そこで逆にフレームワークなどを使わなくても単純に今のコードを切り分けちゃえばいいのではないか?ということに思い至りました。

きっかけは、そんな頃にたまたま目にしたsymfonyのドキュメントがまさに目から鱗というのか「なんだ、こんな単純なことでいいのか」という実感を与えてくれました。

要するに切り分けたい部分のコードを別ファイルにしてincludeっつーかrequireしちゃえ、というあまりにも単純な話なんですが、フレームワークに拘っていたというか、囚われていた時にはなかなか気づかない部分だったわけです。

そういう心境になると不思議なもので見えてなかったものが見えてくるというか、別にちいたんでもCakeでもCodeIgniterでも、またはフレームワークを使用しなくてもなんとなくできそうな気分になってきました。

最終的にCodeIgniterを選択したわけですが、Cakeと比較するとModelを特に作らなくてもよいという部分がポイント高かったなぁと、ちいたんと比較するとドキュメントの充実度とかライブラリやヘルパーの類の多さが決め手だったかなとおもいます。

その他ZendとかPradoとかいろいろありましたが、別にフレームワーク使わなくてもいいや的な目(どんな目だよ)で見ると、CodeIgniterが一番しっくりきた、といったところでしょうか。

そんなわけでようやく次回からCodeIgniterでの構築記になる予定です。
posted by ciallost at 02:26| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

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