Symfony 2.7入門 その2 画面を追加してみる

今回は画面を追加してみましょう。

前回編集したsrc/AppBundle/Controller/DefaultController.phpに下記のようにメソッドを追加します。

+   /**
+    * @Route("/good_morning", name="morning")
+    */
+   public function morningAction()
+   {
+       return new Response('おはよう!');
+   }

コメント部の@Route(...)に着目してください。 Symfonyでは、コメントの@部分によってアプリケーションの挙動を変更することができます。 これをアノテーションといいます。

@Routeを定義すると、URLとアクションを紐づけることができます。この紐づけをルーティングといます。 この場合、@Routeの第1引数 “/good_morning” がURLを表します。第2引数name=“morning"はそのルーティングの名前で、値は自分がわかりやすいなら何でもかまいません。

簡単に言うと、/good_morningというURLにアクセスするとmorningActionメソッドが呼ばれるということです。

実際にサーバを起動して挙動を確認してみましょう。

サーバを起動

$ php app/console server:run

URLにアクセス

http://localhost:8000/good_morning

これで画面に「おはよう」と表示されたらOKです。

画面を増やしたいときにはこのようにアクションメソッドをどんどん追加していけばよいです。

ルーティング一欄を確認する

さてアクションを追加すると、いまプロジェクト内にどんなルーティングがあるのか一欄したくなることがあるかもしれません。

(いまはルーティングが2個しかないのでそんな気持ちにはならないですが、一欄を見たくなったことにしてくださいw)

下記コマンドでルーティング一欄を見ることができます。

$ php app/console debug:route
[router] Current routes
Name                     Method Scheme Host Path
_wdt                     ANY    ANY    ANY  /_wdt/{token}
_profiler_home           ANY    ANY    ANY  /_profiler/
_profiler_search         ANY    ANY    ANY  /_profiler/search
_profiler_search_bar     ANY    ANY    ANY  /_profiler/search_bar
_profiler_purge          ANY    ANY    ANY  /_profiler/purge
_profiler_info           ANY    ANY    ANY  /_profiler/info/{about}
_profiler_phpinfo        ANY    ANY    ANY  /_profiler/phpinfo
_profiler_search_results ANY    ANY    ANY  /_profiler/{token}/search/results
_profiler                ANY    ANY    ANY  /_profiler/{token}
_profiler_router         ANY    ANY    ANY  /_profiler/{token}/router
_profiler_exception      ANY    ANY    ANY  /_profiler/{token}/exception
_profiler_exception_css  ANY    ANY    ANY  /_profiler/{token}/exception.css
_configurator_home       ANY    ANY    ANY  /_configurator/
_configurator_step       ANY    ANY    ANY  /_configurator/step/{index}
_configurator_final      ANY    ANY    ANY  /_configurator/final
_twig_error_test         ANY    ANY    ANY  /_error/{code}.{_format}
homepage                 ANY    ANY    ANY  /app/example
morning                  ANY    ANY    ANY  /good_morning

左のNameの列をみてください。Nameが_で始まる行は、開発環境のときのみ存在するデバグ用のルーティングです。 一方、homepagemorningDefaultControllerの中で定義されているアクションメソッドです。

Pathと書いてある列がURLを表します。 実際にこのどれかにブラウザでアクセスしてみると画面が現れます。例えば、 http://localhost:8000/_profiler/phpinfo にアクセスするとphpinfo()の画面が表示されます。

他のPathも実際にアクセスしていろいろ見てみるとよいでしょう。

カテゴリ: