では、実際にCakePHP 3でプログラミングをしてみることにしましょう。CakePHPは、「
MVCアーキテクチャー」にもとづいて設計されています。これらは、それぞれ「
モデル(データアクセス)」「
ビュー(画面表示)」「
コントローラー(制御)」の略です。
これらのうち、まず最初に覚えておきたいのが「
コントローラー」でしょう。コントローラーは、プログラムをコントロールするためのものです。CakePHPでは、このコントローラーというものを作成し、そこからビューをロードし、モデルを使ってデータアクセスをしてWebページを作っていきます。コントローラーは全てを管理する立場にあり、コントローラーがなければ何もできないのです。
CakePHPを使ったプログラムは、「
src」フォルダの中にまとめられています。この中にある「
Controller」というフォルダが、コントローラーのためのフォルダです。コントローラーのプログラムは、すべてこの中に用意します。
では、コントローラーはどんな形になっているのでしょうか。コントローラーは、クラスとして定義をします。これは以下のような形になります。
<?php
namespace App\Controller;
use App\Controller\AppController;
class コントローラー名 extends AppController
{
……ここにアクションメソッドを用意する……
}
コントローラーは、「
AppController」というクラスを継承して作ります。この
AppControllerは、実はプロジェクトの中に用意されています。「
Controller」フォルダを開くと、「
AppController.php」というファイルが見つかるでしょう。これが
AppControllerクラスのプログラムです。この
AppControllerは、「
Controller」というクラスを継承して作られています。
コントローラーの名前空間は、
App\Controllerを指定しておきます。コントローラーのスーパークラスである
Controllerクラスがここに配置されていますので、同じ名前空間に用意しておくのが一般的です。
また、「
AppController」の
use文だけ用意してありますね。この
AppControllerを継承しているので、これは必須の
use文と考えたほうがいいでしょう。
このコントローラークラスには「
アクション」と呼ばれるメソッドを用意します。アクションとは、特定のURLにアクセスした時に呼び出されるメソッドです。ここに、実際にWebページとして表示されるために必要な処理を用意します。
アクションは、引数も返値も持たないシンプルなメソッドです。コントローラーにメソッドを用意すると、そのメソッド名のURLにアクセスした際にそのメソッドが呼び出されるようになっています。