ホームページ >バックエンド開発 >PHPチュートリアル >PHP テンプレートを使用するための具体的なガイド Smarty_PHP チュートリアル
通常、私たちの解決策は、アーティストにページをデザインしてもらい、それを開発のためにプログラマーに渡し、プログラマーが慣れていない場合は、それをアーティストに渡してページを改善するという作業を数回繰り返すことです。 HTML の場合、これは双方にとってさらに面倒な作業であり、効率性も低くなります。現時点では、テンプレートのサポートが非常に重要です。
私たちは、オープンソース コミュニティのメンバーとして、PHP 言語が FastTemplate、Smarty、SimpleTemplate などのさまざまなテンプレート エンジンを提供していることを知っています。今日、Smarty は最も一般的に使用されている PHP テンプレート エンジンです。 PHP テンプレート Smarty のインストールと使用は、Smarty の入門として考えることができます。
準備
1. Smartyがインストールされているディレクトリを選択します
サーバー権限がある場合は、セキュリティを考慮して、Webプログラムドキュメントディレクトリの外にSmartyをインストールし、Smartyインストールディレクトリのアドレスを変更することもできます。 PHP.INI ファイルに Include_path オプションを追加します。
仮想ホスト権限または複数のプロジェクトがある場合は、必要な Smarty クラス ファイルで Smarty をインストールし、Smarty テンプレート エンジンを使用することもできます。もちろん、セキュリティ上の理由から、Apache を介した関連ディレクトリへのアクセスを禁止することもできます。
さらに、これら 2 つの PHP テンプレート Smarty のインストール方法は、移植性の点で異なります。最初の方法は各サーバーが同じ Smarty 構成であることを確認する必要がありますが、2 番目の方法は各サーバーの構成に影響を与えません。 Smarty のインストール方法は、必要に応じて選択できます。
2. Smarty をダウンロードします。私は Smarty-2.6.25 を選択しました
PHP テンプレート Smarty のインストール手順
1. ダウンロードした Smarty-2.6.25 圧縮パッケージを解凍します2. WEBプログラムディレクトリ、私のディレクトリはtestmartyです Linuxでのインストール方法はこちらを参照してください。 Smarty テンプレートをインストールした後、簡単に Smarty を使い始めました。PHPテンプレート Smartyの使い方
1. 関連するディレクトリを作成します
Smartyは、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: キャッシュ機能が有効な場合、PHP Template Smarty によってキャッシュされたすべてのテンプレートは、この属性で指定されたディレクトリに配置されます。デフォルトのディレクトリは「./cache」です。つまり、キャッシュ ディレクトリは PHP 実行プログラムと同じディレクトリにあります。独自のカスタム キャッシュ ハンドラーを使用してキャッシュされたファイルを制御することもできます。この場合、この設定は無視されます。同様に、このディレクトリを Linux サーバー上に作成する場合は、書き込み権限を持つようにこのディレクトリの権限を変更する必要もあります。 システムのセキュリティと移植性を考慮して、これらのディレクトリを PHP 実行プログラムと同じディレクトリに作成しないことをお勧めします。PHP 実行プログラムと同じディレクトリに既に確立されている場合は、それらのディレクトリを PHP 実行プログラムのディレクトリの外に作成できます。 Apache を通じて作成できます。ディレクトリへのアクセスを適切に制限してください。2. 関連する設定ファイルを作成します
PHP テンプレート Smarty クラスのデフォルトのメンバー属性をオーバーライドする設定ファイルを作成し、main.php という名前を付けて、smarty ディレクトリに保存する必要があります。将来 Smarty を使用する場合は、main.php をインクルードするだけで済みます。<ol class="dp-xml"> <li class="alt"><span><span class="tag"><</span><span> ? </span></span></li><li><span>include("./smarty/libs/Smarty.class.php"); </span></li><li class="alt"><span>define('SMARTY_ROOT', './smarty/tpls'); </span></li><li><span>$</span><span class="attribute">tpl</span><span> = </span><span class="attribute-value">new</span><span> Smarty(); </span></li><li class="alt"><span>$tpl-</span><span class="tag">></span><span class="attribute">template_dir</span><span> = </span><span class="attribute-value">SMARTY_ROOT</span><span>."/templates/"; </span></span></li> <li> <span>$tpl-</span><span class="tag">></span><span class="attribute">compile_dir</span><span> = </span><span class="attribute-value">SMARTY_ROOT</span><span>."/templates_c/"; </span> </li> <li class="alt"> <span>$tpl-</span><span class="tag">></span><span class="attribute">config_dir</span><span> = </span><span class="attribute-value">SMARTY_ROOT</span><span>."/configs/"; </span> </li> <li> <span>$tpl-</span><span class="tag">></span><span class="attribute">cache_dir</span><span> = </span><span class="attribute-value">SMARTY_ROOT</span><span>."/cache/"; </span> </li> <li class="alt"> <span>$tpl-</span><span class="tag">></span><span class="attribute">caching</span><span>=</span><span class="attribute-value">1</span><span>; </span> </li> <li> <span>$tpl-</span><span class="tag">></span><span class="attribute">cache_lifetime</span><span>=</span><span class="attribute-value">60</span><span>*60*24; </span> </li> <li class="alt"> <span>$tpl-</span><span class="tag">></span><span class="attribute">left_delimiter</span><span> = </span><span class="attribute-value">'< {'</span><span>; </span></li><li><span>$tpl-</span><span class="tag">></span><span class="attribute">right_delimiter</span><span> = </span><span class="attribute-value">'}>'</span><span>; </span> </li> <li class="alt"> <span class="tag">?></span><span> </span> </li> </ol>コメント: 1行目から8行目: 主にsmartyオブジェクトを定義し、テンプレートファイル、コンパイル済みファイル、キャッシュファイル、設定ファイルの保存ディレクトリを設定し、Smarty.classのデフォルト値をオーバーライドします。 php. 行 9 ~ 10: キャッシュを有効にし、キャッシュの有効期間を 1 日に設定します。
知識ポイント: $caching は、キャッシュ機能を有効にするかどうかを設定するために使用されます。デフォルト値は 0 または無効に設定されています。同じテンプレートに複数のキャッシュを設定し、値が 1 または 2 のときにキャッシュを有効にすることもできます。 1 は、現在の $cache_lifetime 変数を使用してキャッシュの有効期限が切れているかどうかを判断するように Smarty に指示します。 2 キャッシュを生成するときに、cache_lifetime 値を使用するように PHP テンプレート Smarty に指示します。プロジェクトの開発中はキャッシュをオフにし、値を 0 に設定することをお勧めします
3、建立一个模板文件
一般情况下在美工页面设计完毕后,双方的交集点是模版文件,双方约定后,程序员不需要花太大的精力在前台,这就是使用Smarty模板引擎进行开发的好处。
我们首先建立一个简单的模版文件,名为leapsoul.tpl,你可在html文件中加入smarty变量后将文件另存为tpl类型的文件。
<ol class="dp-xml"> <li class="alt"><span><span class="tag"><</span><span> </span><span class="tag-name">html</span><span class="tag">></span><span> </span></span></li> <li> <span class="tag"><</span><span> </span><span class="tag-name">head</span><span class="tag">></span><span> </span> </li> <li class="alt"> <span class="tag"><</span><span> </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> <br /></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> </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> /title</span><span class="tag">></span><span> </span> </li> <li class="alt"> <span class="tag"><</span><span> /head</span><span class="tag">></span><span> </span> </li> <li> <span> </span><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> /body</span><span class="tag">></span><span> </span> </li> <li class="alt"> <span class="tag"><</span><span> /html</span><span class="tag">></span><span> </span> </li> </ol>
注释:在这个tpl文件中设定了title和content两个PHP模板Smarty变量,文件保存为leapsoul.tpl,同时将其保存在testsmartytplstemplates模板文件目录下。
4、建立应用程序文件
模版文件类似于一个表现层,在建立完模板文件后,我们需要一个应用程序去驱动表现层,应用程序文件定义为smarty.php。
<ol class="dp-xml"> <li class="alt"><span><span class="tag"><</span><span> ? </span></span></li><li><span>include("smarty/main.php"); </span></li><li class="alt"><span>$tpl-</span><span class="tag">></span><span>assign("title", "leapsoul.cn为你<br>展示smarty模板技术"); </span></span></li> <li> <span>$tpl-</span><span class="tag">></span><span>assign("content", "leapsoul.cn<br>通过详细的安装使用步骤为你展示smarty模板技术"); </span> </li> <li class="alt"> <span>$tpl-</span><span class="tag">></span><span>display("leapsoul.tpl"); </span> </li> <li> <span class="tag">?></span><span> </span> </li> </ol>
注释:
在这段代码中我们主要用到smarty中的两个函数assign和display,assign你可以理解为为变量赋值,display主要是用来将网页输出。更多smarty函数今后会详细介绍。
其他说明
由于我们开启了缓存功能,有兴趣的朋友可以打开cache和templates_c,cache目录存放了这个模板的缓存文件,文件开头部分有缓存信息,如文件的生成时间和过期时间等,其他的和一般的HTML文件没有多大的区别,而templates_c存放了模板经过编译后的PHP执行文件。
至此一个简单入门的PHP模板Smarty应用实例就算介绍完成了。