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;
}
}