質問: 【Symfony2】RoutingはAnnotationで記述すると管理が楽になる! | ゆとりっち このページを参考に、アノテーションを使ったルーティングの記述についてはある程度理解できました。 しかしこの機能をどのように使えば、何のメリットがあるかがわかりません。 例えば会員登録のようなコントローラを書くとして、この方法でルーティングを記述する利点はどこにあるのでしょうか?
回答: app/config/routing.yml かアノテーションをどちらを選ぶかは、好みや慣れの問題だと思います。 それぞれのメリットは前者が俯瞰的に把握しやすく、後者はアクションとの対応関係が一目で把握しやすいことです。 アノテーションの表記に対して違和感や拒絶感が強く、思考停止して、作業が進まないというのであれば、無理をして使う必要はないと思います。 ルートの一覧は app/console から調べることができます。 ``` php app/console debug:router ``` 「会員登録」ということばの意味が Security コンポーネントによるユーザー認証と認可に該当するのであれば、ルーティング (@Route) とは異なる別のアノテーションが用意されています (@Security)。ユーザー認証と認可に関する設定ファイルは app/config/security.yml です。 次の index アクションでは ROLE_ADMIN のロールをもったユーザーしかアクセスできないようになっています。 ``` use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security; /** * @Route("/hello/{firstName}/{lastName}", name="homepage_hello") * @Method({"GET", "POST"}) * @Security("has_role('ROLE_ADMIN')") */ public function indexAction($firstName, $lastName) { } ``` Security コンポーネントのマニュアルを読んでも、すぐに手が動かないかもしれませんので、些細なことでもわからないことがあったら、一人で悩まずに気軽に質問するとよいでしょう。