CakePHP / CakePHPで本当のHelloWorld | とんでもブログ ~ プログラマのWeb開発メモ (PHP, CSS, JavaScript)

CakePHP / CakePHPで本当のHelloWorld

CakePHPで最初につまずくところ、MVCモデル。

モデル・ビュー・コントローラの略(Model-View-Controller)らしいんだけど、それって何って感じでした。


勉強していて、ようやくわかってきたのでここに記録しておきます。



概念を理解するには、CakePHP本家のここが一番わかりやすかったです。

http://book.cakephp.org/ja/view/10/model-view-controller

CakePHPでHelloWorldプログラムを作りたい場合、本当に書かなきゃいけないのはコントローラだけ。

以下のソースを書けばよいです。


class HelloWorldController extends AppController {

	public $name = 'HelloWorld';
	public $uses = null;  // $uses = array(); でも同じ動作
	public $autoRender = false;
	
	function index()
	{
		echo "hello world!";
	}
}


これを

/cakeを配置した場所/app/controllers/hello_world_controller.php

としてサーバーに保存してやります。


ブラウザで

http://自分のドメインでcakeを配置した場所/hello_world/

としてアクセスすると、普通のHello Worldが表示されるようになります。




ビューを使いたい場合は

$autoRender = false; の行を削除するか、

$autoRender = true; とします。

デフォルトがtrueなので普通は削除します。


そうすると、

/cake/xxxxx/app/views/hello_world/index.ctp(cake1.1の場合index.thtml)

をテンプレートファイルとして勝手に読み込みにいってくれます。

テンプレートファイルを読み込んで、テンプレートの一部書き換えをする動作を

Cakeではレンダリングと呼んでいるようです。



モデルを使いたい場合は$uses = null;のところにモデル名の配列を指定します。

$uses = array("Modelname");

みたいな感じ。