嗚呼ケイク、とうとうお別れネ。
アナタとワタシは住む世界が違うの。
もうアナタのモトへは戻りません。
いままで本当にありがとう、愛しのケイク。。
は、要件定義とプロトタイピングが済んで、既に、モデル12個、コントロール4つ、画面30枚を作りこんでいます。これから1ヶ月くらいで仕上げにかかりますが、CakePHPがどうしても肌に合わないことが気になってきた。
思い切って、一昨日に存在を知った Akelos への移行を決めました。
やるなら今だろう!と。
CakePHPはRailsインスパイアードであるのに対して、AkelosはPHPポート・オブ・Rails。完コピを目指してるようです。
1日がかりで、これまで作ったアプリをAkelosに移植しました。
今のところ特に問題なく、すんなり動いています。ドキュメントは、APIリファレンス(phpdoc)が充実してる。
私にとっては、CakePHPに足りないと感じてたコトは全部、
Akelosが提示してくれました。(Akelosは完璧ではナイが十分。)
なによりもソースがメチャきれいになりましたよ。
ロジックやビューのキーパンチ量は、圧倒的に違うんじゃないかな?
とりわけ、配列ジゴクに苦しんでいる人なら、Akelosはお奨めです。
以下、サヨナラの理由。
この$dataが、Postのインスタンスではなくて、ただの配列になる点。
データとメソッドが分離してしまっているので、OOPに慣れた人だと、非常に戸惑うところです。$this->Postが、データを持たないくせに、中途半端にステートフルだ。という指摘もしました。
データ指向なユーザーにとっては、OOP的なうるさいこだわりがないので、合うのかもしれません。
正しいかどうかというよりも、思考回路に合うかどうかだと思います。
Ruby on Rails&オブジェクト指向に恋焦れてる人には、Akelos。
「そんなもんカンケーねー!オレはPHPマスターだ!」の人には、CakePHPの方が良いと思います。
関連するモデルのデータは、望む望まずにかかわらず、全てEAGERロードです。JOINなSQLがバンバン走ります。
それは良しとしても、その副産物が大変。
だとすると、
としただけで、
という具合に、配列地獄に陥る。めちゃ便利なところもあります。
とすると、3階層の関連を辿って、ごっそりとデータを吸い上げてくれます。面白いほどグォッソリと。他ではなかなか見られない機能です。
$order['Order']なんて書いてる時点で、DRYじゃないよね?
複雑な命名規則や、冗長な配列構造、さらには、テストケースの書きかたなど、どれをとっても、全然DRYじゃない。
何度も何度も同じ文字列をキーパンチしなければなりません。モデルの名称なんて、開発中に変えたらドえらいことになります。
CakePHPいじりはじめてから、異様に腕が重くなりました。
大真面目に、腱鞘炎で困ってる。本当の話です。
な気がする。
APIリファレンスが、さほど良くなかった。
・・というかインターフェースがよくない。
findAllの引数を見ても、いったいnullが何個並ぶんだっつーのw。
それぞれの引数型が mixed型 (いろんな型) なので、いったい何を渡せば正しく動くのかわかりません。
サンプルも書いてない。→トライ&エラーか、ソース読むしかない。
ここに浪費する時間がハンパじゃないのですよ。
唯一のサンプルが、ウソっこMVCという点も、とてもじゃないけど信用できません。AjaxHelperでは、一緒にすべきではないパラメータを一緒の配列で渡してる。という指摘もしました。
・・これらの内容は、いくら待っても改善されないだろう。
指向・思考・嗜好が違うから。バージョンが上がっても、変わらないだろうと思ったから、あきらめた。繰り返すけど、CakePHPが悪いフレームワークだ、と言っているわけではナイ。恋愛でも、好みがあるのと同じこと。
・・・ワタシはオトナが好き・・・
Akelosについてのエントリは、次回。