Hatena::ブログ(Diary)

放浪するエンジニアの覚え書き このページをアンテナに追加 RSSフィード

2014-10-23

CakePHP2.5.5でコントローラを使ってみる

| 17:49 | CakePHP2.5.5でコントローラを使ってみるのブックマークコメント

前回の続き。

今回はCakePHP1.3.6のこちらのログをCakePHP2.5.5でなぞってコントローラだけを使ってみる。

CakePHPCOC(Convention over Configuration)を採用したフレームワークなので、これに準じて確認用コントローラーを作成する。

  • コントローラーは、/app/controllers配下におく。
  • コントローラーのファイルは、[プログラム名]Controller.phpとする。(キャメル記法:Cake1系ではここがアンダースコア記法だった)
  • コントローラーのクラス名は、[プログラム名]Controllerとする。(キャメル記法)
  • コントローラーのメンバ変数$nameには、キャメル記法のプログラム名を入れる。
  • かならず、index()メソッドを作成する。

「プログラム名」はTesCakeにする。/app/controllersに「TestCakeController.php」を作成し、以下のコードを書く。

<?php
class TestCakeController extends AppController{
	public $name = 'TestCake';
	public $uses = null;
	public $autoRender = false;
	
	function index(){
		echo "これはCakePHP2.5のコントローラーのテストです";
	}
}
?>

メンバー変数の$usesはモデル、$autoRenderはビューテンプレートの利用を意味するので、ここでは、それぞれnull, falseにして、index()にあるecho文でレスポンスを返す。

これで、/localhost/workspace/cakesample/TestCakeにアクセスすると、index()が呼ばれ、以下の画面がでる。

f:id:tetsuya_odaka:20141020155019p:image

メソッドの呼び出しは、/プログラム名/メソッド名で行われる

以下のコードを書いてみる。

<?php

class TestCakeController extends AppController{
	public $name = 'TestCake';
	public $uses = null;
	public $autoRender = false;
	
	function index(){
		echo "これはCakePHP2.5のコントローラーのテストです";
	}
	
	function index2(){
		echo "This is a test of CakePHP2.5 Controller";
	}

}
?>

ここで、/localhost/workspace/cakesample/TestCake/index2にアクセスすると、index2()が呼ばれ、以下の画面がでる。

f:id:tetsuya_odaka:20141020155213p:image