Home > CakePHP > [CakePHP1.2RC3]PHP4でhelperのbeforeRenderの値参照バグ

[CakePHP1.2RC3]PHP4でhelperのbeforeRenderの値参照バグ

  • Posted by: エガシラリュウジ
  • 2008年11月11日 07:48
  • CakePHP

helperのbeforeRenderで、ヘルパのプロパティを書き換える処理を行っても、viewで同じ値を参照できない。 調べたらCakePHPのバグだった。

PHP4の場合、foreachでの参照渡しができないから別のインスタンスの値を変更した事になる。

[cake/libs/view/view.php]の_renderメソッド内の以下の部分を書き換える事で対応可。

foreach ($loadedHelpers as $helper) {
	if (is_object($helper)) {
		if (is_subclass_of($helper, 'Helper') || is_subclass_of($helper, 'helper')) {
			$helper->beforeRender();
		}
	}
}

を以下のように変更。

foreach ($loadedHelpers as $name => $helper) {
	if (is_object($helper)) {
		if (is_subclass_of($helper, 'Helper') || is_subclass_of($helper, 'helper')) {
			$loadedHelpers[$name]->beforeRender();
		}
	}
}

以前、componentでも同じようなバグがあったが、RC3では直ってる様子だった。

Comments:0

コメントフォーム

コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。

Trackbacks:0

TrackBack URL for this entry
http://blog.non-style.com/mt/mt-tb.cgi/52
Listed below are links to weblogs that reference
[CakePHP1.2RC3]PHP4でhelperのbeforeRenderの値参照バグ from Webプログラマの苦悩

Home > CakePHP > [CakePHP1.2RC3]PHP4でhelperのbeforeRenderの値参照バグ

Links
Search
Feeds
Tag Cloud

Return to page top