Simplate のWindows版バイナリビルド

PHPで利用するテンプレートエンジンを探していて
SimplateというSmarty互換のテンプレートエンジンを見つけました。


特徴は、とりあえず速い、ということです。
ベンチによると、Smartyと比べてだいぶ速く動作するみたいですね。
Smartyが機能テンコ盛りなのに対して、機能を削って速く軽くというのがコンセプトのようです。
また、C++で実装されており、PHP Extentionとして動作します。


ということでインストールしてみおう!
と思ったのですが・・・
公式ページの、Windows版dllファイル、リンク切れなんですよね!
情報無いかな〜〜〜と思っていたのですが、見つけることができませんでした。


Simplateアーカイブには VC++で開くことができるプロジェクトファイルが入っています。
VCや、コンパイル周辺の知識はほとんど無いに近しい私ですが、
うーん、なんとかなるかなぁ、と思ってやってみたらなんとかなりました。


このメモを書く上で状況を整理してまとめてみたら、かなりシンプルな手順になりましたorz
これだったらわ、ざわざまとめなくても大丈夫だったかな〜


まず、PCに Microsoft VisualC++ 2008 ExpressEditionをインストールします。
無料で使えてウマウマですね。標準のインストールでいけると思います。(オプションあったかどうか忘れた・・・)


次にSimplateの最新ソースコードと、phpソースコードを取得しておきます。
んで、ソースを展開、ここでは展開先を c:\dev\src\ にしておきますね。
展開のイメージですが
  \dev
    \src
      \php-5.2.5
        \simplate-0.4.0-RC1
          \simplate-0.4.0
という具合で。
phpソースのフォルダの下に、simplateの解凍イメージを放り込んだ形ですね。


リンク段階で php5ts.lib が必要になります。
これ、phpを自前でビルドした場合はソースフォルダ内にあると思うんですが、
ソースコードを展開しただけの場合は、存在しません。
で、どっからとってくるかというと、phpのwin版バイナリに入ってます。
phpのインストールフォルダ内の \dev の中です。
ソレを \src\php-5.2.5\Release_TS\にコピーします。 Release_TSフォルダは作成してください。


それでは準備完了ですので、れっつビルド!
あ、VC++ツールバー内ドロップダウン [Debug] [Win32] を [Release] [Win32] に変更するのをお忘れなく。
変更できたら「ビルド」→「ソリューションのビルド」でOKです。
simplateのフォルダ内 releaseフォルダの中にビルドで生成されたファイルがあります。


あとは php_simplate.dll を phpのextension_dir にコピーして、
php.ini に extension = php_simplate.dll を追加、apache再起動すれば完了です。
phpinfo(); や php -i で simplateの項目が出ていれば成功ですね。
おつかれさまでした。


最近ようやっと EclipsePDTや XDebugを利用したリッチな開発環境に移行できました。
それまでは SakuraEditor で書いて、FFFTPでアップロードして、ページ開いて
エラーログや echo出力とにらめっこするような開発だったので、便利さを痛感しとります。
ただ、どばっと新しいことを取り入れたのでなかなか作業がすすまないorz