コントローラーを使おう! (3/5)
作成:2011-11-02 08:02
更新:2011-11-02 08:02
更新:2011-11-02 08:02
■SampleControllerを作ろう!
では、実際にコントローラーを作ってみましょう。先ほど言ったように「sample」というアプリケーションのコントローラーを作ってみます。
「Controller」フォルダの中に、「SampleController.php」というスクリプトファイルを作成してください。そして、下のリスト欄にあるようにスクリプトを記述しましょう。今回は、indexというアクションを1つだけ用意してみます。
記述したら保存し、Webブラウザから以下のアドレスにアクセスしてみてください。
アクセスすると、簡単なテキストのページが現れます。ごく単純なものですが、まぁ「指定のアクションのアドレスにアクセスすると、そのアクションの処理が実行されページが表示される」という仕組みはこれでわかるでしょう。
今回作成したindexアクションのメソッドを見てください。アクションメソッドは、以下のような形で定義されます。
$this(これは、このクラスのインスタンスですね)の「autoRender」というプロパティが、その設定になります。これは真偽値のプロパティで、trueならばビューによる画面表示を実行し、falseならばOFFにします。
「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にします。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
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 プログラミング入門」に戻る