検証環境つくってAmazonJS 0.7.2をリリース

AmazonJS 0.7.1でPHP5.4以上でショートタグの設定にかぎらず常に使えるようになった<?=をうっかり使ってしまった問題を修正したものをリリース。

<?=<?php echoに置換すれば済む問題だったけど、テスト環境がないことが問題だと思って、Dockerの勉強に数時間、Dockerの構築に数時間、方針変更してVagrant環境の構築に数時間、修正は10分みたいなすごい遠回りした。でも環境作ったので次からはこういう問題を事前に気付けるはず。作ったVagrant環境はあとでGitHubにあげる。

Vagrant

WordPressのDockerのイメージやVagrant環境はいろんな人が公開しているんだけど、今回使いたかったのは古いPHPのバージョンと古いWordPressの環境だったのでそれを探すのが難しくて結局自分でVagrant環境を作ってしまった。時間がなかったのでDebian 6 + PHP5.3でとりあえずチェックしたけど、WordPress 3.2からPHP5.2.4が最低環境になったのでPHP5.2の環境にしたいとは思ってる。

最初はDockerでいろんなPHPバージョン x WordPressのバージョンの環境をつくろうと考えていたけど自分の最新のWordPress以外では最低バージョンのWordPressとPHPの環境だけあれば大体okなのではと気づいてVagrantに方針変更した。

WP-CLI

VagrantでのプロビジョニングはChef Soloを使って、WordPressのインストールはWP-CLIを使った。PHP5.3.2以上が必要で、WordPress3.5.2以上じゃないと使えないコマンドがあったりするので、PHP5.2.4 + WordPress3.2を用意したいシナリオでは若干工夫が必要ではあるけど。

wp core download --locale=ja --version=3.1みたいにしてインストールできるので特定バージョンでテストしたい時すごく楽。データベースのexportやimportも出来るみたいなので手動でテストするならDockerよりもWP-CLIを駆使する方が便利だと思う。

WordPress 3.1で動かない

いざ環境できてやってみたらWordPress 3.1でAmazonJSが動かないという。wp_footerでスクリプトが出力されていない。3.2でもダメで3.3でようやく動いた。

http://wpdocs.sourceforge.jp/Version_3.3
Support for using wp_enqueue_script() and wp_enqueue_style() in the HTML body; all scripts and styles are added in the footer

AmazonJS 0.4.1くらいでスクリプトをフッタに移動し始めたんだけど、どうやらそれはWordPress 3.3以上じゃないと動かなかった模様。プラグインのWordPress必要最低バージョンを決めるときは使っているAPIのバージョンだけ気にしていたんだけどこういうこともあるということはやっぱりテストは必要。

WordPress 3.3も3年前のバージョンなので頑張って3.1に対応する必要ないかと思って必要最低バージョンを3.3に引き上げた。WordPress 3.2以下でAmazonJSを使いたい人はAmazonJS 0.4くらいだと動くかもしれません。