前回の終わりに書いた予告では、「複数のアクションコントローラを使用する例」をやるつもりだったのですが、よく考えてみたらこれって特に技術的に注意点があるわけじゃないので今回は見送ることにしました。その代わり、でもないんですが、今回はフォームを触ってみることにします。今回はまた新しいアプリケーションということにします。名前は「zf2」にしておきましょう。お決まりのように、まずは以下のフォルダ構成を作ってください。前回のものをそのまま流用してください。ISAPI-Rewriteの環境の方は、httpd.iniにzf2向けの設定を追加することを忘れないでください。以下のようになります。[I]まずは、以下のようなきわめてシンプルな形で作成してみます。dumpAction)ということで、application以下には「IndexController.php」と「index.phtml」「dump.phtml」を作成することになります。入力フォームの作成さっそくIndexController.phpを作成してみましょう。indexActionのみの実装です。{}}IndexController.php...はい、indexActionでは特にすることがありません(^^;対応するindex.phtmlです。これまたなんのひねりもありませんね。</body></html>index.phtmlなんてことはない、dumpActionに向けてnameとsexというフィールドをpostするだけです。フォームの入力内容を受け取るあたりまえなのですが、indexActionから送信されたを受け取る必要があります。Frameworkで用意されている機能を使うようにしましょう。Framework(というよりZend_Controllerか)でリクエスト情報にアクセスするにはZend_Controller_Requestを使用します。Zend_Controller_Requestの細かい説明は後回しにして、とりあえず入力内容を受け取って表示するだけのdumbActionを実装してみましょう。以下のような感じです。{$this->view->assign('postData',$this->getRequest()->getParams());}}「dumpAction」を追加したIndexController.phpそして、対応するdump.phtmlは以下のような感じです。</body></html>dump.phtml実行結果と解説ここまでのコードを実行してみましょう。「http://<host名>/zf2/」にアクセスすると、以下のようなフォームが表示されます。送信index/index名前に「dara-j」、性別を「男性」にして送信すると、index/dumpで以下のように表示されます。"1"}戻るindex/dumpさて、dumpActionとdump.phtmlの解説です。dumpAction内の「$this->getRequest()->getParams()」ですが、「$this->getRequest()」でリクエストオブジェクトであるZend_Controller_Request_Httpのインスタンスを取得します。getApplicationUrlに渡している部分と同じですね。取得したリクエストオブジェクトの「getParams()」メソッドを実行した結果を'postData'としてviewにassignしています。Zend_Controller_RequestのgetParamsメソッドは、getパラメータやpostパラメータなどの、クライアントから要求されたパラメータすべてを格納した連想配列を取得するメソッドです。実際にはsetParam/setParamsによって、コントローラ処理中に任意に設定されたパラメータも含まれますが、ここではそういった使い方には触れていません)そして、dump.phtmlでは、'postData'としてassignされた連想配列をダンプしています。getParams()の中身とその他のアクセスメソッド出力された連想配列をみて「あれ?」と思いませんでしたか?キー「controller」が「index」、「action」が「dump」...そうです。どのコントローラのどのアクションが指定されたか、の情報もリクエストオブジェクトに含まれるのです。ここではgetParams()でいっさいがっさいを取得しましたが、リクエストオブジェクトに対してgetControllerName()やgetActionName()といったメソッドでこれらの情報を取得することもできます。リクエストオブジェクトZend_Controller_Request_Httpの主なアクセスメソッドには以下のようなものがあります。キー$keyに関連付けられたパラメータ値を取得する。POSTパラメータを取得する。$keyを指定した場合は$keyに対応する値のみ、省略した場合は$_POSTそのものが返る。$defaultはgetParam()と同じ。getPost()のGET版その他のメソッドやメンバはAPIリファレンスで調べてみてください。今回のまとめ今回のポイントは以下のとおりです。本当はこのあとに「受け取った入力値をもう一度フォームにまわす」ようなサンプルを載せるつもりだったのですが、思ったより記事が長くなったので今回はここまでにしました。単純に受け取った値をフォームに当てはめて表示させるだけなら今回の記事から簡単に作れるでしょうから、皆さん試してみてください。次回は今回のフォーム入力をベースに、他のアクションへ処理を委譲する方法とマジックメソッド、関連して(ようやく)基本的な例外処理方法について書こうと考えていますのでお楽しみに。吊ブックマークレットtumblrのキーボードショートカットが便利になっとる。Chrome編dataスキームの画像をブロックしてみるローカルストレージを確認したり消したりするブックマークレットそうそう、いまさらTwitter始めました。(9)このブログについてJavaScriptとかC#とかPHPとか。