ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルでのテンプレートの使用方法

PHP_PHP チュートリアルでのテンプレートの使用方法

WBOY
WBOYオリジナル
2016-07-21 15:52:01904ブラウズ

なぜ FastTemplate を使用する必要があるのか​​疑問に思われるかもしれません。

・サイト全体の外観を数秒で変更できます
・抽象的なプログラミング、ジャンク HTML コードは不要
・デザイナーは「わかりにくい」コードをすべて気にする必要がありません
・驚くほど高速
・古いテンプレートの再利用が簡単 (通常の形式の場合)

FastTemplate は、同じ名前の Perl パッケージから派生しています (CPAN で見つけることができます)。 PHP 版はホームページからダウンロードできます (このサイトのダウンロード アドレスは http://www.phpe.net/downloads/1.shtml)。必要なのはクラス ファイル (class.FastTemplate.php) の 1 つだけです。



まず、テンプレートを使用してページを生成することと、単に echo や print でページを出力することの違いについて説明します。
単に echo/print メソッドを使用することは、短いスクリプトを作成するのには最適ですが、スクリプトをより適切に整理したりカスタマイズしたりするのには役立ちません。一方、テンプレートを使用すると、パラメーターを 1 つ変更するだけで多言語サイトを作成できます。彼らはあなたに、自分がしなければならないことにもっと気を配るよう促すことができます。



コーディングを始める前に考えることを恐れないでください。時間はかかるかもしれませんが、プロジェクトが成長するにつれてコストは回収されます。



それでは、FastTemplateを適用するにはどうすればよいでしょうか?まず、簡単な呼び出しを行う必要があります:



すべてのテンプレート ファイルが保存されているディレクトリを渡します。パラメータを割り当てたり、ページを生成したりするために使用できるオブジェクトを返します。

FastTemplate は、大きなページが多くの小さな部分で構成されているという前提に基づいています。各パーツには固有の
名前が付いています。最も小さな部分は、それを一意の名前を持つ通常のテキスト文字列に割り当てることです。これは
$tpl->assign(NAME, "text"); を通じて実行できます。これで、テンプレートの 1 つに {NAME} が含まれている場合、FastTemplate は
の意図を認識します。


さらに、FastTemplate は、テンプレートを呼び出す方法を知る必要があります。連想配列
define() ?> に渡してヒントを与える必要があります。
以下は引用内容です:
$tpl->define(array(foo => "foo.tpl",
bar => "bar.tpl"));

これらの代入により、foo と bar にそれぞれ異なるファイル (foo.tpl と bar.tpl という名前) が与えられます。

ここで、FastTemplate でテンプレート foo 内のすべての {MACROS} を対応する値に置き換えます。コマンド

を発行すると、引用された内容が次のようになります:
$tpl->parse(PAGECONTENT, "foo");このコマンドは、テンプレート「foo」のコンテンツを PAGECONTENT に割り当てます。もちろん、テンプレート バーはメイン ページ定義であり、FastTemplate はその中の
{PAGECONTENT} マクロを置き換える必要があるため、まだ完了していません。また、次のように PAGETITLE に値を割り当てる必要があります。
以下は引用された内容です:
$tpl->assign(PAGETITLE, "FooBar test");
$tpl->parse( MAIN, " bar");

簡単ですね。 $tpl->FastPrint(MAIN);
?>
次の 3 つのファイルは、実際の演習のより詳細な説明を示しています。実生活でこのテクノロジーがなかったらどうやって生きていけばいいのかわかりません --
より短い時間でより多くのことができるので、デザイナーは満足し、上司は笑顔になるでしょう。



以下は引用内容です:
bar.tpl

Feature world - {PAGETITLE}< / TITLE></HEAD> <br><BODY BLACK TEXT=WHITE> <br>{PAGECONTENT} <br></BODY> .tpl --> <br><br>明らかに何も行われていません。{NAME} を参照してください: <br><br><br><br>demo.php3 <br><?php <BR>$tpl = new FastTemplate("."); tpl ->define(array(foo => "foo.tpl", bar => "bar.tpl")); <br><br>$tpl->assign(NAME, "me"); > ;assign(PAGETITLE, "ようこそ!"); <br><br> <br><br><br>$tpl->parse(PAGECONTENT, "foo"); <br><br> <br><br> $ tpl->FastPrint(MAIN); <br>?> <br><br>テーブル全体を作成する <br> 単一行のテンプレートを使用してテーブル全体を生成する方法を示す短い例も書きました。 HTML ドキュメントを直接変更する必要がないため、効率的です。 <br><br> <br><br> 既に定義されている一意の名前の後ろにテンプレートの内容を追加して、HTML テーブルを作成します。これは、<br>$tpl->parse() を呼び出すときにテンプレート名の前に「.」を追加することで実現できます。 <?php <BR>// テンプレート foo の内容を TPL1 に割り当てます <br>$tpl->parse(TPL1, "foo"); <br><br>// テンプレート bar の内容を TPL1 の後に添付します <br>$tpl->parse ( TPL1, ".bar"); <BR>?> <br><br>page.tpl <br><br> <br><br><br>以下参照内容: <br><HEAD><TITLE>機能ワールド - {PAGE_TITLE} < /TITLE></HEAD> <br><BODY BGCOLOR=BLACK TEXT=WHITE> <br><H1>{PAGE_TITLE}</H1> <br></HTML> <br> table.tpl <br><br><br><br>以下は引用された内容です: <br><TR>name<TH>size</TR> } <br></TABLE> LESIZE}</TD> <br><br><br><br>yad.php3 <br><br> <br><br>以下は引用内容です: <br><?php <BR>include "class.FastTemplate .php3"; <BR>function InitializeTemplates() { <br> global $tpl; <br><br>$tpl = new FastTemplate( "."); <br>$tpl->define( array( page => "page.tpl", <br>table => "table.tpl", <br>table_row => "table_row.tpl" ) ); <br><br>function ReadCurrentDirectory() { <br>global $tpl = opendir( "."); ($filename = readdir($handle)) { <br>$tpl->assign(FILENAME, $filename); <br>$tpl->assign(FILESIZE, filesize($filename)); TABLE_ROWS, ".table_row"); <br>} <br>closedir($handle); <br>$tpl->parse(PAGE_CONTENT, "table"); <br><br> <br><br>function PrintPage($title); <br><br>$tpl->assign(PAGE_TITLE, $title); <br>$tpl->parse(FINAL, "ページ"); <br><br>InitializeTemplates(); ReadCurrentDirectory(); <br>Printpage( "Yet Another Demo "); > <br><br>Speed Discussion <br><br> <br><br> 「すべては素晴らしいです。しかし、サイトの速度には影響しないのでしょうか? 「 www~ <br><br> いいえ、あなたの Web サイトはおそらく速くなります。 1 つの単純な理由: プログラマーとしてのあなたはアプリケーションの設計とコードの記述に関心があるため、コードはより効率的になり、同じものを処理することになります。タスクはより簡単かつ高速になります。したがって、プロジェクトで FastTemplate の使用を検討する必要がある理由のリストに別の理由を追加することもできます <br><br> 既存の Web サイトを変換したいだけの場合は、PHP で正規表現バッファリングを使用することをお勧めします。 FastTemplate はすべてのマクロに正規表現を使用するため、この場合に役立ちます。コンパイルは 1 回だけであり、速度への影響はごくわずかです <br> <br></p> <p align="left"></p> <div style="display:none;"> <span id="url" itemprop="url">http://www.bkjia.com/PHPjc/319003.html</span><span id="indexUrl" itemprop="indexUrl">www.bkjia.com</span><span id="isOriginal" itemprop="isOriginal">tru​​e</span><span id="isBasedOnUrl" itemprop="isBasedOnUrl">http://www.bkjia.com/PHPjc/319003.html</span><span id="genre" itemprop="genre">技術記事</span><span id="description" itemprop="description">なぜ FastTemplate を使用する必要があるのか​​疑問に思われるかもしれません。 · サイト全体の外観を数秒で変更できます · 抽象プログラミング、ジャンク HTML コードは不要 · デザイナーは...</span> </div> <div class="art_confoot"></div></div><div class="nphpQianMsg"><div class="clear"></div></div><div class="nphpQianSheng"><span>声明:</span><div>この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。</div></div></div><div class="nphpSytBox"><span>前の記事:<a class="dBlack" title="PHP 中国語英数字検証コード実装コード_PHP チュートリアル" href="http://m.php.cn/ja/faq/310963.html">PHP 中国語英数字検証コード実装コード_PHP チュートリアル</a></span><span>次の記事:<a class="dBlack" title="PHP 中国語英数字検証コード実装コード_PHP チュートリアル" href="http://m.php.cn/ja/faq/310965.html">PHP 中国語英数字検証コード実装コード_PHP チュートリアル</a></span></div><div class="nphpSytBox2"><div class="nphpZbktTitle"><h2>関連記事</h2><em><a href="http://m.php.cn/ja/article.html" class="bBlack"><i>続きを見る</i><b></b></a></em><div class="clear"></div></div><ul class="nphpXgwzList"><li><b></b><a href="http://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/2.html" title="正規表現内のすべての式記号 (概要)" class="aBlack">正規表現内のすべての式記号 (概要)</a><div class="clear"></div></li></ul></div></div><footer><div class="footer"><div class="footertop"><img src="/static/imghwm/logo.png" alt=""><p>福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!</p></div><div class="footermid"><a href="http://m.php.cn/ja/about/us.html">私たちについて</a><a href="http://m.php.cn/ja/about/disclaimer.html">免責事項</a><a href="http://m.php.cn/ja/update/article_0_1.html">Sitemap</a></div><div class="footerbottom"><p> © php.cn All rights reserved </p></div></div></footer><script>isLogin = 0;</script><script type="text/javascript" src="/static/layui/layui.js"></script><script type="text/javascript" src="/static/js/global.js?4.9.47"></script></div><script src="https://vdse.bdstatic.com//search-video.v1.min.js"></script><link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css' type='text/css' media='all'/><script type='text/javascript' src='/static/js/viewer.min.js?1'></script><script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script><script>jQuery.fn.wait = function (func, times, interval) { var _times = times || -1, //100次 _interval = interval || 20, //20毫秒每次 _self = this, _selector = this.selector, //选择器 _iIntervalID; //定时器id if( this.length ){ //如果已经获取到了,就直接执行函数 func && func.call(this); } else { _iIntervalID = setInterval(function() { if(!_times) { //是0就退出 clearInterval(_iIntervalID); } _times <= 0 || _times--; //如果是正数就 -- _self = $(_selector); //再次选择 if( _self.length ) { //判断是否取到 func && func.call(_self); clearInterval(_iIntervalID); } }, _interval); } return this; } $("table.syntaxhighlighter").wait(function() { $('table.syntaxhighlighter').append("<p class='cnblogs_code_footer'><span class='cnblogs_code_footer_icon'></span></p>"); }); $(document).on("click", ".cnblogs_code_footer",function(){ $(this).parents('table.syntaxhighlighter').css('display','inline-table');$(this).hide(); }); $('.nphpQianCont').viewer({navbar:true,title:false,toolbar:false,movable:false,viewed:function(){$('img').click(function(){$('.viewer-close').trigger('click');});}}); </script></body></html>