私たちは、PHP 言語がオープンソース コミュニティのメンバーとして、FastTemplate、Smarty、SimpleTemplate などのさまざまなテンプレート エンジンを提供していることを認識しています。Smarty は現在最も一般的に使用されている PHP テンプレート エンジンです。今日はそれを共有します。PHP 開発で Smarty をインストールして使用する方法は、Smarty の入門とみなすことができます。
1.準備
1.Smartyがインストールされているディレクトリを選択します
セキュリティを考慮して、SmartyをWEBプログラムドキュメントディレクトリの外にインストールすることを選択できます。アドレスは、PHP.INI ファイルの include_path オプションに含まれています。
仮想ホスト権限または複数のプロジェクトがある場合は、必要な Smarty クラス ファイルで Smarty をインストールし、Smarty テンプレート エンジンを使用することもできます。もちろん、セキュリティ上の理由から、Apache を介した関連ディレクトリへのアクセスを禁止することもできます。
さらに、2 つの Smarty インストール方法は移植性の点で異なります。最初の方法は各サーバーが同じ Smarty 構成であることを確認する必要がありますが、2 番目の方法は各サーバーの構成に影響を与えません。 Smarty のインストール方法は、必要に応じて選択できます。
2. Smarty をダウンロードするには、ここをクリックしてください。Smarty-2.6.25 を選択しました
1. ダウンロードした Smarty-2.6.25 圧縮パッケージを解凍します2.それを WEB プログラム ディレクトリにクリップします。私のディレクトリは testmarty です Linux でのインストール方法については、ここを参照してください。 Smarty テンプレートをインストールした後、簡単に Smarty を使い始めました。3. Smarty の使用
1. 関連するディレクトリを作成します
Smarty の使用中にコンパイル済みのテンプレート ファイルやその他の設定ファイル、キャッシュ ファイルが生成されるため、関連するディレクトリを作成する必要があります。 testmarty ディレクトリ内に別の tpls ディレクトリを作成し、tpls ディレクトリ内にテンプレート、templates_c、configs、およびキャッシュ ディレクトリを作成しました。なぜこれらのディレクトリを作成する必要があるのでしょうか? Smarty.class.php ファイルを開くと、Smarty クラスがいくつかのメンバー属性を定義していることがわかります。 $template_dir: すべてのテンプレート ファイルを配置する必要があるディレクトリ アドレスを設定します。デフォルトでは、ディレクトリは「./templates」です。つまり、テンプレート ディレクトリは PHP 実行プログラムと同じディレクトリにあります。 $compile_dir: Smarty によってコンパイルされたすべてのテンプレート ファイルの保存ディレクトリ アドレスを設定します。デフォルトのディレクトリは「./templates_c」です。つまり、コンパイル ディレクトリは PHP 実行プログラムと同じディレクトリにあります。 Linux サーバー上にこのディレクトリを作成する場合は、書き込み権限を持つようにこのディレクトリの権限を変更する必要もあります。 $config_dir: テンプレートの特別な設定ファイルを保存するために使用するディレクトリを設定します。デフォルトのディレクトリは「./configs」です。つまり、設定ディレクトリは PHP 実行プログラムと同じディレクトリにあります。 $cache_dir: キャッシュ機能が有効な場合、Smarty によってキャッシュされたすべてのテンプレートは、この属性で指定されたディレクトリに配置されます。デフォルトのディレクトリは「./cache」です。つまり、キャッシュ ディレクトリは PHP 実行プログラムと同じディレクトリにあります。独自のカスタム キャッシュ ハンドラーを使用して、この設定を無視してキャッシュされたファイルを制御することもできます。同様に、このディレクトリを Linux サーバー上に作成する場合は、書き込み権限を持つようにこのディレクトリの権限を変更する必要もあります。 システムのセキュリティと移植性を考慮して、これらのディレクトリを PHP 実行プログラムと同じディレクトリに作成しないことをお勧めします。PHP 実行プログラムと同じディレクトリに既に確立されている場合は、それらのディレクトリを PHP 実行プログラムのディレクトリの外に作成できます。 Apache を通じて作成できます。ディレクトリへのアクセスを適切に制限してください。 2. 関連する設定ファイルを作成しますSmarty クラスのデフォルトのメンバー プロパティをオーバーライドするための設定ファイルを作成し、main.php という名前を付けて、Smarty を使用する必要があるスクリプトに保存する必要があります。将来的には、メインを追加するだけで済みます。 .php をインクルードするだけです。<ol class="dp-c"> <li class="alt"><span><span><? </span></span></li><li><span class="keyword">include</span><span>(</span><span class="string">"./smarty/libs/Smarty.class.php"</span><span>); </span></li><li class="alt"><span>define(</span><span class="string">'SMARTY_ROOT'</span><span>, </span><span class="string">'./smarty/tpls'</span><span>); </span></li><li><span class="vars">$tpl</span><span> = </span><span class="keyword">new</span><span> Smarty(); </span></li><li class="alt"><span class="vars">$tpl</span><span>->template_dir = SMARTY_ROOT.</span><span class="string">"/templates/"</span><span>; </span></span></li> <li> <span class="vars">$tpl</span><span>->compile_dir = SMARTY_ROOT.</span><span class="string">"/templates_c/"</span><span>; </span> </li> <li class="alt"> <span class="vars">$tpl</span><span>->config_dir = SMARTY_ROOT.</span><span class="string">"/configs/"</span><span>; </span> </li> <li> <span class="vars">$tpl</span><span>->cache_dir = SMARTY_ROOT.</span><span class="string">"/cache/"</span><span>; </span> </li> <li class="alt"> <span class="vars">$tpl</span><span>->caching=1; </span> </li> <li> <span class="vars">$tpl</span><span>->cache_lifetime=60*60*24; </span> </li> <li class="alt"> <span class="vars">$tpl</span><span>->left_delimiter = </span><span class="string">'<{'</span><span>; </span></li><li><span class="vars">$tpl</span><span>->right_delimiter = </span><span class="string">'}>'</span><span>; </span> </li> <li class="alt"><span>?> </span></li> </ol>
<ol class="dp-xml"> <li class="alt"><span><span class="tag"><</span><span class="tag-name">html</span><span class="tag">></span><span> </span></span></li> <li> <span class="tag"><</span><span class="tag-name">head</span><span class="tag">></span><span> </span> </li> <li class="alt"> <span class="tag"><</span><span class="tag-name">meta</span><span> </span><span class="attribute">http-equiv</span><span>=</span><span class="attribute-value">"Content-type"</span><span> </span><span class="attribute">content</span><span>=</span><span class="attribute-value">"text/html; charset=gb2312"</span><span class="tag">></span><span> </span> </li> <li> <span class="tag"><</span><span class="tag-name">title</span><span class="tag">></span><span> </span> </li> <li class="alt"> <span class="tag"><</span><span>{ $title }</span><span class="tag">></span><span> </span> </li> <li> <span class="tag"></</span><span class="tag-name">title</span><span class="tag">></span><span> </span> </li> <li class="alt"> <span class="tag"></</span><span class="tag-name">head</span><span class="tag">></span><span> </span> </li> <li> <span class="tag"><</span><span class="tag-name">body</span><span class="tag">></span><span> </span> </li> <li class="alt"> <span class="tag"><</span><span>{ $content }</span><span class="tag">></span><span> </span> </li> <li> <span class="tag"></</span><span class="tag-name">body</span><span class="tag">></span><span> </span> </li> <li class="alt"> <span class="tag"></</span><span class="tag-name">html</span><span class="tag">></span><span> </span> </li> </ol>
注释:在这个tpl文件中设定了title和content两个smarty变量,文件保存为leapsoul.tpl,同时将其保存在testsmartytplstemplates模板文件目录下。
4、建立应用程序文件
模版文件类似于一个表现层,在建立完模板文件后,我们需要一个应用程序去驱动表现层,应用程序文件定义为smarty.php。
<ol class="dp-c"> <li class="alt"><span><span><? </span></span></li><li><span class="keyword">include</span><span>(</span><span class="string">"smarty/main.php"</span><span>); </span></li><li class="alt"><span class="vars">$tpl</span><span>->assign(</span><span class="string">"title"</span><span>, </span><span class="string">"leapsoul.cn为你展示smarty模板技术"</span><span>); </span></span></li> <li> <span class="vars">$tpl</span><span>->assign(</span><span class="string">"content"</span><span>, </span><span class="string">"leapsoul.cn通过详细的安装使用步骤为你展示smarty模板技术"</span><span>); </span> </li> <li class="alt"> <span class="vars">$tpl</span><span>->display(</span><span class="string">"leapsoul.tpl"</span><span>); </span> </li> <li><span>?> </span></li> </ol>
注释:
在这段代码中我们主要用到smarty中的两个函数assign和display,assign你可以理解为为变量赋值,display主要是用来将网页输出。更多smarty函数今后会详细介绍。
其他说明
由于我们开启了缓存功能,有兴趣的朋友可以打开cache和templates_c,cache目录存放了这个模板的缓存文件,文件开头部分有缓存信息,如文件的生成时间和过期时间等,其他的和一般的HTML文件没有多大的区别,而templates_c存放了模板经过编译后的PHP执行文件。
至此一个简单入门的Smarty模板应用实例就算介绍完成了。
原文地址:http://www.leapsoul.cn/?p=405