この記事の例では、Zend Framework アクション コントローラーの使用法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
アクション コントローラーの紹介
Zend_Controller_Action クラスを使用するには、実際のコントローラー クラスでそれをサブクラス化する必要があります。
コード:
<?php class FooController extends Zend_Controller_Action{ public function barAction(){ //do something } public function bazAction(){ //do something } }
説明: 上記の FooController クラスは、bar と baz の 2 つのアクションを定義します。
オブジェクトの初期化
初期化 インスタンス化をカスタマイズするより適切な方法は、init() メソッドを使用することです。このメソッドは、__construct() の最後の呼び出しタスクです。
コード:
<?php class FooController extends Zend_Controller_Action{ public function init(){ $this->db = Zend_Db::factory('Pdo_Mysql',array( 'host'=>'myhost', 'username'=>'user', 'password'=>'xxxx', 'dbname'=>'website' )); } }
説明: 上記のコードは、オブジェクトの初期化中にデータベースへの接続を実現します。
Accessor
アクションコントローラーには、リクエストオブジェクト、レスポンスオブジェクト、呼び出しパラメータ、リクエストパラメータなどの多くのコンテンツを含めることができます。これらのコンテンツには、対応するアクセサー メソッドを通じてアクセスできます。
リクエスト オブジェクトは getRequest() メソッドを通じて取得でき、このメソッドを実行すると Zend_Controller_Request_Abstract インスタンスが返されます。
コード:
$module = $this->getRequest()->getModuleName();//获取模块名称 $controller = $this->getRequest()->getControllerName();//获取控制器名称 $action = $this->getRequest()->getActionName();//获取动作名称
このメソッドを実行すると、 getResponse() メソッドを通じて応答オブジェクトを取得でき、 Zend_Controller_Response_Abstract インスタンスが返されます。
リクエスト オブジェクトのリクエスト パラメータには、GET、GET、または _POST パラメータが含まれます。これらのパラメータを読み取るには、_getParam($key) メソッドまたは _getAllParams() メソッドを使用できます。
ビュー統合メソッド
ビューの初期化
initView()メソッドを実行するとビューオブジェクトが初期化されます。
ビューを解析する
render()メソッドはビューを解析するために使用されます
コード:
<?php class MyController extends Zend_Controller_Action{ public function fooAction(){ //Renders my/foo.phtml $this->render(); //Renders my/bar.phtml $this->render('bar'); //Renders baz.phtml $this->render('baz',null,true);//第三个参数,指定是否使用控制器目录作为子目录,true表示不使用 //Renders my/login.phtml to the 'form' segment of the response object $this->render('login','form'); } }
他のメソッド
_forword()、このメソッドは別のアクションを実行します
_redirect()、このメソッドはリダイレクトしますanother A place
この記事が、Zend Framework フレームワークに基づいた PHP プログラミングの皆様のお役に立てれば幸いです。
Zend Framework アクション コントローラーの使用例に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。