GoogleAppEngineHackathon報告
GoogleAppEngineのハッカソン参加報告、およびCakePHPonGAE計画進捗状況。
結論から言いますと、無理でした。
CakePHPは表向きはCRUDべったりなのですが、実はその下は非常に抽象化に優れたフレームワークです。それが何であそこまで固定的な状況しか考えていないフロントエンドになってしまっているのかは不思議で仕方ないくらいです。
なので、GoogleAPPEngineに乗せるに当たっては従来のデータベースとの違いを吸収するコードだけ書けばよく、それもSQLをデータストアの動作に変換するpQgというライブラリのおかげで動かすだけでしたら本当に最小限の作業で済むはず、だったのですが。
内部的にCakePHPは可変関数と可変変数を多用しているのですが、これがQuercusのバグに触れているみたいです。
$this->{$component}->{$method}($arg1,$arg2);
CakePHPにはこんな感じのコードがあちこちにあるのですが、どうも階層の深いところでこういうコードを使うとスタックオーバーフローが起きるらしいのです。
そこで、GoogleAppEngine用のフレームワークを新しく作ろうと思います。
LowLevelAPIにアクセスできるようにバグフィックスがされていたので、これを生かしたデータモデルと、シンプルな問題にも、複雑な問題にも対応できる仕組みを考えています。