Phalcon 1.2.4 (PHP Framwork)::コントローラー
Phalcon Framework
コントローラー
http://docs.phalconphp.com/en/latest/reference/controllers.html
リクエスト
GET基本
http://localhost/blog/posts/show/2012/the-post-title/
※GETクエリには、パラメータの値だけで、変数名は不要。
以下のようにActionメソッド関数に引数を設定することで、取得できる。
URLに設定されているパラメータ値と、メソッドの引数は順序的1対1の関係にある。
<?php class PostsController extends \Phalcon\Mvc\Controller { public function indexAction() { } public function showAction($year, $postTitle) { /* $year に 2012 $postTitle に the-post-title がアサインされる */ } }
GETパラメータにデフォルト値を設定する場合は、以下のようにする。
public function showAction($year=2012, $postTitle='some default title') { }
もし、URL形式を以下のようにしたい場合は、
http://localhost/blog/posts/show/?year=2012&title=the-post-title
以下のようにパラメータ値を取得できる。
public function showAction() { $year = $this->request->getQuery('year'); $title = $this->request->getQuery('title'); }
GET以外のPOSTなども上記と同じような理屈で対応できる。
リクエストに関するクラスは、 Phalcon\Http\Request
レスポンス
レスポンスに関するクラスは、 Phalcon\Http\Response
フォワード
$this->dispatcher->forward(array( "controller" => "users", "action" => "signin" ));
初期化メソッド
※ “__construct”は非推奨です。
※beforeExecuteRouteイベントが成功した場合のみ実行されます。
public function initialize() { }
登録サービスへのアクセス
Phalcon\Mvc\Controllerを継承したコントローラーであれば、
以下のようにしてDIにアクセスできます。
$this->di; or $this->getDI();
セッションデータ
セッションに関するクラスは、 Phalcon\Session\Bag
以下のようにして、値のセット、取得ができます。
<?php class UserController extends Phalcon\Mvc\Controller { public function indexAction() { $this->persistent->name = "Michael"; } public function welcomeAction() { echo "Welcome, ", $this->persistent->name; } }