pixyzehn blog

iPhone App, Mac App, Programming, Web service, Tool, Evernote, etc

CakePHPで共通部分を別で管理したらかなりすっきりした!

まだなかなか慣れないCakePHPですが、共通化できるところは初めからするべき

であったと思いました。

f:id:inagex:20131122124902p:plain



方法



headerやfooterなどの共通パーツは、/app/views/elements/ 配下で基本的に管理します。
ここではそれぞれheader.ctp , footer.ctpとしましょう。
通常のViewに書いていたheader部分とfooter部分をそのままコピペして用いることができます。

そして次はViewのファイルで先ほど作ったファイルを読み込ませます。

//header
element('header'); ?>

//footer
element('footer'); ?>

以上のコードで自動的にCakePHPのほうで/app/views/elements/ 配下にある
header.ctpとfooter.ctpを読み込んでくれます。

また
/app/views/elements/以下のファイルが多すぎて複数のheaderやfooterを生成したとき混雑になるのであれば


あらかじめ
/app/views/elements/login
/app/views/elements/result

などのディレクトリを作成し、そこに各々のheader.ctpやfooter.ctpを置くこともできます。


そのときはViewに書くときは

//header
element('login/header'); ?>

//footer
element('loginfooter'); ?>

のように書くので注意です。

共通化するメリット


共通化するべきところはおもにheaderやfooterはもちろんのこと
それ以外でも同じコードを用いているところに使えます。
共通化することによるメリットをあげていきたいと思います。

修正が楽

そこの修正がきても何ヶ所も
修正せずに1ヶ所のみの修正で済みます。
また何ヶ所も修正しているとそれは人による作業なので、ミスが出てくる可能性が増えます。

コードがすっきり

共通化することによってViewのファイルがかなり短くなります。
またそれによって全体の構造を俯瞰できるのでミスなども発見しやすくなる。


今後、積極的に活用しようと思った次第です。