ホームページ  >  記事  >  バックエンド開発  >  PHP テンプレート エンジンの原理を詳しく説明した記事 (コード例付き)

PHP テンプレート エンジンの原理を詳しく説明した記事 (コード例付き)

藏色散人
藏色散人転載
2022-08-07 14:59:473587ブラウズ

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 に書き込むことです。このプロセスはコンパイルと呼ばれます。

通常、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が活躍します

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 サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。