ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)

2007年~2011年ごろまで はてなダイアリー に書いてた記事を引っ越してきました。

CakePHP、自分の肌に合わない。

単に自分の感想を述べてるだけなので、CakePHP専用のカテゴリは作りません。以下は生産性0の私的感傷エントリ。


CakePHP今使用&勉強中なんだけど、哲学というか開発者の「楽」の中身の思想的な部分が自分好みじゃない。

Controllerの概念がModelに癒着しすぎ。 $usesがデフォルトだとfalseになってるんだけど(bakeした場合を除く)、気を利かせたのか知らないがそれだと "Missing Model" とかで怒られる。

好みじゃねぇ・・・。

DBを使う使わないはあくまでも開発者の明示的な意志、それに基づく明示的なデータソース呼び出しなどに基づくべきであって、そこをフレームワーク側で「前提」とするのは越権行為。

というのが自分の思想。その点symfonyはぎりぎりセーフで、CakePHPのControllerと同じレベルに位置するsymfonyのmodelという概念ではDB接続は元々関知しない。というか取り扱わない。symfonyはProperlとCreoleを調整してO/Rマッパーを使いやすくしてくれているのだけれど、あくまでも開発者が必要となった時点で、Peerクラスという概念を使うことで明示的にデータベース操作を開始する。ので、別にDBを使わない(・・・例えば独自のファイルストアをするappだったりとか)場合でも、「DBを使わない」というコードを必要としない。またそのための調査とかも不要。単にsymfonyコマンドでdb関連のを使わない・呼ばないだけで良いのだから。

CakePHPは「DBを使わない為にはどうすればよいのか」というのから出発する・・・のは良いのだけれど、それでデフォルトが"Missing Model"になって、あげくそれを解決する為にGoogle先生に聞いたりソースコードを探ったりしなければならない。

まぁ、一回やれば身に付くタイプのノウハウではあるのだけれど。

自分自身、オレオレフレームワークの作り手として{痛い|イタイ}目を見てきてて、その上で、CakePHPは肌に合わない。というか、今やってる開発内容で言えば、肌に合わない。うーん・・・。

symfonyが自分でも驚くほどすんなり自分の中に入ってきたのに対して、CakePHPのこの反発感はいったいなんなのだろうか。