ホームページ >バックエンド開発 >PHPチュートリアル >PHP テンプレート エンジンを手動で開発する 1 (35)
このテンプレートは TPL と呼ばれ、smarty テンプレート エンジンをモデルにしています。
私たちがテンプレートと呼ぶものは Web テンプレートであり、主に HTML マークアップで構成される言語で記述されたページですが、動的に生成されたコンテンツ (タグの解析) を表現する方法も備えています。テンプレート エンジンは、テンプレートから HTML コードを生成し、含める動的コンテンツを指定できるソフトウェア ライブラリです。
2. 分業を促進する: プログラマーとアーティストが自分の設計に集中できるようにします。
3. PHP よりも解析が簡単: コンパイルされたファイルとキャッシュされたファイルは読み込みが速く、占有するリソースが少なくなります。
FastTemplate など、チームによって特別に開発された多くのテンプレート エンジンがあります。これらのテンプレート エンジンを直接使用すると、上記の機能の多くを完全に実現できます。ただし、初心者の場合、テンプレート エンジンの原理を理解することで、テンプレートを使用する必要がある理由をより深く理解できるようになります。
3 TPL テンプレートのフローチャート
a)ビジネスロジックを記述するために使用されるindex.phpメインファイル。 b) template.inc.php テンプレート初期化ファイル。初期テンプレート情報に使用されます。
c) テンプレート ディレクトリには、すべてのテンプレート ファイルが保存されます。d) templates_c ディレクトリには、コンパイルされたすべてのファイルが保存されます。
e) キャッシュ ディレクトリにはすべてのキャッシュ ファイルが保存されます。f) には、すべてのクラス ファイルが格納されるディレクトリが含まれます。
g) config ディレクトリには、テンプレート システム変数設定ファイルが保存されます。
2. ウェブサイトのルートディレクトリにある Index.php ファイルのコード
<span>//</span><span>设置编码为utf-8</span>header(<span>'</span><span>Content-Type:text/html;charset=utf-8</span><span>'</span><span>); </span><span>//</span><span>网站根目录</span>define(<span>'</span><span>ROOT_PATH</span><span>'</span><span>,dirname(__FILE__)); </span><span>//</span><span>存放模板文件夹</span>define(<span>'</span><span>TPL_DIR</span><span>'</span>,ROOT_PATH.<span>'</span><span>/templates/</span><span>'</span><span>); </span><span>//</span><span>编译文件夹</span>define(<span>'</span><span>TPL_C_DIR</span><span>'</span>,ROOT_PATH.<span>'</span><span>/templates_c/</span><span>'</span><span>); </span><span>//</span><span>缓存文件夹</span>define(<span>'</span><span>CACHE_DIR</span><span>'</span>,ROOT_PATH.<span>'</span><span>/cache/</span><span>'</span>);
<span>//</span><span>创建一个构造方法</span><span>public</span><span> function __construct() { </span><span>//</span><span>验证一下目录是否存在</span><span>if</span> (!is_dir(TPL_DIR) || !is_dir(TPL_C_DIR) || !<span>is_dir(CACHE_DIR)) { exit(</span><span>'</span><span>ERROR:模板文件夹或者编译文件夹或者缓存文件夹没有创建!</span><span>'</span><span>); } }</span>4 includes 内のテンプレートclass.php—.tpl テンプレート ファイルをロードするための display() メソッドを作成しますこれは、samrty の表示プロトタイプ メソッドでもあります
<span>//</span><span>将模板导入到php文件中</span><span>public</span><span> function display($_file) { </span><span>//</span><span>设置模板文件的路径</span> $_tplFile =<span> TPL_DIR.$_file; </span><span>//</span><span>判断模板文件是否存在</span><span>if</span> (!<span>file_exists($_tplFile)) { exit(</span><span>'</span><span>ERROR:模板文件不存在!</span><span>'</span><span>); } </span><span>//</span><span>设置编译文件的文件名</span> $_parFile = TPL_C_DIR.md5($_file).$_file.<span>'</span><span>.php</span><span>'</span><span>; </span><span>//</span><span>判断编译文件是否存在,模板文件是否修改过</span><span>if</span> (!file_exists($_parFile) || filemtime($_parFile) <<span> filemtime($_tplFile)) { </span><span>//</span><span>生成编译文件</span><span> file_put_contents($_parFile,file_get_contents($_tplFile)); } </span><span>//</span><span>载入编译文件</span><span> include $_parFile; } </span><span>//</span><span>引入模板类</span>require ROOT_PATH.<span>'</span><span>/includes/Template.class.php</span><span>'</span><span>; </span><span>//</span><span>实例化模板类</span>$_tpl = <span>new</span><span> Template(); </span><span>//</span><span>载入index.tpl</span>$_tpl->display(<span>'</span><span>index.tpl);</span>続きます
上記は、PHP テンプレート エンジン 1 (35) の手動開発を内容の側面も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。