Phalcon#基本機能#コントローラ
3881 ワード
PhalconではコントローラがControllerで終わるように統一され、方法はActionで終わる.例えば、
初期化コントローラ
パラメータの取得
URLルーティングのパラメータは、メソッドから直接入力して取得できます.
ディスパッチでパラメータを取得するには、次の手順に従います.
Requestオブジェクトを要求してパラメータを取得するには、次の手順に従います.
コントローラでDIに注入されたサービスを利用する
イベントのバインド
コントローラは、dispatcherイベントのリスナーとして自動的に機能し、これらのイベントを使用してこれらの方法を実装すると、実行される
リクエストとレスポンス
要求および応答オブジェクトは、コントローラで直接取得できます.
TestController::indexAction
では、すべてのコントローラがPhalcon\Mvc\Controller
から継承されるべきである.初期化コントローラ
Phalcon\Mvc\Controller
は初期化関数initialize
を提供し、最初に実行され、__construct
(ソースコードの__construct
がfinal属性を定義している)の使用は推奨されません.initialize
は、イベントbeforeExecuteRoute
が正常に実行された後にのみ呼び出されます.
Phalcon\Mvc\Controller
クラスのソースコードを表示すると、onConstruct
関数を実装して、コントローラオブジェクトの作成後に初期化ロジックを実行することもできます.{"onConstruct"}();
}
}
}
onConstruct
関数によって初期化コントローラを実現する:
パラメータの取得
URLルーティングのパラメータは、メソッドから直接入力して取得できます.
ディスパッチでパラメータを取得するには、次の手順に従います.
dispatcher->getParam('param1'); // param1
$param2 = $this->dispatcher->getParam('param2'); // param2
}
}
Requestオブジェクトを要求してパラメータを取得するには、次の手順に従います.
request->getPost('name'); // post name
$age = $this->request->getQuery('age'); // get age
}
}
コントローラでDIに注入されたサービスを利用する
Phalcon\Mvc\Controller
が継承するinjectable
クラスには、DI
を取得する方法がカプセル化されており、DI
に注入された様々なサービスをコントローラで容易に取得することができる.getDI()->get('service name');
$this->di->get('service name'); //
}
}
イベントのバインド
コントローラは、dispatcherイベントのリスナーとして自動的に機能し、これらのイベントを使用してこれらの方法を実装すると、実行される
action
に対応するbefore/after
フック関数を実現することができる.getActionName() == 'save') {
// do something before save action ...
}
}
public function afterExecuteRoute($dispatcher)
{
// action
}
}
リクエストとレスポンス
要求および応答オブジェクトは、コントローラで直接取得できます.
request; //
$params = $request->getPost(); // post
$response = $this->response; //
$response->setJsonContent(['a' => 11111, 'b' => 2222])->send(); // json
}
}