2008-02-05

HTML_Template_Flexy 1.3.xx

1/31 に開催された勉強会in大阪でも一部の人には話をしていたんですが、その後少しだけ動きがあったので。

勉強会の前日である 1/30 に HTML_Template_Flexy のバージョン 1.3.0 がリリースされ、いくつかの小さな新機能が実装されたということになってます。
このパッケージ、実は DB_DataObject と同じ作者が開発、管理しておりまして。(実際、同日に DB_DataObject のバグフィックスとしてマイナーバージョンがリリース)
で、去年の9月東京で開催されたPHPカンファレンスで私の「ネタ」をご覧になった方はお分かりかと思いますが、この方のパッケージをリリースする際に「ちょっとした落とし穴」みたいなミスをすることがたまにあったりして、あるバージョンのリリース後にも細かなFixバージョンUPを短時間で積み重ねてしまうということがあります。

さて今回の Flexy 1.3.0 にて、少し魅力的な機能を試してみたく Ver.UP して動かしてみたのですが、何やらエラーが発生。どういうことだとメッセージをチェックしたりファイル構成や中身を確認してみると、なんと新機能を利用するため新規に追加された(であろう)クラスファイルが存在しないため require に失敗し、結果 new class できず Fatal が発生している。

「AKまたやらかしやがった!」(rsky へ送ったメールより)

どうやら CVS には新クラスファイルが存在しているものの、PEAR パッケージを作成するための package.xml 内にそのクラスファイルを記述していなかったため、結果 1.3.0 パッケージ内にファイルが含まれない状況になっていたのです。

多分、CVS にコミット済みのものやらローカルに存在しているソースやら何やらが分散したり、時間が経ったことで混在しているオープン・クローズなソースの状況を忘れてしまっていたりしてるんじゃないかと思います。(今回ファイルを忘れていた分に関しても、機能的な部分の実装は数ヶ月前でした。それでも一部ミスがあったようですが。)

なお、現在出ている 1.3.2 では、1.3.0 リリース時に提示した機能の一部をカットしているようです。現在リリース分のものと CVS 上のソースの内容が異なっているのを見る限り、恐らく再実装しなおして次バージョンがリリースするのではないかと思います。
いまのところ 1.3.2 では問題は特に出ていません。(PHP5 で動かすと「is_a 使うのやめろ」という要求が出るものの、エラーではないです。) flexy:include 内の src 指定に変数が使えるのは地味に便利だし(ちょうど目前の案件で必要そうなシチュエーションだったのでワロタ)、あと radio エレメント内で id 要素を指定しないと怒られてしまうというのもこのバージョンからなくなります。ただし、いくつかの radio で同 name 要素を持つエレメントに対し 同 id 要素を持たせるというのは相変わらず NG。なので今後も変わらずマークアップ担当者には別 id を使うか class を使ってもらうようにしよう!

そしてがんばれ AK!!