2011-06-26 11 views
3

データベースに保存されたページを解決する機能をsymfony 2.0プロジェクトに追加する予定です。しかし、私はこの機能を利用するのに最適な時期がいつあるのか不思議です。代替ルーティング方法を提供する最良の方法

Symfony 2ライフサイクルによれば、ルータはコントローラ(呼び出し可能)を生成するよう求められます。どのような方法やどこに私が効果的に選択し、異なる構成オプションを持つ別のコントローラを生成することができる自分のルータを作成することができますか?

理想的には、このルーティングメカニズムが実現できないルートを渡すことを許可したいと思います。そうすれば、symfonyは404の動作などのようなもので正常に動作し続けることができます。

+0

私はそれの巨大なファンではないが、ここに1つのアプローチがある:http://www.mikeefranklin.co.uk/2011/06/11/symfony-2-the-routing/ –

答えて

4

はい。 Symfony\Component\Routing\RouterInterfaceを実装するクラスを実装することができます。具体的な実装例はSymfony\Bundle\FrameworkBundle\Routingのクラスを参照してください。

カスタムルーターのドキュメントがたくさんあり、それは(おそらく)よく知られていないコードベースですが、私が見てきたSymfony2のコードはすべて次のようになっています。多かれ少なかれ同じパターンであり、カスタムパーツをすばやくオーバーライド/実装するためには、どこを見て何をする必要があるかを知ることが容易になります。コードはかなりクリーンで、これは大きなプラスです。

が具体的にはという具合にはわかりませんが、詳細を知っている誰かが展開できるかもしれません。しかし、私はそれが不可能ではないことを知っています。ほとんどの場合、インターフェイス要件を満たすクラスを実装すれば、Symfony\Component\Whateverに表示されているように、必要なものを実装することができます。

関連する問題