PHPらしさ
の一つは、page controllerだと思っています。数ページから数十ページ程度の小規模なサイトを構築するには、RailsよりもPHPの方が便利かもしれません。実際、RailsのサイトもPHPを使ってますし。
それには、ページ単位でPHPファイルを追加すれば動く、ごく軽いpage controllerのフレームワークが便利そうです。次期Mapleがそういう風に使えるようになるといいなあ、と思います(って、よくよく考えればMapleについて最初にkunitさんにした要望がこれだったんだよな……)。
あと、ActiveGatewayはそんなにあせって正式版まで持っていかなくてもいいような。肝心なのはあれこれ試行錯誤をして、ちょっとずつ変えながら、頻繁にリリースすることじゃないかと。
データアクセスについて言うと、PHPではModelオブジェクトとDAOを分けつつ(つまりActive Recordではなく)、それぞれにレイヤースーパータイプがあってもいいんじゃないかと思っています。つまり、
class Foo extends BaseModel {
// ...
}
class FooDAO extends BaseDAO {
// ...
}
みたいな感じでもいいかも、というか。で、ActiveGatewayがBaseDAOっぽく使えればいいのかな、と思っています。
これも、PHP(特にPHP4)はリフレクションが弱いので、Rails風のActiveRecordを実装するのは大変だし、かといっていちいち明示的に書くにしても、DAOとModelを一つのクラスにしてしまうとごちゃごちゃするので、これらを二つに分けつつ、それぞれのスーパークラスをBaseDAOとBaseModelに決め打ちにすることで扱いやすくできないかな、と。まだまだ妄想のレベルですが。