php中Smartyテンプレート初体験


Smartyテンプレートエンジンの特性を紹介します。
1.速度:Smartyで作成したプログラムは最大速度の向上を得ることができます。これは他のテンプレートエンジン技術に対してです。
2.コンパイルタイプ:Smartyで作成したプログラムを実行時にテンプレート以外の技術のPHPファイルにコンパイルします。このファイルはPHPとHTMLを混ぜた方式を採用しています。次の訪問時にWEB要求を直接このファイルに変換して、テンプレートの再編集を行わないようにします。(ソースプログラムが変更されていない場合)
3.キャッシュ技術:Smartyが選択したキャッシュ技術は、ユーザが最終的に見たHTMLファイルを静的なHTMLページにキャッシュすることができ、Smartyのcache属性をtrueとすると、Smartyが設定したcachetime期間内にユーザのWEB要求をこの静的なHTMLファイルに直接変換することができ、これは静止したHTMLファイルに相当する。
4.プラグイン技術:Smartyはプラグインをカスタマイズできます。プラグインは実際にいくつかのユーザー定義の関数です。
5.テンプレートにはif/elseif/else/endifが使用できます。テンプレートファイルで判定文を使うと、テンプレートの並べ替えが非常に便利です。
SmartyテンプレートバージョンSmarty-3.0.8を使用して、解凍後のファイルディレクトリは以下の通りです。

そこで私のスマート旅行が始まりました。
Step 1
サーバーのウェブフォルダにsmartytestフォルダを作成し、libsディレクトリのファイルだけを取ってsmartytestフォルダにコピーしてsmartyと改名します。
Step 2
testにディレクトリtemplatesを新規作成し、このディレクトリの下に4つのフォルダcache、configs、templates、templates_を新規作成します。c,作成したフォルダ形式は以下の図の通りです。

Step 3
構成ファイルを書くとSmartyとの接続ができます。また別のファイルに書くと同じコードを繰り返し書いてもいいです。ここではファイル名をconfig.php
 
<?php
// H:\wamp\www\smartytest\
define('SMARTY_PATH',substr(dirname(__FILE__),0,-9));
// templates H:\wamp\www\smartytest\templates
define('TEMPLATES_PATH',SMARTY_PATH.'templates/');
require SMARTY_PATH.'smarty/Smarty.class.php';
$smarty = new Smarty;
//
$smarty->template_dir = TEMPLATES_PATH.'templates/';
$smarty->complile_dir = TEMPLATES_PATH.'templates_c/';
$smarty->config_dir = TEMPLATES_PATH.'configs/';
$smarty->cache_dir = TEMPLATES_PATH.'cache/';
// {% %}
$smarty->left_delimiter = '{%';
$smarty->right_delimiter = '%}';
//
$smarty->caching = false;
//
$smarty->debugging = false;
?>
Step 4として簡単なテンプレートファイルをindex.tplといいます。templates\templatesディレクトリに置いて
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type" content="text/html;charset=utf-8">
<title>Smarty</title>
</head>
<body>{%$hello%}</body>
</html>
Step 5にPHPファイルを書いて、index.phpと命名して、templatesファイルディレクトリの下に置いてください。

Step 6
テストファイル:
  

まとめ:Smartyテンプレートを使う過程でも問題が発生しました。例えばSmartyのカタログは自分で設定できます。カスタマイズ性が強いので、Smartyの教程には多くのバージョンがあります。最後は百度百科を使っています。次は百度百科事典のコードをコピーしましたが、結果としては、使用時にsyntax error、unexpected T_が現れました。VALLIABLEは間違っています。コードを見ていても正しいです。つまり間違いです。最後に原因を調べます。ウェブページの全角スペースが原因です。だから、ウェブページにコピーしたコードの不可解な誤りは一番いい方法はスペースを全部書き直すことです。注意PHPファイルを書く時はハローは前の$記号がなく、tplファイルで引用する時は必ず$印を付けなければなりません。