Speedy は、 PHP そのものをテンプレートエンジンとして使う際に便利な関数を集めたライブラリです。 拡張モジュール版と PHP スクリプト版の両方が用意されています。 Speedy は主に以下のような機能を提供してくれます。
この Speedy を Zend Framework で利用するためのコンポーネントを作ってみました。 標準の Zend_View では、
<?php echo $this->escape($this->foo) ?>
のようにビュースクリプトに書かなければなりませんが、このコンポーネントを使えば、
<?=h($foo)?>
のように簡潔に書くことができます *1。 Zend_View_Abstract クラスを継承しているので、Zend_View のメソッドやヘルパーもそのまま使えます *2。
アーカイブをダウンロードし、
include_path の通ったディレクトリで展開して下さい。
(sample/library のような各アプリケーションの library ディレクトリや、
ZendFramework-1.0.2/library ディレクトリなどで。)
$ cd ZendFramework-1.0.2/library $ tar xvfz Revulo_View_Speedy-0.1.tar.gz
さらに、Speedy の拡張モジュールをビルド&インストールして下さい。
$ wget http://www.opendogs.org/pub/php_speedy-0.1.0.tgz $ tar xvfz php_speedy-0.1.0.tgz $ cd php_speedy-0.1.0 $ phpize $ ./configure CFLAGS="-O2" $ make $ sudo make install
拡張モジュールがインストールできない環境の場合は、 Speedy のアーカイブに含まれている speedy.php を、 include_path の通ったディレクトリにコピーして下さい。
省略記法が使えること以外は、標準の Zend_View と使い方は同じです。
このコンポーネントは ViewRenderer ヘルパー経由で登録して使います。 例えばブートストラップ (index.php) 中で、 フロントコントローラのインスタンスを作成した後に、 以下のように登録することができます。
$view = new Revulo_View_Speedy(); $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer'); $viewRenderer->setView($view);
これで、ビュースクリプト内で省略記法が使えるようになります。
その他のタイミングで登録したい場合は、 ViewRenderer ヘルパーのマニュアル を参照して下さい。
動作確認用に簡単なサンプルを用意しました。 アーカイブをダウンロードし、適当なディレクトリで展開して下さい。
$ cd Speedy $ tar xvfz Revulo_Sample_Speedy-0.1.tar.gz
あとは http://…/Speedy/html/ のような URL にアクセスすれば試すことができます。