Web プロジェクトの開発は通常 2 つの部分に分かれており、1 つは HTML、CSS、JS を使用して記述される GUI、つまりインターフェイスとアートであり、もう 1 つはビジネス ロジック、つまりプログラムと関数で記述されます。 PHPを使用して。テンプレート エンジンは 2 つの部分を接続する「ブリッジ」であり、PHP の元の出力をインターフェイス スタイルにロードして出力するための多くのメソッドを定義する PHP クラスとして理解できます。
<?php $title = “标题”; $content = “内容”; ?> <html> <head><title><?php echo $title; ?></title></head> <body><?php echo $content; ?></body> </html>
このように、アートとロジックの間に分離はありません。簡単に言うと、PHP プログラマーはプログラムを書くだけでなく、これは多くの場合非常に難しいため、作品の 2 つの部分を分離する必要があります。
テンプレート エンジンの原理をよりよく理解するために、例として単純なテンプレート エンジンを作成してみましょう。
前に述べたように、Web プロジェクトの開発は GUI とビジネス ロジックの 2 つの部分に分かれているため、2 つのフォルダーを作成します。1 つはテンプレートを保存する「templates」という名前で、新しい tpl.html ファイルを作成し、ビジネスロジックを格納する「PHP」の場合、index.phpファイルを新規作成します。
tpl.html ファイル コードは通常次のようになります:
<html> <head><title><{$title}></title></head> <body><{ $content;}></body> </html>
以前のコードと比較すると、tpl.html には HTML コードのみが含まれ、php コードが含まれていないことがわかりますが、新しいコードには php コードが含まれています。タグが追加された場合、このタイプのタグは自分で定義し、その内容はテンプレート エンジンによってコンパイルされた後でのみ認識できます。コンパイルされたファイルは「templates_c」フォルダーに保存されます。このファイルは主にインターフェイスの設計に使用され、CSS、JS、その他のテクノロジが多数使用されます。
現時点では、tpl.html とindex.php はまだ分離されており、互いに干渉しないため、「ブリッジ」接続、つまり実際には PHP クラスであるテンプレート エンジンが必要です。ここで mytpl を作成できます。PHP ファイル class.php。
mytpl.class.php ファイルは通常、クラス MyTpl を定義します。tpl.html のカスタム コンテンツ タグのパラメータを保存するには、配列 tpl_var[] をクラス内で定義する必要があります。また、いくつかのメソッドこれらのメソッドの主な目的は、tpl.hml 内の認識されないコンテンツ タグを PHP ステートメントに変換し、それを「templates_c」フォルダー内の tpl_c.html に書き込むことです。このプロセスはコンパイルと呼ばれます。
<html> <head><title><?php echo $this->tpl_var[“title”]; ?></head> <body><?php echo $this->tpl_var[“content”]; ?}></body> </html>
カスタム コンテンツ タグが PHP ステートメントに置き換えられているため、上記のコードが認識できることがわかります。 title と content の値が何なのかはまだ分かりませんが、この時、先ほど作成したindex.phpが活躍します
include “tpl.class.php文件”;//加载模板引擎 $tpl = new MyTpl();//实例化一个模板类 $title = “标题”; $content = “内容”; $tpl->assign(“title”,$title);//调用模板类中的方法,分配变量 $tpl->assign(“content”,$content); $tpl->display(“tpl.html”);//调用模板类中的方法,用于显示编译后的内容
上記のコードは単なる説明コードです。変数の値は直接定義することも、データベースから取得することもできます。また、このファイルには複雑な PHP プログラムを記述することもできます。前述のビジネスのロジック。
これにより、GUI とビジネス ロジックの作業が分離され、アート デザイナーは Web インターフェイスを変更するためのテンプレート ファイルを作成するだけで済み、PHP プログラマーは独自のプログラムの作成に集中できます。
企業は通常、独自のテンプレート エンジンを持っており、Smarty などの非常に成熟したテンプレート エンジンが市場にすでに存在しているため、通常はテンプレート エンジンを自分で記述する必要はありません。それを使うだけで十分です。
推奨学習: 「PHP ビデオ チュートリアル 」
以上がPHP テンプレート エンジンの原理を詳しく説明した記事 (コード例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。