WEBOPIXEL

CakePHPのコントローラーを使う

Posted: 2010.09.26 / Category: CakePHP / Tag: 

CakePHPでMCVのCの部分であるコントローラーを使ってみます。
コントローラーはこのモデルを使ったりとか、このビューで表示したりとか全体をコントロールする部分っぽいです。

Sponsored Link

コントローラーファイルを作成

コントローラーを作成する場所は「app」→「controllers」です。
ファイル名ですが、CakePHPは名前に結構規則があるみたいで、その辺に注意して作成します。
ファイル名は単語をアンダスコアで区切った記述で作成します。そしてコントローラーなら最後に「_controller」をくっつけます。
たとえば「posts」なら「posts_controller.php」ですね。

で、その「posts_controller.php」ですが、クラス名は単語の頭を大文字にしたキャメル方式という記述で記述します。

posts_controller.php

		<?php
		class PostsController extends AppController {
		
			public $name = 'Posts';  //コントローラー名
			public $uses = null;    //モデルの指定
			public $autoRender = false;
	
			function index(){
				echo '<h1>Test</h1>';
			}
		}
		?>
	

「$name」でコントロール名を指定しています。これは最近のバージョンでは記述してなくてもいいらしいです。
「$uses」はモデルの指定です。とりあえずモデルは使用しないので「null」
「$autoRender」はビューを使用してレイアウトするかどうかです。これも使用しないので無効にしておきます。
最後に「index」メソッドがあります。
これはアクションメソッドと言うらしく、この名前がそのままパーマリンクになります。
「$autoRender」を無効にしてるので、そのままechoが表示される感じですね。

作成したら、ブラウザで実行してみます。URLは[コントローラー名]/[メソッド名]です。
「Posts」コントローラーに「index」メソッドを作りましたのでこんな感じのURLになります。

http://localhost/cake/test/posts/index/

「index」なんでこの部分はあってもなくても大丈夫ですね。