facebook twitter hatena line email

「Php/Smarty/2から3へ移行」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(カスタム設定例)
行29: 行29:
 
     $this->setCompileDir(__DIR__ . "/../views/templates_c");
 
     $this->setCompileDir(__DIR__ . "/../views/templates_c");
 
     $this->setCacheDir(__DIR__ . "/../views/cache/");
 
     $this->setCacheDir(__DIR__ . "/../views/cache/");
 +
    $this->addPluginsDir(SMARTY_PLUGINS_DIR);
 
     $this->addPluginsDir(__DIR__ . '/smartyPlugins');
 
     $this->addPluginsDir(__DIR__ . '/smartyPlugins');
 
     $this->Smarty();
 
     $this->Smarty();

2015年8月5日 (水) 04:20時点における版

基本的なところはここを見る

http://nplll.com/archives/2010/04/smarty2_3.php

自分メモはこちら

$smarty->template_dirがpublicからprivateへ

$smarty->setTemplateDir($template_dir); 設定
$smarty->getTemplateDir(); 取得

$smarty->compile_dirがpublicからprivateへ

$smarty->setCompileDir(compile_dir); 追加設定
$smarty->getCompileDir(); 取得

$smarty->cache_dirがpublicからprivateへ

$smarty->setCacheDir(compile_dir); 追加設定
$smarty->getCacheDir(); 取得

$smarty->plugins_dir[]がpublicからprivateへ

$smarty->addPluginsDir($plugins_dir); 追加設定
$smarty->getPluginsDir(); 取得

カスタム設定例

class MySmarty extends Smarty
{
  public function __construct() {
    $this->debugging = false;
    $this->left_delimiter = '{{';
    $this->right_delimiter = '}}';
    $this->setTemplateDir(__DIR__ . "/../views/templates");
    $this->setCompileDir(__DIR__ . "/../views/templates_c");
    $this->setCacheDir(__DIR__ . "/../views/cache/");
    $this->addPluginsDir(SMARTY_PLUGINS_DIR);
    $this->addPluginsDir(__DIR__ . '/smartyPlugins');
    $this->Smarty();
  }
}

phpをコード内で実行する場合

Smarty.class.phpでなくSmartyBCを使う&PHP_ALLOWを設定する

require_once __DIR__ . '/smarty/libs/SmartyBC.class.php';
$smarty = new SmartyBC();
$smarty->php_handling = Smarty::PHP_ALLOW;