本記事では、最もシンプルなControllerとViewのサンプルプログラムを作って、動作を確認する内容になっています。
Viewクラスとは
CakePHPでは、画面表示のためのテンプレートを用意し、それをロードして画面表示します。
MVCでは、画面表示に関する処理は「ビュー(View)」と呼ばれます。
CakePHPで作成したプロジェクトの「src」フォルダを見ると、「View」というフォルダがあります。
この中に、AppView.phpというファイルが用意されています。
これがビューの処理を行うものです。
CakePHPでは、ビューは「ビューの処理を行う部分」と「表示するテンプレート」にわかれています。
「View」に用意されているのは、ビューの処理に関するプログラムということになります。
テンプレートとは
実際に画面に表示されるTemplateは、「src」フォルダ内の「Template」フォルダに置きます。
テンプレートは、それぞれのアプリケーションごとにフォルダを用意し、それぞれ必要なテンプレートを用意します。
テンプレートのファイルは「ctp」という拡張子のファイルとして作成します。
これらのファイルは、一般的なHTMLとPHPになります。
1 2 3 4 5 6 7 8 9 10 11 |
namespace App\View; use Cake\View\View; class AppView extends View { public function initialize() { } } |
テンプレートの作成
1 2 3 |
作成対象のフォルダ ./src/Template/ |
「Template」フォルダ内に、「SimpleView」フォルダを作成します。
そこに「index.ctp」というファイルを作成し、下記の内容を記述します。
1 2 3 4 5 6 |
<div> <h3>Index Page</h3> <ul class="side-nav"> <li>SimpleViewページが表示されました!</li> </ul> </div> |
コントローラーの作成
1 2 3 |
作成対象のファルダ ./src/Controller/ |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
SimpleViewController.php <!--?php <br ?--> namespace App\Controller; use App\Controller\AppController; class SimpleViewController extends AppController { public function index() { } } |
各ファイルを作成した後に、下記のURLにアクセスすると、作成したテンプレートが表示されます。
http://ドメイン名/SimpleView
実行結果
表示されている画面のデザインは、あらかじめCakePHPに用意されているレイアウト用のテンプレートを使っています。
このレイアウトは、「Template」フォルダ内の「Layout」フォルダの中にある「default.ctp」になります。
このページ全体のレイアウトを記述したテンプレートの中に、各アクション用に用意されているテンプレートのコンテンツを埋め込むことで表示されています。
CakePHPでは、特定のアクションにアクセスされると、「Template」フォルダ内から、そのアプリケーション名のフォルダの中にあるアクション名のテンプレートを自動的に対応付けます。
そのため、テンプレートの設定は、特に指定する必要はありません。
もちろん、デフォルトのレイアウトを変更することも可能で、この場合にはプログラムで指定する必要があります。