同じような処理を各Viewに記述することがあると思います。
短いロジックであれば、同じようなコードを重複して記述することもありだと思いますが、Viewが大量の場合には、手作業ではやりきれません。
また、ロジックの修正が発生した場合には、大量の重複コードの修正が必要になってしまいます…
CakePHPでは、共通化する仕組みがたくさんあります。
本記事では、Viewの共通化の方法について記載しています。
共通レイアウトの作成
共通となるレイアウトのViewファイルをapp/View/Elements/ 配下に作成します。
ファイル名は通常のViewと同様{任意のファイル名}.ctpです。
今回の例では、header.ctp, footer.ctp としています。
各Viewからの利用
各Viewでは、下記のように記載します。
1 2 3 4 5 |
// 共通header <?php echo $this->element('header'); ?> // 共通footer <?php echo $this->element('head'); ?> |
と記載すると、先ほど作成したファイルを自動で読み込んでくれます。
また、app/View/Elements/Hoge/ のようにディレクトリを作成している場合は、下記のようになります。
1 2 3 4 5 |
// 共通header <?php echo $this->element('Hoge/header'); ?> // 共通footer <?php echo $this->element('Hoge/head'); ?> |