本記事では、最もシンプルなControllerのサンプルプログラムを作って、動作を確認する内容になっています。
Controllerクラスとは
実際にCakePHP 3で、Controllerクラスをプログラミングする前に、Controllerクラスを簡単に説明いたします。
CakePHPは、「MVCア-キテクチャー」にもとづいて設計されています。
それぞれ「Model(データアクセス)」「View(画面表示)」「Controller(制御)」の頭文字の略語になります。
これらのうち、Controllerがプログラムの入り口となる処理がまとまっています。
コントローラーは、プログラムをコントロールするためのものです。
CakePHPでは、このコントローラーというものを作成し、モデルを使ってデータアクセスをして、その結果をビューに出力することで、Webページが表示されます。
CakePHPのプログラムh、「src」フォルダの中にまとめられています。
この中にある「Controller」というフォルダが、コントローラーをまとめておくためのフォルダです。コントローラーのプログラムは、すべてこの中に格納します。
コントローラーは、下記のようなクラスとして定義をします。
1 2 3 4 5 6 7 8 9 10 |
<?php namespace App\Controller; use App\Controller\AppController; class コントローラー名 extends AppController { 各アクションメソッドを記述 } |
コントローラーは、「AppController」というクラスを継承して作ります。
このAppControllerは、プロジェクトの中に用意されています。
「Controller」フォルダにある「AppController.php」というファイルになります。
このAppControllerは、「Controller」というクラスを継承して作られています。
このコントローラークラスには「アクション」と呼ばれるメソッドを用意します。
アクションとは、特定のURLにアクセスした時に呼び出されるメソッドです。
ここに、実際にWebページとして表示するための処理を記述します。
コントローラーにメソッドを用意すると、そのメソッド名のURLにアクセスした際にそのメソッドが呼び出されるようになっています。
HogeControllerクラスの作成
./src/HogeController.php を下記の内容で作成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php namespace App\Controller; use App\Controller\AppController; class HogeController extends AppController { public function index() { $this->autoRender = false; echo "<html><head></head><body>"; echo "<h1>HogeHoge!!</h1>"; echo "<p>はじめてのCakePHPで作成したページです。</p>"; echo "</body></html>"; } } |
HogeControllerのアクセス
下記のURLでアクセスすることで、対象のControllerのindexアクションが呼び出されます。
http://ドメイン名/SimpleView
とてもシンプルなコントローラーのサンプルプログラムですが、これが基本となります。
CakePHPが、Webページを表示する際に、URLとアクションメソッドを対応付けてくれるので、非常にシンプルに実装することが可能です。
今回は、コントローラー内に、画面表示のロジックを埋め込んでいますが、本来はテンプレートを使って、画面出力部分を実装していくことになります。
テンプレートの説明については、別の記事に記載していますので、参考にして下さい。