関数・クラス解説

Yaf_Dispatcher::setView

version:Yaf >=1.0.0 (公式)

カスタムビューエンジンを設定する

公式リファレンス

書式

public Yaf_Dispatcher::setView ( Yaf_View_Interface $view ) : Yaf_Dispatcher

説明

このメソッドは、Yaf_View_Simple ではなくカスタムビューエンジンを使いたいときに利用します。

パラメータ

view
Yaf_View_Interface のインスタンス。

サンプル

例1 カスタムビューエンジンの例

require "/path/to/smarty/Smarty.class.php"; class Smarty_Adapter implements Yaf_View_Interface {     /**      * Smarty オブジェクト      * @var Smarty      */     public $_smarty;       /**      * コンストラクタ      *      * @param string $tmplPath      * @param array $extraParams      * @return void      */     public function __construct($tmplPath = null, $extraParams = array()) {         $this->_smarty = new Smarty;           if (null !== $tmplPath) {             $this->setScriptPath($tmplPath);         }           foreach ($extraParams as $key => $value) {             $this->_smarty->$key = $value;         }     }       /**      * テンプレートへのパスを設定する      *      * @param string $path パスに設定するディレクトリ      * @return void      */     public function setScriptPath($path)     {         if (is_readable($path)) {             $this->_smarty->template_dir = $path;             return;         }           throw new Exception('Invalid path provided');     }       /**      * 変数をテンプレートに代入する      *      * @param string $key 変数名      * @param mixed $val 変数の値      * @return void      */     public function __set($key, $val)     {         $this->_smarty->assign($key, $val);     }       /**      * empty() と isset() による確認をできるようにする      *      * @param string $key      * @return boolean      */     public function __isset($key)     {         return (null !== $this->_smarty->get_template_vars($key));     }       /**      * オブジェクトのプロパティを unset() できるようにする      *      * @param string $key      * @return void      */     public function __unset($key)     {         $this->_smarty->clear_assign($key);     }       /**      * 変数をテンプレートに代入する      *      * 指定したキーに値を代入したり、      * key => value ペアの配列で一括代入したりできるようにします。      *      * @see __set()      * @param string|array $spec 代入方法に合わせて、キー あるいは key => value ペアの配列)      * @param mixed $value (オプション) 変数名を指定した場合に、ここで値を指定する      * @return void      */     public function assign($spec, $value = null) {         if (is_array($spec)) {             $this->_smarty->assign($spec);             return;         }           $this->_smarty->assign($spec, $value);     }       /**      * 代入済みのすべての変数をクリアする      *      * {@link assign()} あるいはプロパティのオーバーロード      * ({@link __get()}/{@link __set()}) で Yaf_View に代入したすべての変数をクリアします      *      * @return void      */     public function clearVars() {         $this->_smarty->clear_all_assign();     }       /**      * テンプレートを処理して出力を返す      *      * @param string $name 処理するテンプレート      * @return string 出力      */     public function render($name, $value = NULL) {         return $this->_smarty->fetch($name);     }     public function display($name, $value = NULL) {         echo $this->_smarty->fetch($name);     } }

例2 Yaf_Dispatcher::setView() の例

class Bootstrap extends Yaf_Bootstrap_Abstract {     /**      * smarty 用の設定をしておきます      *      * smarty.left_delimiter   = "{{"      * smarty.right_delimiter  = "}}"      * smarty.template_dir     = APPLICATION_PATH "/views/scripts/"      * smarty.compile_dir      = APPLICATION_PATH "/views/templates_c/"      * smarty.cache_dir        = APPLICATION_PATH "/views/templates_d/"      *      */     public function _initConfig() {         $config = Yaf_Application::app()->getConfig();         Yaf_Registry::set("config", $config);     }     public function _initLocalName() {         /** Smarty_Adapter クラスをローカルライブラリディレクトリに配置します */         Yaf_Loader::getInstance()->registerLocalNamespace('Smarty');     }     public function _initSmarty(Yaf_Dispatcher $dispatcher) {         $smarty = new Smarty_Adapter(null, Yaf_Registry::get("config")->get("smarty"));         $dispatcher->setView($smarty);         /* これで、Smarty ビューエンジンが Yaf のデフォルトビューエンジンになりました */     } }

参考

  • Yaf_View_Interface
  • Yaf_View_Simple
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール