CakePHP/Smartyとのつきあい方 - CakePHP Advent Calendar 2010 9日目
CakePHP Advent Calendar2010 9日目です。
軽い気持ちで参加したので、みなさんが濃いネタでがっつり書かれているので、
おびえてます。。。
さて、今まで、Smartyをさんざん使ってきたので、
癖でCakePHPでも、SmartyViewClassを使って、
Viewの部分は、Smartyを使って書いてます。
ヘルパーの呼び出しなんかも楽で、
{$html->css('home', null, null, false)} {$javascript->link('jquery', false)}
こんな感じで、さくさくっと呼び出しができちゃいます。
でも、ヘルパーに配列を渡すとなると、困ったことになってしまいます。
{assign_assoc var='ArrayImage' value='class=>image'} {$html->image('image/image.gif', $ArrayImage)}
と、事前に配列を作らないといけないんです。
2つも渡すとなると、さらに大変。
{assign_assoc var='ArrayImage' glue="::" value='class=>image::alt=>test'} {$html->image('image/image.gif', $ArrayImage)}
見た目もきれいではないし、間違いそうで嫌なのです。
そこで、必要な部分はヘルパーを拡張しています。
<?php class ExhtmlHelper extends HtmlHelper { function img ($path, $class = null) { $opt = Array(); if ($class) { $opt['class'] = $class; } return $this->image($path, $opt); } }
といったヘルパーを作成して、コントローラーに追加し、
ビューで呼び出します。
{$exhtml->img('image/image.gif', 'image')}
ちょっとすっきり。
必要な物が出来ると、都度拡張しないといけないので、
悩ましいのですが。
誰かいい方法があれば、伝授してください。
すいません、もう少し深いネタを用意しておくべきでした・・・
次のCakePHP Advent Calendar 2010の担当は、mon_satさんです。
よろしくお願いしま〜す。