「WordPressで学ぶPHP(4)通信編」を発売しました。
本書は、「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造編」「WordPressで学ぶPHP(3)関数編」の続編にあたり、Webブラウザとサーバー(PHP)との通信と、PHPから他のサーバーに通信することについて解説します。
Movable Type 5でのプラグインの互換性
Movable Typeが5にバージョンアップするのに伴って、プラグインの互換性の問題が気になるところです。
そこで、まだ細かく調べきれてはいませんが、互換性の問題になりそうな点を紹介します。
なお、今日の話は一般論で、個別のプラグインの互換性の話ではありません。
当サイトで配布しているプラグインの動作確認については、後日にまとめて公開する予定です。
1.管理画面カスタマイズ系プラグインの問題
Movable Type 3から4のバージョンアップの際には、管理画面のテンプレートの構造が変わりました。
また、構文も変わりました(PerlのHTML::Templateから、Movable Typeのテンプレートに変化)。
そのため、管理画面をカスタマイズするタイプのプラグインが、のきなみ動作しなくなってしまいました。
一方、今回のバージョンアップでは、3から4のバージョンアップの時と比べると、管理画面に関する内部的な変更は、それほど大きくありません。
拙作のプラグインをいくつかMovable Type 5で試してみたところ、正しく動かなくなるプラグインもありましたが、3から4の時ほどは、修正に手間取らずに済みそうです。
また、修正なしでほぼ動いているプラグインもあります。
2.MT標準のテンプレートタグの処理
これまでのMovable Typeでは、標準のテンプレートタグの大半の処理は、「lib/MT/Template/ContextHandler.pm」の1つの大きなモジュールに記述されていました。
一方、Movable Type 5では、ContextHandler.pmがタグの種類毎に複数のモジュールに分割されています。
特定の種類のタグしか使わないようなテンプレートであれば、再構築の際に読み込むモジュールが少なくなりますので、再構築の速度向上に幾分寄与すると思われます。
一方、ContextHandler.pm内のサブルーチンを直接に利用していたプラグインは、そのままでは動作しなくなる場合があります。
当方で試した例だと、このことが原因で、メールフォームプラグインでメールフォームテンプレートの再構築時にエラーが出るようになりました。
3.データベースの変更箇所は少ない
Movable Type 5では、新たに「ウェブサイト」「テーマ」「カテゴリ毎のカスタムフィールド」「履歴管理」等の機能が追加されました。
しかし、それに伴うデータベースの変更箇所は、意外と少ないです。
MT4.3とMT5βを比較してみると、新しく増えたテーブルは、履歴管理用のテーブルだけです(mt_entry_revとmt_template_rev)。
ウェブサイトは、内部的にはブログから派生したクラスになっています。
保存先のテーブルはブログと同じ(mt_blog)になっていて、ウェブサイト専用のテーブルはありません。
テーマはプラグインの一種のような形になっています。
そのため、テーマに関するテーブルもありません。
また、カテゴリ毎のカスタムフィールドの機能では、カテゴリとカスタムフィールドの関係は、カテゴリのmeta情報用テーブル(mt_category_meta)に保存されています。
これまでのMTでも、データベースアクセスがオブジェクト化されていたので、データベースの構造が変化しても、プラグインが受ける影響は少なかったです。
今回も、データベース構造の変化に関係するトラブルは、あまり起こらないと思われます。