class UtilsComponent extends Object {
function pdate($id) {
$Picture = ClassRegistry::init('Picture');
$tmp = $Picture->read('modified',$id);
return $tmp['Picture']['modified'];
}
}
同じ名前のヘルパーを作成する。このヘルパーを通してコンポーネントをコールする。
App::import('Component','Utils');
class UtilsHelper extends AppHelper {
function __call($methodName, $args) {
$utils = new UtilsComponent();
return call_user_func_array(array($utils, $methodName), $args);
}
//もちろんこのヘルパー内に他の関数を書いてもよい。
}
上記により、UtilsHelperに存在しない関数はUtilsComponentの呼び出しに変換されるコントローラで
var $components = array('Utils'... その他のコンポーネント);
var $helpers = array('Utils', ...その他のヘルパー);
と定義しておけば、ビューからは$this->Utils->共通コンポーネントの関数()
と呼び出すことで、コンポーネントの関数を呼び出すことができる。