Symfony2はバンドルという基幹システムみたいなもので様々なページを作成しますが、いろんなバンドルを作っているとどれぐらいのアクセス可能なページがあるのかわからなくなってきます。通常のHTMLだと作ったファイルとディレクトリを確認すれば、すなわちそれがアクセスURLとなるわけですが、Symfony2はそうはいきません。ルーティングでもってその都度ページごと生成してhttpで返すということをやっているので実質的なHTMLファイルやPHPファイルなんかはないのです。
なので、作成したページ(作成したリーティング?)を確認するにはどうしたらよいかというと、開発モードのプロファイラーで作成しているバンドルを確認することになります。
http://example.com/symfony2/web/app_dev.php/
開発モードにアクセスすると上下部に小さなコントローラーみたいなものが出てくるので、図の赤枠の部分をクリックします。
クリックすると一覧が表示されてその1番下に「Active bundles」という項目あります。そこが現在設定されているバンドルすべてになります。
さてバンドルではそれぞれのページをルーティングによって生成しています。このルーティングの設定は、
src/[NAMESPACE]/[BUNDLE NAME]/Resources/config/routing.yml
なので、grepしてやるとそのパスが分かります。Symfony2.2以降ではpathも使えるので、
find ./src -name ‘routing.yml’ | xargs grep -n ‘path:’
find ./src -name ‘routing.yml’ | xargs grep -n ‘pattern:’
find ./src -name ‘routing.yml’ | xargs grep -n ‘prefix:’
というので全項目を出力できます。
./src/Blog/BlogBundle/Resources/config/routing.yml:2: pattern: /hello/{name}
これは、URIがhttp://www.example.com/で、symfony2/webがSymfonyのコンテンツだとすると、
- [dev] http://www.example.com/symfony2/web/app_dev.php/hello/{name}
- [prod] http://www.example.com/symfony2/web/app.php/hello/{name}