ホームページ  >  記事  >  バックエンド開発  >  Smarty チュートリアル for PHP Template_PHP チュートリアル

Smarty チュートリアル for PHP Template_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-20 10:57:211003ブラウズ

私たちは、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>
コメント:

1行目から8行目: 主にsmartyオブジェクトを定義し、テンプレートファイル、コンパイル済みファイル、キャッシュファイル、設定ファイルの保存ディレクトリを設定し、Smarty.class.phpのデフォルト値をオーバーライドします。

行 9 ~ 10: キャッシュを有効にし、キャッシュの有効期間を 1 日に設定します。

知識ポイント: $caching は、キャッシュ機能を有効にするかどうかを設定するために使用されます。デフォルト値は 0 または無効に設定されています。同じテンプレートに複数のキャッシュを設定し、値が 1 または 2 のときにキャッシュを有効にすることもできます。 1 は、現在の $cache_lifetime 変数を使用してキャッシュの有効期限が切れているかどうかを判断するように Smarty に指示します。 2 キャッシュを生成するときに、cache_lifetime 値を使用するように Smarty に指示します。プロジェクトの開発中はキャッシュをオフにし、値を 0 に設定することをお勧めします

行 11 ~ 12: Smarty 言語の左右のターミネータを設定します。中括弧が Smarty のデフォルトの区切り文字であることはわかっていますが、これを組み合わせると、 javascript、css など。競合する可能性があるため、ここでは <{and}> に設定します。

3. テンプレート ファイルを作成します

通常、アート ページのデザインが完了した後、両者の合意が得られると、プログラマーはその作業に多大な労力を費やす必要はありません。これがSmartyテンプレートエンジンの開発の利点です。

まず、leapsoul.tpl という名前の単純なテンプレート ファイルを作成します。HTML ファイルに Smarty 変数を追加し、ファイルを tpl タイプのファイルとして保存できます。

<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


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/445775.htmlTechArticle我们知道 PHP 语言作为开源社区的一员,提供了各种模板引擎,如FastTemplate, Smarty ,SimpleTemplate等,而Smarty是现在使用得比较多的PHP模板引...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。