HtmlHelper::loadConfig() にハマる (CakePHP 2.0.0-RC3)
CakePHP 2.0.0-RC3 で早速つまづいた。はじめは、バグなのかドキュメントの誤りなのか、判断できずにいたのだが、HtmlHelper で生成されるタグを変更するために HtmlHelper::loadConfig() を使おうとして、うまく動かせられなかった。(APIドキュメント側の誤りっぽい)
ドキュメントでは、tags.php (app/Config/tags.php) を以下の様に記述することになっている。
http://book.cakephp.org/2.0/en/core-libraries/helpers/html.html#changing-the-tags-output-by-htmlhelper
http://api20.cakephp.org/class/html-helper#method-HtmlHelperloadConfig
<?php // HTML5 版の charset タグ (動かない) $tags = array('charset' => '<meta charset="%s" />');
実際には、
<?php // HTML5 版の charset タグ (動いた) $config = array('tags' => array('charset' => '<meta charset="%s" />'));
と、$config 変数に書いてやらないと動作しなかった。
HtmlHelper::loadConfig() は、デフォルトのレイアウト (app/View/Layouts/default.ctp) で呼び出した。
<?php // テスト $this->Html->loadConfig('tags'); echo $this->Html->charset();
マイグレーションガイドに説明書きがあった。多分APIドキュメントの誤りなのだろう。
http://book.cakephp.org/2.0/en/appendices/new-features-in-cakephp-2-0.html#htmlhelper
これを読むと、コントローラ上で Html ヘルパーを定義するときに、設定ファイルを指定できるらしい。
<?php pubilc $helpers = array('Html' => array('configFile' => 'tags'));