Router仕様を逆に考えてみるテスト

ZendFrameworkでは、リクエストオブジェクトにはリクエストが格納されており、これの一部をルーターに投入することで、ディスパッチすべき情報をリクエストオブジェクトに格納させてディスパッチする。
逆に考えてみる。ルーターおよびルートは単なるツールであって、そのツールをリクエストオブジェクトに注入したらどうか。
単純なケースではこれはほとんど等価で、リクエストオブジェクトに投入されるツールの分だけリクエストオブジェクトは冗長になる。一見すると無駄なようだけれども、多様なリクエストに対応する場合、ルーター、およびルート実装でその多様さを解釈しなければならなくなる。たとえば、現在のルーターはZend_Controller_Request_Httpもしくはそれに準拠していないと動作しない。

リクエストにルーターを注入する形にすると何がよいか。

ルーターやルートは単なる関数となるので、リクエスト側の仕様が自由になる。また、疑似リクエストを用いた疑似ルーティングを作りやすくなる。

アッセンブルは

URLを育成するアッセンブルは逆に、アプリケーション側に注入される。ルーターは可逆的な仕様を持った関数集合でありさえすればいいように思う。

想定のみで

とりあえず、この辺の妄想は想定のみしておく。