Samrty5 ライブラリー

Smarty Setting(Smart ini)

Smarty5を利用する場合、通常Composer、オートローダーを介しての初期設定、各ファイル読み込みが必要になります。
一般的なレンタルサーバーでは、コンポ―サーが使えない所がほとんどになります。
「Smarty_init.php」はオートローダー介さずに、Smarty5に必要な設定、読み込みを行う事が出来ます。
また、「SmartyAssign.php」はSmartyを扱う「器(ラッパー)」の機能を持ち合わせています。

機能説明

  • spl_autoload_register によるSmarty5専用の独自オートローダー。
    これにより、通常必要なComposerを要せずにSmartyの初期設定を行います。
  • Smartyの主な関数をラッパーしています。
    アサインも配列、単変数両方に対応。
    基本、このクラス名を使う事で最低限の事は行う事が出来ます。
  • SmartyAssign.phpをコンスタンスすることで、デフォルトでHTMLエスケープするようになります。
    エスケープのON/OFFもこのクラスで行う事が出ますし、通常のescape、nofilterの装飾にも対応します

設置、設定

解凍したファイルを任意のフォルダーに設置

・smarty_init.php
・smartyAssign.php
・var.tpl

設置例
          #それぞれを任意のディレクトリに置く
          /
          ┣ function/
          ┃ ┗ smartyAssign.php
          ┣ library/  
          ┃ ┗ smarty_init.php
          ┣ smarty/ ←Smarty設置ディレクトリ
          ┃ ・
          ┃ ・
          ┣ templates/
          ┃ ┗ var.tpl
          ┣ configure.php
          ┗ index.php
        
設定例 環境に設置パスに合わせて設定してください。
 DIR_PATH ルート(サイトトップ)のフルパスが格納
// 1.Smartyパスの設定
11: $smartyLibDir = DIR_PATH . 'smarty/';  

// 5. 基本ディレクトリ設定
//    テンプレートディレクトリ、コンパイルディレクトリ
35: $templatePath = DIR_PATH . 'templates';
36: $compilePath  = DIR_PATH . 'templates_c';

// 6. SmartyAssign クラスとの連携
42: require_once(FUN_PATH . 'SmartyAssign.php');
43: $smAssign = new SmartyAssign($Smarty);

index.php またはconfigure.phpにsmarty_init.phpの読み込みを記入
include_once(LIB_PATH . 'smarty_init.php');
※ 別途掲載の”configure.php”を参考(設置利用)にされたら、上記の定数が設定されています。

アップデート履歴

Ver 1.3 (2026-05-30):
テンプレートが無い場合、エラーが出るように改良。
Ver 1.2 (2026-03-05):
変数をテンプレートととして、利用できるように関数を追加。
変換用テンプレート var.tpl が必須(ZIPファイルに同梱)
Ver 1.1 (2026-02-28):
htmlエスケープを切り替えする関数の追加。
Ver 1.0 (2026-02-19):
ベースクラス完成