アクション

アクションはリクエストに対して実際に個別の処理を行うコードを記述するところです。コントローラのメソッドとして記述されます。リクエストされるURLごとに処理の内容は異なり、それに対応してアクションも異なるということで、アクションはURLに対応付けられたコントローラのメソッドとも言えます。各アクションの呼び出し方はURLを参照してください。

デフォルトアクション

コントローラが呼び出されたもののアクションが指定されていない場合に呼び出されるメソッドがデフォルトアクションです。初期状態ではindexすなわちコントローラのメソッドactionIndex()が呼び出されます。

フロントコントローラにアクセスがあってコントローラもアクションも指定されていない場合、コントローラTopのメソッド(アクション)indexが呼び出されることになります。

実装方法

アクションはURLに対応したコントローラのメソッドとして実装します。

http://フロントコントローラ/コントローラ名/アクション名/

つまり個々のURLで担う処理ごとにメソッドを切り分け、それをアクションとして記述します。アクション名をyyyとした場合、アクションのプレフィクスactionを付けた名前でメソッドとして定義します。プレフィクス直後の文字は大文字となります。

<?
class ctrlXxx extends CZCtrl {

	public function actionYyy() {	// http://mydomain.com/xxx/yyy
		// 処理の記述
		echo 'Hello, World.';
	}

	public function actionZzz() {	// http://mydomain.com/xxx/zzz
		// 処理の記述
	}
		:
}
?>

アクション名はURLの第2セグメントとなりますので、それを意識して名前を決めるといいでしょう。アクショングループを適用する場合は名付けのルールが変わりますので、アクショングループの実装方法を参照してください。

特殊アクション

アクションの中にはあらかじめ特殊な挙動をするように定められたものがあります。

_construct()
コントローラクラスのインスタンスを生成した時に実行する、コンストラクタの役割を持たせるメソッドです。 コントローラ全体で共通する処理を行います。
_init()
他のコントローラから当該コントローラに移ってきた(転送、リダイレクトのいずれも)時だけ最初に呼び出されるメソッドです。
_common()
コントローラ内のメソッド(アクション)が実行される際、共通してその前に実行されるメソッドです。コンストラクタと異なり、メソッドが実行されるたびに処理が行われます。

これらは通常のアクションと異なり、URLで指定して呼び出すことができません。

indexはアクション名が省略されたときに呼び出されるアクションです。URLを決める際に、アクション名を省略したURLすなわち

http://mydomain.com/index.php/xxx/

でどんな処理をしたいか(何を表示したいか)によってアクションindexの内容を決めるといいでしょう。

前後のページ

ページトップへ