CMS構築を目的にPHPをベースとしたWordPress、CakePHPやPEARなどオープンソースを中心に解説しています

PHPのフレームワークCakePHPの基盤を使って「Hello World!」を表示させてみます。

CakePHPもZend Frameworkと同様にMVCを採用しており、mod_rewriteを利用してindex.phpをフロントコントローラとしています。詳細は同blogのZend Framework関連の記事を参照してください。
Zend Framework | cms helog – CMS構築を目的にPHPをベースとしたWordPress、CakePHPやPEARなどオープンソースを中心に解説しています

まず「/test/hello」にアクセスするため、「test」コントローラにアクションメソッド「hello」を用意します。
ファイル「/app/controllers/test_controller.php」を作成して、以下の内容を記述します。ファイル名はコントローラ名の後に「_controller.php」を足すのがルールです。

class TestController extends AppController {

	public $name = "Test";
	public $uses = null;
	public $autoRender = true;

	function index(){
	}

	function hello(){
		$this->set("content", "Hello World!");
	}
}


ルールとして、クラス名はコントローラ名から「TestController」とします。変数nameにはコントローラ名を設定します。変数usesはモデルを指定しますが、今回は用いないのでnullを代入します。変数autoRenderはビュワーを利用することを明示的に指定しています。
autoRenderをtrueとした場合、特に指定しない限り、一定のルールに従いテンプレートを拾いに行きます。この場合、アクションindexは「/app/views/test/index.ctp」、helloは「/app/views/test/hello.ctp」を見に行きます。
ビュワーファイルの拡張子は「.ctp」になります。

さて、「/app/views/test/hello.ctp」の中身は以下のとおりです。cotentにセットされた「Hello World!」を表示するだけです。

<?php echo $content; ?>

ブラウザで「/test/hello」にアクセスし、以下のように表示されてば成功です。

cakephp2

「Hello World!」と表示されていますね。ヘッダやフッタがきれいにレイアウトされているのは、デフォルトのレイアウトによるもので、こちらも別で調整可能です。

このエントリーをはてなブックマークに追加

Monthly Archives

Search