コントローラーとビュー (2/7)
作成:2010-02-17 13:11
更新:2010-05-10 19:00
更新:2010-05-10 19:00
■コントローラーの構造をチェックする
では、このコントローラーというのはどのような形になっているのでしょうか。ざっと整理すると、下に掲載したリストのような形になります。
コントローラーは、「名前Controller」という名前のクラスとして定義をします。ここでは「Sample」という名前で作っていましたので、「SampleController」となるわけです。名前部分は、最初の1文字目が大文字、以後は小文字になります。「SAMPLEController」などは不可です。
$name――このコントローラーの名前を指定します。これは、省略するとクラス名から自動的に名前を割り出します。以前は必ず用意したんですが、まあ今は特に書かなくても大丈夫です。
$uses――これは、このコントローラーで使用するモデル(データベースを利用するためのクラス)を指定するためのものです。ここでは、使っていないのでnullに指定しています。
$autoRender――これは、それぞれのアクション(←後述します)に応じて、自動的にビューのテンプレートを読み込んでレンダリングするためのものです。デフォルトではtrueになっており、対応するビューテンプレートを探して読み込みます。今回はビューは用意してないのでfalseにしています。こうすると、勝手にビューを読み込まなくなります。
コントローラーでは、その働きごとにいくつものアクションを用意することができます。例えば「データを一覧表示するアクション」「データを追加するアクション」「データを検索するアクション」……といった具合です。
それぞれのアクションは、コントローラークラスの中に「メソッド」として用意されます。ここでは「index」というメソッドがあります。ということは、「indexというアクション」が用意された、ということなのです。
アクションは、コントローラーのアドレスの後にスラッシュでアクション名を記述した形でアドレスが割り当てられます。整理すると
このコントローラーの基本形さえわかれば、コントローラーを作るのはそう難しくはありません。注意すべきは「命名のルール」と「アドレスのルール」でしょう。これらのルールがしっかり頭に入っていれば、簡単に作れます。
コントローラーは、「名前Controller」という名前のクラスとして定義をします。ここでは「Sample」という名前で作っていましたので、「SampleController」となるわけです。名前部分は、最初の1文字目が大文字、以後は小文字になります。「SAMPLEController」などは不可です。
○メンバー変数について○
クラスの中には、publicなメンバー変数(クラスの最初にある、public $nameとかの変数です)が並んでいます。これは、クラスで使う値を保管するというようなことでなく、「このコントローラーがどのように働くか」を指定するための重要な変数なのです。ここでは、以下のような変数が用意されています。$name――このコントローラーの名前を指定します。これは、省略するとクラス名から自動的に名前を割り出します。以前は必ず用意したんですが、まあ今は特に書かなくても大丈夫です。
$uses――これは、このコントローラーで使用するモデル(データベースを利用するためのクラス)を指定するためのものです。ここでは、使っていないのでnullに指定しています。
$autoRender――これは、それぞれのアクション(←後述します)に応じて、自動的にビューのテンプレートを読み込んでレンダリングするためのものです。デフォルトではtrueになっており、対応するビューテンプレートを探して読み込みます。今回はビューは用意してないのでfalseにしています。こうすると、勝手にビューを読み込まなくなります。
○アクションメソッドについて○
その後にある「index」というのは、「アクション」と呼ばれるもののためのメソッドです。アクションというのは、このコントローラーで利用される、さまざまな処理を示すものと考えるとよいでしょう。コントローラーでは、その働きごとにいくつものアクションを用意することができます。例えば「データを一覧表示するアクション」「データを追加するアクション」「データを検索するアクション」……といった具合です。
それぞれのアクションは、コントローラークラスの中に「メソッド」として用意されます。ここでは「index」というメソッドがあります。ということは、「indexというアクション」が用意された、ということなのです。
アクションは、コントローラーのアドレスの後にスラッシュでアクション名を記述した形でアドレスが割り当てられます。整理すると
http://サーバー/ディレクトリ/コントローラー/アクションこんな形となります。例えば「index」というアクションならば、http://localhost/cakesample/sample/indexといった感じになるわけです。ただし、indexはCakePHPでは省略できる決まりになっています。つまり、http://localhost/cakesample/sample/にアクセスすれば、自動的に「indexアクション」が呼ばれた、と判断されます。
このコントローラーの基本形さえわかれば、コントローラーを作るのはそう難しくはありません。注意すべきは「命名のルール」と「アドレスのルール」でしょう。これらのルールがしっかり頭に入っていれば、簡単に作れます。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
class 名前Controller extends AppController { public $設定 = 値; ……必要なだけ記述…… function アクション (){ ……実行する処理…… } }
※関連コンテンツ
「初心者のためのCakePHP 1.3 プログラミング入門」に戻る