最新版のlibxsltをPHPに組み込む

PHP 5.2.xでsymfony propel-build-modelがbus errorになるで触れたような事情によりXSLエクステンションを外した状態のPHPを常用してきましたが、PHPUnit3Phingを組み合わせてコードカバレッジレポートを生成するにはXSL関数が必要なようです。

さて、どうしたものか…。

結論から言うと、PHPに同梱されているlibxsltではなく最新のlibxsltを使えば前述のbus error問題は回避できました。具体的にどのバージョン以降なら問題が発生しないのかということについてはまだ絞りきれていませんが、とりあえず本日時点の最新版である1.1.20ならOKなようです。

私の環境はMac OS Xなので以下のようにMacPortsでlibxsltをインストールしておいて、

$ sudo port install libxslt

PHPのconfigure時に以下のような指定をしています(無関係なオプションは省略)。

$ ./configure --with-xsl=/opt/local

使用可能なタグ <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>