データ分析エンジニアのブログ

日常のことからプログラミングや機械学習まで@六本木

CakePHPで部分テンプレート(エレメント)を使う

こんばんは、久々のブログの更新になります。


最近はCakePHPRuby on Railsで開発をしています。
iOSデベロッパー登録もしてswiftも趣味の範囲ですが、一応やっています。


開発をしていると複数のページで同じ部分レイアウトのコードを書くことがあると思います。
そういったときにスッキリとしたコードを書くための工夫が部分テンプレートとなっています。
ほとんどのフレームワークではこれが実装されており、CakePHPではエレメントという呼び方になっています。


今回はCakePHPでエレメントを使って、コードを簡略化するTipsをご紹介します。

部分テンプレートの作成

<div id="sidebar">
サイドバーです。
</div>


上記のようなviewファイル(ctpファイル)をapp/View/Elements/というディレクトリに作成します。


Ruby on Railsではファイル名をアンダーバーから始めないといけないという制約があったのですが、CakePHPの場合は、そういった制約はないようです。

エレメントの呼び出し

<?php echo $this->element('sidebar'); ?>


このように書くことで、先ほど作成したエレメントファイルはどのViewファイルでも手軽に呼び出せるようになります。

エレメントに変数を受け渡したい

<?php echo $this->element('sidebar', array(
    'name' => 'variable'
)); ?>


変数を利用してページごとに同じレイアウトでも表示する内容を変えたいというときに使える方法です。
ファイル名の後に配列で変数を引き渡すことができます。
これで受け渡した変数はViewで$nameでアクセスできるようになります。



エレメントを利用すると手軽にスッキリとしたコードを実現できます。
ぜひみなさんもエレメントを使ってスッキリとしたコードを実現してみてください。