oikynブログ

エンジニアの技術ブログ。主にWEB、iOS、サービス、ツールなどなど。

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

}