3) コントローラの作成
次はコントローラを作成します。
先ほど作ったルートを見ると “AcmeHelloBundle:Hello:index” となっています。
これはつまり、Acme名前空間にある、HelloBundleというバンドルの
HelloControllerというコントローラのindexAction()というメソッドを
呼ぶことを示しています。
なので、ここでは、HelloBundleコントローラを作成し、そこに”indexAction”という
メソッドを持た、”/hello/xxx”でアクセスしてきたら、「Hello xxx!」と表示する
処理をするようにします。
1 2 3 4 5 6 7 8 9 10 11 12 |
// src/Acme/HelloBundle/Controller/HelloController.php namespace Acme\HelloBundle\Controller; use Symfony\Component\HttpFoundation\Response; class HelloController { public function indexAction($name) { return new Response('Hello '.$name.'!'); } } |
こんな感じです。
“/hello/xxx/” の “xxx” の部分は、indexActionの引数として受け取れます。
ルートの設定で “pattern: /hello/{name}” としているので、メソッドの
引数に “$name” と記載するだけで受け取ることができます。
コントローラは基本、Responseオブジェクトを返して終わります。
ここでは、Responseクラスのコンストラクタ引数に、表示させるHTML文を
そのまま入れて、Responseオブジェクトを作成しそのまま返しています。
これで完成です!
1 |
http://xxxxxxxx/app_dev.php/hello/Taro |
たとえば、ブラウザから上記のようにアクセスすれば、
以下のような出力になります。
1 |
Hello Taro! |