最終更新: 2009-07-08 (水) 23:44:51
このページをDeliciousに追加 このページをはてなブックマークに追加 このページをlivedoor クリップに追加 このページをYahoo!ブックマークに追加

Zend Framework のビュースクリプトの記述を楽にする

目次

概要

Zend Framework のビュースクリプトを楽に書けるようにするコンポーネントです。

  • $this->foo でなく $foo と書くことで変数の値を参照できます *1
  • <?= ... ?> で囲まれた範囲は、自動的に HTML エスケープされます

つまり、標準の Zend_View のビュースクリプトでは、

<?php echo $this->escape($this->foo) ?>

のように書かなければならないところを、このコンポーネントを使えば、

<?= $foo ?>

のように書くことができます。 Zend_View_Abstract クラスを継承しているので、Zend_View のメソッドやヘルパーもそのまま使えます。

インストール

アーカイブをダウンロードし、 include_path の通ったディレクトリで展開して下さい。
(Phtmlc/library のような各アプリケーションの library ディレクトリや、 ZendFramework-1.8.4/library ディレクトリなどで。)

$ cd ZendFramework-1.8.4/library
$ tar xvfz Revulo_View_Phtmlc-0.6.tar.gz

使い方

このコンポーネントは ViewRenderer ヘルパー経由で登録して使います。 例えばブートストラップ (index.php) 中で、 フロントコントローラのインスタンスを作成した後に、 以下のように登録することができます。

$view = new Revulo_View_Phtmlc();
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
$viewRenderer->setView($view);

その他のタイミングで登録したい場合は、 ViewRenderer ヘルパーのマニュアル を参照して下さい。

 

使い方は標準の Zend_View と基本的に同じです。 ただし、表示の HTML エスケープがデフォルトで行われるので、 ビュースクリプトを書く際に、

(HTML エスケープしたい場合)
<?= $foo ?>

(HTML エスケープして欲しくない場合)
<?php echo $foo ?>

のように使い分けて下さい。

設定

標準の Zend_View のオプションに加えて、以下のオプションが設定できます。

  • compilePath (デフォルト: 各モジュールの views/compile ディレクトリ)
    • コンパイルしたビュースクリプトを保存するディレクトリ
  • compileFragments (デフォルト: false)
    • ビュースクリプトを1つにまとめる機能を有効にする

設定するには、setCompilePath(), compileFragments() の各メソッドを用いるか、 コンストラクタのオプションで指定するかして下さい。

サンプル

動作確認用に簡単なサンプルを用意しました。 アーカイブをダウンロードし、適当なディレクトリで展開して下さい。

$ cd Phtmlc
$ tar xvfzp Revulo_Sample_Phtmlc-0.4.tar.gz

あとは http://…/Phtmlc/html/ のような URL にアクセスすれば試すことができます。

ライセンス

MIT ライセンスです。

ダウンロード

履歴

  • Version 0.6 (2009/07/08)
    • キャッシュ用ディレクトリを作成する際のパーミッションを 777 に変更
    • ライセンスを MIT ライセンスに変更
  • Version 0.5 (2008/07/20)
    • キャッシュファイルを保存するディレクトリを compilePath/:module に変更
    • <?=...?> の中に改行が含まれている場合に対応していなかったのを修正
    • ビュースクリプトを trim する処理を削除
  • Version 0.4 (2008/04/19)
    • compileFragments() メソッドを追加し、ビュースクリプトを1つにまとめる機能はデフォルトでは無効に
  • Version 0.3 (2008/03/18)
    • ビュースクリプト内で他のビュースクリプトを $this->render() で読み込んでいる場合、コンパイル時に埋め込んでしまうようにして高速化
  • Version 0.2 (2008/03/16)
    • コンパイルしたビュースクリプトをキャッシュするようにして高速化
  • Version 0.1 (2008/03/15)
    • 初公開

関連ページ

*1 今まで通り $this-> を使った表記も可能です。

(Counter:1, Today:1, Yesterday:0)
トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   最終更新のRSS