2013年12月10日火曜日

CakePHP2.x ヘルパーでコンポーネントを使用する

MVC的に正しいのかどうかは置いておいて、ヘルパーでコンポーネントを無理やり使った。
他のページを見ると、自分でnewして使用するのが一般的(?)みたいだけど、
正直コントローラがすでに生成しているオブジェクトをわざわざnewするのもどうかと思ったので、
ClassRegistryに格納した。

コントローラ側の処理
ClassRegistryにコントローラが持っているHogeコンポーネントを追加。

/*---------------------------------------------------------------------------*/
ClassRegistry::addObject( "Hoge", $this->Hoge );
/*---------------------------------------------------------------------------*/

ヘルパー側の処理
ClassRegistryからコンポーネントを取得して使用する。

/*---------------------------------------------------------------------------*/
$hogeComponent = ClassRegistry::getObject( "Hoge" );
$hogeComponent->hogeru();
/*---------------------------------------------------------------------------*/

処理として正しいのかどうかは置いておいて、これでヘルパーからコンポーネントが使える。

0 件のコメント:

コメントを投稿