前回、ビューを作成して表示をした時、ページ全体がCakePHPのサイトと同じようなデザインで表示されたのに驚いたはずです。まったく何のスタイルも設定していない、ただのHTMLタグだけのビューを表示しただけなのに、ちゃんとデザインされていたのですから。
これは「
レイアウト」という機能のおかげだ、と説明しました。レイアウトというのは、CakePHPに用意されている「ページ全体の基本デザイン」を提供するものです。CakePHPでは、画面の表示はビューが担当しますが、このビューだけでページが構成されているわけではありません。ビューで作成するのは、実はページの中の「
コンテンツ」部分なのです。
CakePHPのWebページは、ページ全体の基本デザインとなる「
レイアウト」と、個々のページのコンテンツのビューの組み合わせになっています。レイアウトは、画面にヘッダー・コンテンツ・フッターといった領域を設け、このコンテンツ部分に指定のビューをはめ込んで表示しているのです。
この方式により、Webアプリケーションに用意されるすべてのページで統一したデザインの表示が簡単に作成できるようになります。すべてのページで同じレイアウトを使えば、全体の基本的な枠組みは同じで、コンテンツ部分だけが変わるのですから。
このレイアウトは、「
View」フォルダの「
Layouts」フォルダ内に用意されます。ファイル形式は、ビューと同様の
.ctpファイルを使い、通常のHTMLで記述します。また、作成したレイアウトの使用は、アクションメソッド内で「
layout」プロパティを設定することで行えます。例えば、
$this->layout = "Sample";
このように設定すると、「
Layouts」フォルダ内に用意した「
Sample.ctp」というレイアウトファイルを使って画面表示を行うようになります。