Skip to content

kohenji01/CI4Smarty

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Smarty for CodeIgniter4

CodeIgniter4用のSmarty組み込みです。

Install

Composerで導入可能です。CI4やSmartyも予めComposerでインストールしておいてください。

$ composer require sarah-systems/ci4smarty

Usage

デフォルトでは、Smarty関連のパスは自体は次のような設定で動作するようになっています。

種類 パス
テンプレート app/Views
コンパイル writable/smarty/templates_c
キャッシュ writable/smarty/cache
コンフィグ writable/smarty/config

writableが正しく書き込み可能な場合、下の3つのディレクトリは自動的に生成されます。 もしエラーが起きた場合は、これらのディレクトリを作って適切なパーミッションを与えることで動作します。

もしこのパスを変更したい場合は.envファイルに次のパラメータをセットすることで、任意のパスに変更可能です。

CI4Smarty.TemplateDir = /path/to/TemplateDir
CI4Smarty.CompileDir = /path/to/CompileDir
CI4Smarty.LeftDelimiter = {{
CI4Smarty.RightDelimiter = }}
CI4Smarty.CacheDir = /path/to/CacheDir
CI4Smarty.ConfigDir = /path/to/ConfigDir

これ以外にも.envでは、SmartyのDebugフラグのOn/Offとデフォルトのテンプレート拡張子を設定できます。

CI4Smarty.Debug = 1 または 0
CI4Smarty.DefaultTemplateExtension = .tpl

view()

CI4のview関数をSmarty用にCI4Smartyというnamespaceで定義しています。

利用する際はappディレクトリ直下のCommon.phpに次を追記してください。

require_once ROOTPATH . "vendor/sarah-systems/ci4smarty/src/Common.php";

使用法はCI4のview関数と同じですが、関数の利用時には名前空間を指定するか、事前にエイリアスを張ってください。

\CI4Smarty\view('template.tpl');

または

use function CI4Smarty\view as view;
view('template.tpl');

拡張子.tplCI4Smarty.DefaultTemplateExtensionで設定されたものです。無指定の場合は.tpl)は省略可能です。

view('template');

view関数の第2パラメータはSmarty変数$CIにアサインされます。

$data = [ 'apple' , 'banana' , 'lemon' ];
view('template',$data);

Smartyのtemplate上では

{$CI.0} <-- appleが表示されます。

第3引数の$optionsは無視されます。

Service

CI4のServiceが利用可能です。

use CI4Smarty\Config\Services;

$time = date('Y-m-d H:i:s');
$smarty = Services::smarty();
$smarty->assign('time',$time);
$smarty->display('template.tpl');

License

The source code is licensed MIT. The website content is licensed CC BY 4.0,see LICENSE.