libro
www.tuyano.com
初心者のためのCakePHP2 プログラミング入門

コントローラーを使おう! (3/5)

作成:2011-11-02 08:02
更新:2011-11-02 08:02

■SampleControllerを作ろう!

では、実際にコントローラーを作ってみましょう。先ほど言ったように「sample」というアプリケーションのコントローラーを作ってみます。

Controller」フォルダの中に、「SampleController.php」というスクリプトファイルを作成してください。そして、下のリスト欄にあるようにスクリプトを記述しましょう。今回は、indexというアクションを1つだけ用意してみます。

記述したら保存し、Webブラウザから以下のアドレスにアクセスしてみてください。
http://localhost/[cakephpディレクトリ]/sample/
本来ならindexアクションにアクセスするには「〇〇/sample/index」となるはずですが、CakePHPではindexがデフォルトのアクションに設定されており、アクション名が省略されると自動的にindexアクションにアクセスしたものとみなされるので、ちゃんとアクセスできます。(ちなみに、「〇〇/sample」というように、最後の/がなくてもちゃんと/sample/indexにアクセスします)

アクセスすると、簡単なテキストのページが現れます。ごく単純なものですが、まぁ「指定のアクションのアドレスにアクセスすると、そのアクションの処理が実行されページが表示される」という仕組みはこれでわかるでしょう。

今回作成したindexアクションのメソッドを見てください。アクションメソッドは、以下のような形で定義されます。
public function アクション名() {
    ……実行する処理……
}
引数は今回、何も用意されていませんが、アクションによっては利用する場合もあります(これは後述)。実行している処理は、基本的にechoでHTMLのタグを書き出しているだけの単純なものですが、最初にこんなことをしていますね。
$this -> autoRender = false;
これは何かというと、「ビューによる画面表示をOFFにする」ための措置です。MVCでは、画面表示はビューが担当しています。が、今回、ビューは作っていません。コントローラーだけで表示をやりますので、CakePHPのシステムに「ここではビューは使わないよ」ということを知らせないといけません。

$this(これは、このクラスのインスタンスですね)の「autoRender」というプロパティが、その設定になります。これは真偽値のプロパティで、trueならばビューによる画面表示を実行し、falseならばOFFにします。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

<?php
App::uses('AppController', 'Controller');

class SampleController extends AppController {

    public function index() {
        $this -> autoRender = false;
        echo "<html><head></head><body>";
        echo "<h1>サンプルページ</h1>";
        echo "<p>これがサンプルのページです。</p>";
        echo "</body></html>";
    }

}

※関連コンテンツ

「初心者のためのCakePHP2 プログラミング入門」に戻る