controllers/(コントローラ)
index.php(フロントコントローラ)で指定したディレクトリにコントローラとなるファイルを置く。
ファイル名は、『コントローラ名』+『Controller.php』とする。コントローラ名の頭文字は大文字とする。
以下はIndexController.phpの例。
IndexController.phpの例
<?php
/**
* IndexController(デフォルトコントローラ)
*/
// Zend_Controller_Actionをロード
require_once 'Zend/Controller/Action.php';
class IndexController extends Zend_Controller_Action
{
// index(デフォルト)アクション
public function indexAction()
{
// 何らかのコード
echo 'IndexController::indexAction';
}
}
コントローラ名(クラス名)は、『コントローラ名』+『Controller』とする。コントローラ名の頭文字は大文字とする。つまり、ファイル名の.phpを除いた形式。コントローラは、Zend_Controller_Actionを継承する。
アクション名(メソッド名)は、『アクション名』+『Action』とする。このアクションの中になんらかのコードを記述する。例では、確認のためにechoを記述してみたが、これは普通、Viewで行う。
このIndexControllerのindexActionを呼び出すには、『http://peabox.com/index/index/』のようにアクセスする。ただし、IndexControllerはデフォルトのコントローラ、indexActionはデフォルトのアクションなので、『http://peabox.com/』と省略した場合にも呼び出される。
以下は普通の(デフォルトではない)コントローラの例。
BlogController.phpの例
<?php
/**
* BlogController
*/
// Zend_Controller_Actionをロード
require_once 'Zend/Controller/Action.php';
class BlogController extends Zend_Controller_Action
{
// index(デフォルト)アクション
public function indexAction()
{
// 何らかのコード
echo 'BlogController::indexAction';
}
// detailsアクション
public function detailsAction()
{
// 何らかのコード
echo 'BlogController::detailsAction';
}
}
このBlogControllerのindexActionを呼び出すには、『http://peabox.com/blog/index/』のようにアクセスする。ただし、indexActionはデフォルトのアクションなので、『http://peabox.com/blog/』と省略することもできる。もちろん、detailsActionを呼び出すには、『http://peabox.com/blog/details/』のようにアクセスする。