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

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

WBOY
リリース: 2016-07-13 17:43:53
オリジナル
781 人が閲覧しました

是否你面临着创建由一个编程人员(可能就是你)和一个设计人员同时进行创作的网站?你不知道如何使工作对你俩来说变得容易吗?我来给你答案:使用FastTemplate来使你的站点更容易定制!

  好了,你可能想知道为什么你要使用FastTemplates。

·可以在几秒钟改变你的整个站点的外观
·抽象程序设计,没有垃圾HTML代码
·设计人员不需要关心全部的"模糊"代码
·令人惊讶地快
·更容易重用旧的模版(对普通的表单而说)

  FastTemplate源于一个有同样名称的Perl软件包(可以在CPAN上找到)。你可以下载php 的版本从它的主页(本站下载地址为:http://www.phpe.net/downloads/1.shtml)。你只需要其中的一个类的文件(class.FastTemplate.php)。

  让我首先解释一下在使用模板生成一个页面与简单地通过echo或PRint 将页面输出之间有什么不同吧。
简单地使用echo/print的方法很适合编写短的脚本,但是不能帮助你更好的组织和定制。模板在另一方面给
了你创建多国语言站点的能力,只是通过改动一个参数。他们可以促使你更关心你要做的。

  在开始编码之前不要害怕思考。它可能会花费一些时间,但是这些花费会随着项目的发展对你有所回报。

  那么,如何应用FastTemplate呢?首先你需要先进行一个简单地调用:

?>
传递给它一个路径,是所有你的模板文件存放的目录。它返回一个对象,你可以用它进行参
数赋值,生成页面等等。

  FastTemplate是基于这样一种假设:一个很大的页面是由很多小的部分组成的。每一个部分有一个唯一
的名字。最小的部分是赋值给这样有着唯一名字的一段正常的文本字符串。这个可以通过 $tpl->assign(NAME, "text");
?>
来完成。现在,如果你的一个模板包含{NAME},FastTemplate 就知道你
的意图了。

  另外,FastTemplate需要知道你想如何调用你的模板。你需要通过传递一个相关数组(associative
array)给 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。   当然,我们还没有做完,因为模板bar中为主要的页面定义,FastTemplate需要替换其中的
{PAGECONTENT}宏。我们也需要给PAGETITLE赋值,如下所做: $tpl->assign(PAGETITLE, "FooBar test");
$tpl->parse(MAIN, "bar");
?>
  容易吧,不是吗?我们现在只需要把它输出: $tpl->FastPrint(MAIN);
?>
  下面三个文件显示了实际练习中的更多的细节描述。我不知道在现实生活了离了这个技术应如何生活 --
你的设计者会高兴,你的老板会微笑,因为你可以在更短的时间内做更多的事情。

bar.tpl

Feature world - {PAGETITLE}

{PAGETITLE}


{PAGECONTENT}


foo.tpl
很明显示什么都没做。请看{NAME}.
demo.php3 include "class.FastTemplate.php3";

$tpl = new FastTemplate( ".");
$tpl->define(array(foo => "foo.tpl", bar => "bar.tpl"));

$tpl->assign(NAME, "me");
$tpl->assign(PAGETITLE, "Welcome!");

$tpl->parse(PAGECONTENT, "foo");
$tpl->parse(MAIN, "bar");

$tpl->FastPrint(MAIN);
?>

创建整个表格
  我也写了一个短的例子,用来演示如何通过单行模板来生成整个表格。它很有效,因为你仍然不需要直
接修改HTML文档。

  我们增加一个模板的内容到一个已经定义过的唯一命名的后面来创建HTML表格。这个可以通过在调用
$tpl->parse()时,在模板名前加上一个"."来实现。 // 将模板foo的内容赋给TPL1
$tpl->parse(TPL1, "foo");

// TPL1 の後に付いているモジュールバーの内容
$tpl->parse(TPL1, ".bar");
?>

page.tpl


フィーチャーワールド - {PAGE_TITLE}

{PAGE_TITLE}< ;/H1>
{PAGE_CONTENT}

テーブル.tpl


名前 サイズ
{TABLE_ROWS}

table_row.tpl


{ファイル名}
{ファイルサイズ}

yad.php3

include "class.FastTemplate.php3";

関数 InitializeTemplates() {
グローバル $tpl;

$tpl = new FastTemplate( ".");
$tpl->define( array( page => "page.tpl",
table => "table.tpl",
table_row => "table_row .tpl" ) );
}

関数 ReadCurrentDirectory() {
グローバル $tpl;

$handle = opendir( ".");
while($filename = readdir($handle)) {
$tpl->assign(FILENAME, $filename);
$tpl->assign(FILESIZE, filesize( $filename));
$tpl->parse(TABLE_ROWS, ".table_row");
}
closedir($handle);
$tpl->parse(PAGE_CONTENT, "table");
}

関数 PrintPage($title) {
グローバル $tpl;

$tpl->assign(PAGE_TITLE, $title);
$tpl->parse(FINAL, "page");
$tpl->FastPrint(FINAL);
}

InitializeTemplates();
ReadCurrentDirectory();
Printpage( "さらに別のデモ");
?>

速度讨论

「分かった、」 可能性はある、「一切大満足。しかし、私たちのウェブサイトの速度に影響はありませんか?」

単純な理由の 1 つは、転送コードの方が効率的であり、同じ仕事の処理がより容易であるということです。したがって、上に挙げた理由は、FastTemplate を転送中の項目で使用することを検討するための理由がさらに追加される可能性があります。

既存の Web サイト ポイントを変更するだけの場合、パフォーマンスの成功は認識されない可能性があります。私たちは PHP で正しい表現形式のダウンローディングを使用するように設計していますが、これがこのような状況に役立つように設計されています。宏はすべて正しい表現形式を使用していますが、それぞれの正しい表現形式は 1 回だけ評価され、速度への影響はほとんど知られていない可能性があります。

http://www.bkjia.com/PHPjc/478797.html

www.bkjia.com

http://www.bkjia.com/PHPjc/478797.html技術記事それとも、一の编程人员(可能性は你)と一の设计人によって同時に作られたネットサイトですか?

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート