CakePHP 2.x 系では Xml ヘルパー Ajax ヘルパーJavascript ヘルパーは廃止されました

CakePHP 2.x 系でサイトを構築しています。個人的には Ajax ヘルパー並びに Javascript ヘルパーを使ったことはありませんが、XML ヘルパーについては使う機会があります。今回久しぶりに XML ヘルパーを使用したところ以下のようなエラーが出ました。

Error: XmlHelper could not be found.
Error: Create the class XmlHelper below in file: app/View/Helper/XmlHelper.php

CakePHP 1.x 系では XML のヘッダを出力するには以下のようなコードを使用しておりましたので、XML ヘルパーが使えないとヘッダを出力することができません。

1
echo $this->Xml->header();

これだけを解決するだけなら、手動で書いても良いのですが、CakePHP 2.x 系ではどうなったのか調べてみましたところ、以下のページの “XmlHelper, AjaxHelper and JavascriptHelper removed” という項目が参考になりました。

The AjaxHelper and JavascriptHelper have been removed as they were deprecated in version 1.3. The XmlHelper was removed, as it was made obsolete and redundant with the improvements to Xml. The Xml class should be used to replace previous usage of XmlHelper.

The AjaxHelper, and JavascriptHelper are replaced with the JsHelper and HtmlHelper.

以下は管理人の和訳となります。

バージョン 1.3 の Ajax ヘルパーと JavaScript ヘルパーは削除され非推奨となりました。廃止と重複を改善したものが作られたから XML ヘルパーは削除されました。前に XML ヘルパーを使っている場合は Xml クラスに置き換えるべきです。

Ajax ヘルパーと JavaScript ヘルパーは HTML ヘルパーと JS ヘルパーに置き換えられました。

XML ヘルパーは Xml クラスに置き換えるとのことですが、Xml::header() も無いようです。代替のコードなどがあるのかと思って Xml クラスについて調べてみましたが、build() fromArray() toArray() しか無いようで、header() に相当しそうなものがありません。ちなみに Xml クラスは lib/Cake/Utility/Xml.php にあります。Github で見る場合は以下のページになります。

というわけで、今回3つのヘルパーは廃止されて、他のクラスやヘルパーに統合されましたが、私が抱えている問題を解決する方法は消滅した可能性が高そうなので、手書きでヘッダを宣言したいと思います。皆さんで XML のヘッダの出力方法をご存知でしたら教えて頂けると幸いです。

コメント

コメントは受け付けていません。