Akelosにしました

CakePHPにガマンがならなくなり、あっさりとAkelosに移行。捨てる前に、CakePHPの残念なところ、メモしておきます。


 嗚呼ケイク、とうとうお別れネ。
  アナタとワタシは住む世界が違うの。
   もうアナタのモトへは戻りません。
    いままで本当にありがとう、愛しのケイク。。



現在進行中のプロジェクト

は、要件定義とプロトタイピングが済んで、既に、モデル12個、コントロール4つ、画面30枚を作りこんでいます。これから1ヶ月くらいで仕上げにかかりますが、CakePHPがどうしても肌に合わないことが気になってきた。

思い切って、一昨日に存在を知った Akelos への移行を決めました。
やるなら今だろう!と。

CakePHPはRailsインスパイアードであるのに対して、AkelosはPHPポート・オブ・Rails。完コピを目指してるようです。
1日がかりで、これまで作ったアプリをAkelosに移植しました。
今のところ特に問題なく、すんなり動いています。ドキュメントは、APIリファレンス(phpdoc)が充実してる。

私にとっては、CakePHPに足りないと感じてたコトは全部、
Akelosが提示してくれました。(Akelosは完璧ではナイが十分。)
なによりもソースがメチャきれいになりましたよ。
ロジックやビューのキーパンチ量は、圧倒的に違うんじゃないかな?
とりわけ、配列ジゴクに苦しんでいる人なら、Akelosはお奨めです。

以下、サヨナラの理由。

オブジェクト指向じゃない

  $this->Post->id = 1;
  $data = $this->Post->read();

この$dataが、Postのインスタンスではなくて、ただの配列になる点。

データとメソッドが分離してしまっているので、OOPに慣れた人だと、非常に戸惑うところです。$this->Postが、データを持たないくせに、中途半端にステートフルだ。という指摘もしました。
データ指向なユーザーにとっては、OOP的なうるさいこだわりがないので、合うのかもしれません。

正しいかどうかというよりも、思考回路に合うかどうかだと思います。
Ruby on Rails&オブジェクト指向に恋焦れてる人には、Akelos。
「そんなもんカンケーねー!オレはPHPマスターだ!」の人には、CakePHPの方が良いと思います。

強制EAGERロード→配列地獄

関連するモデルのデータは、望む望まずにかかわらず、全てEAGERロードです。JOINなSQLがバンバン走ります。
それは良しとしても、その副産物が大変。

  Order belongsTo User
  Order hasMany Item

だとすると、

 $order = $this->Order->findById($id);

としただけで、

 $order['Order']['id']
 $order['Order'][ ... ]
 $order['User']['id']
 $order['User'][ ... ]
 $order['Item'] = array

という具合に、配列地獄に陥る。めちゃ便利なところもあります。

 $order = $this->Order->findAll($condition,null,null,null,null,3);

とすると、3階層の関連を辿って、ごっそりとデータを吸い上げてくれます。面白いほどグォッソリと。他ではなかなか見られない機能です。

Do! Repeat Yourself

$order['Order']なんて書いてる時点で、DRYじゃないよね?
複雑な命名規則や、冗長な配列構造、さらには、テストケースの書きかたなど、どれをとっても、全然DRYじゃない。
何度も何度も同じ文字列をキーパンチしなければなりません。モデルの名称なんて、開発中に変えたらドえらいことになります。

CakePHPいじりはじめてから、異様に腕が重くなりました。
大真面目に、腱鞘炎で困ってる。本当の話です。

インターフェースが未熟

な気がする。

APIリファレンスが、さほど良くなかった。
・・というかインターフェースがよくない。
findAllの引数を見ても、いったいnullが何個並ぶんだっつーのw。
それぞれの引数型が mixed型 (いろんな型) なので、いったい何を渡せば正しく動くのかわかりません。
サンプルも書いてない。→トライ&エラーか、ソース読むしかない。
ここに浪費する時間がハンパじゃないのですよ。

唯一のサンプルが、ウソっこMVCという点も、とてもじゃないけど信用できませんAjaxHelperでは、一緒にすべきではないパラメータを一緒の配列で渡してる。という指摘もしました。



・・これらの内容は、いくら待っても改善されないだろう。
指向・思考・嗜好が違うから。バージョンが上がっても、変わらないだろうと思ったから、あきらめた。繰り返すけど、CakePHPが悪いフレームワークだ、と言っているわけではナイ。恋愛でも、好みがあるのと同じこと。


   ・・・ワタシはオトナが好き・・・


Akelosについてのエントリは、次回。


コメント
xibbar
2007/08/14
わっはっは−!
捨てましたかー
xibbar
2007/08/14
akelosのレポートに期待しよう。
でも、今頃乗り換えても間に合うの?
xibbar
2007/08/14
いや、神だから問題ないか。
武田ソフト
2007/08/14
コメントスパムかと思った・・・酔ってんの?
失敗したら戻るだけだし。。と思ってやってみたら、結果、
1日で移行できたわけだから、タイムロスよりも得たものの方が大きいです。ひとつ肩の荷がおりた感じですよ。
xibbar
2007/08/14
酔ってません!。でも、昼からビールってのもいいなぁ。
暑すぎるんだよ。まったく。

移行できたってことはやはり神ですな。
武田ソフト
2007/08/15
暑いっすねー。こちら山形も37度越えです。

コメントしてください
お名前:
入力しなければ「匿名さん」。20字以内。

メール:
入力しても表示しません

URL:
入力すればリンクが貼れます


コメント: