ビューのある一部分を、他のビューにも使いまわしたいことがあると思います。今回は、そんな時に使うと便利なエレメントについて紹介していきます。(CakePHP v.3.4.4)
エレメントとは、繰り返し使うビューの要素を個別のファイルに収めたものです。その要素を使いたい時にビュー側で呼び出してあげれば、いつでも使用することができます。
その結果以下のメリットがあります。
- ビューのテンプレートファイルのコードが短くなり、すっきりします。
- 修正が楽になります。共通化しているのでエレメントだけ修正すればOK。
エレメントの作成
「src/Template/Element」の配下にファイルを作成します。
ファイル名は「(エレメント名).ctp」
作成したファイルの中身は、ビューファイルの中で共通化したい部分をそのまま書きます。
ここでは「navi.ctp」ファイルを作成します。
【navi.ctp】
<ul>
<li><a href="/top">HOME</a></li>
<li><a href="/menu">メニューへ戻る</a></li>
</ul>
エレメントの呼び出し
呼び出し元のビューのテンプレートファイルで、呼び出したい箇所に以下の行を追加します。
<?php echo $this->element('navi'); ?>
「$this->element(‘エレメント名’)」でエレメント名で作成したエレメントを呼び出すことができます。上記のコードを埋め込んだ場所に、エレメントとして記述したコードが差し込まれる感覚です。
コントローラーで定義したview変数も読み込んでくれます。
まとめ
- ビューのテンプレートファイルの中で、使いまわせる要素はエレメントにして使いまわそう。
- 「src/Template/Element」配下に「(エレメント名).ctp」ファイルを作成し、呼び出し元で「echo $this->element((エレメント名);」を挿入して呼び出そう。
使うことで、コードがすっきり、修正が簡単になります。
飲食業界からIT業界に転身してきて現在2年目です。PHPの経験がメインとなります。これまで自分がPHPを扱ってきた上で、モヤモヤしてきたことをメインに記事にしていきますのでよろしくお願いいたします。