php Smarty模板引擎工作机制(一)

在没有使用Smarty模板引擎的情况下,我们都是将PHP程序和网页模板合在一起编辑的,好比下面的源代码:

 代码如下 复制代码
<?php
$title="深处浅出之Smarty模板引擎工作机制";
$content="Smarty模板引擎原理流程图";
$auth="MarcoFly";
$website="www.111cn.net";
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title><?php echo $title?></title>
</head>
<body>
<p>内容:<?php echo $content?></p>
<p>作者:<?php echo $auth?></p>
<p>网址:<?php echo $website?></p>
</body>
</html>

html代码

 代码如下 复制代码

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>深处浅出之Smarty模板引擎工作机制</title>

</head>

<body>

<p>内容:Smarty模板引擎原理流程图</p>

<p>作者:MarcoFly</p>

</body>

</html>

程序比较小的情况下这种开发方式尚且不方便,一旦要开发一个大的WEB项目,就必须得使用到模板引擎。

使用模板引擎的情况下:我们的开发方式将有所改变,美工人员只管做模板,后台开发人员专心写自己的程序。一个web项目就可以分为模板文件和PHP程序了比如:美工人员就可以这样编辑网页模板文件:

 代码如下 复制代码
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title><{$title}></title>
</head>
<body>
<p>内容:<{$content}></p>
<p>作者:<{$auth}></p>
<p>网址:<{$website}></p>
</body>
</html>
从以上两段简单的演示代码可以看出,前台模板文件没有涉及到任何关于PHP的代码,只有几个看似陌生的标签<{$title}><{$content}>,而后台的php程序代码也没有涉及到前台的HMTL代码
      参考下图对比这两种开发方式的区别

 
 
通过对比,我们得出结论:在使用模板引擎后,原先需要使用PHP编写的地方,现在只需要用模板引擎提供标签的形式来代替了。
注:Smarty模板引擎默认的标签形式是{$xxx},如,{$title},{$content}
当然我们可以初始化为自己想要的标签形式,如我将其初始化为:<{$xxx}>的形式),如,<{$title}>、<{$content}>
 
不知各位看官有木有觉得奇怪,<{$title}>、<{$content}>根本就不是PHP的语法形式,那最终又是如何被输出到客户的浏览器中的,是否另有玄机?带着这个疑问,我们继续深究......
  其实,这一切的一切都是由Smarty模板引擎这双神秘的手在“暗中操作”着,经过Smarty模板引擎的“暗中操作”之后,起初的模板文件()经过Smarty“成功手术”之后,被改造为能在服务器端执行的PHP代码文件。
想看看模板文件(index.dwt)和后台的PHP程序(index.php)经过“手术”(即编译)之后的庐山真面目吗?
在此贴上经过模板引擎编译之后的编译文件的源代码:

 代码如下 复制代码
<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title><?php echo $this->arr["title"] ?></title></head><body><p>内容:<?php echo $this->arr["content"] ?></p><p>作者:<?php echo $this->arr["auth"] ?></p><p>网址:<?php echo $this->arr["website"] ?></p></body></html>

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php
, 开发
, 文件
, 标签
, 程序
代码
php模板引擎smarty、smarty模板引擎、smarty模板引擎原理、smarty模板引擎下载、smarty前端模板引擎,以便于您获取更多的相关知识。

时间: 2024-10-25 01:34:06

php Smarty模板引擎工作机制(一)的相关文章

深入浅出之Smarty模板引擎工作机制(一)

深入浅出Smarty模板引擎工作机制,我们将对比使用smarty模板引擎和没使用smarty模板引擎的两种开发方式的区别,并动手开发一个自己的模板引擎,以便加深对smarty模板引擎工作机制的理解. 在没有使用Smarty模板引擎的情况下,我们都是将PHP程序和网页模板合在一起编辑的,好比下面的源代码: <?php$title="深处浅出之Smarty模板引擎工作机制";$content="Smarty模板引擎原理流程图";$auth="MarcoF

深入浅出之Smarty模板引擎工作机制(二)

源代码下载地址:深入浅出之Smarty模板引擎工作机制 接下来根据以下的Smarty模板引擎原理流程图开发一个自己的模板引擎用于学习,以便加深理解.   Smarty模板引擎的原理,其实是这么一个过程: 把模板文件编译成php文件,然后每次都去读取下模板的修改时间,没有修改就不编译.然后include这个"编译"后的PHP文件. 所谓编译也就是模板用正则替换成含PHP代码的过程. 实际上并不会每次请求都编译,所以性能尚可.  模板文件和php程序文件经过模板引擎的编译后合成为一个文件,

php Smarty模板引擎工作机制(二)

所谓编译也就是模板用正则替换成含PHP代码的过程. 实际上并不会每次请求都编译,所以性能尚可. 模板文件和php程序文件经过模板引擎的编译后合成为一个文件,即编译后的文件. 接下来,我们根据该原理流程写一个简单的模板引擎...... 先贴上核心代码: Smarty.class.php文件  代码如下 复制代码 <?php     class Smarty{         public $template_dir;//模板目录         public $compile_dir;//编译目录

详解模板引擎工作机制

本文讲的是详解模板引擎工作机制, 我已经使用各种模版引擎很久了,现在终于有时间研究一下模版引擎到底是如何工作的了. 简介 简单的说,模版引擎是一种可以用来完成涉及大量文本数据的编程任务的工具.一般而言,我们经常在一个 web 应用中利用模板引擎来生成 HTML .在 Python 中,当你想使用模板引擎的时候,你会发现你有不少的选择,比如jinja 或者是mako.从现在开始,我们将利用 tornado 中的模板引擎来讲解模板引擎的工作原理,在 tornado 中,自带的模板引擎相对的简单,能方

Smarty模板引擎缓存机制详解_php实例

本文实例讲述了Smarty模板引擎缓存机制.分享给大家供大家参考,具体如下: 首先说下smarty缓存和编译,这是两个不同的概念,编译默认情况下是启动的,而缓存机制需要人为开启,smarty编译过的文件还是php文件,所以执行的时候还是编译的,如果涉及到数据库,还是要访问数据库的所以开销也不小啦,所以需要smarty缓存来解决! 1.开启全局缓存 $smarty->cache_dir = "/caches/"; //缓存目录 $smarty->caching = true;

Smarty模板引擎缓存机制详解

本文实例讲述了Smarty模板引擎缓存机制.分享给大家供大家参考,具体如下: 首先说下smarty缓存和编译,这是两个不同的概念,编译默认情况下是启动的,而缓存机制需要人为开启,smarty编译过的文件还是php文件,所以执行的时候还是编译的,如果涉及到数据库,还是要访问数据库的所以开销也不小啦,所以需要smarty缓存来解决! 1.开启全局缓存 $smarty->cache_dir = "/caches/"; //缓存目录 $smarty->caching = true;

Javascript 引擎工作机制详解_javascript技巧

Javascript 引擎工作机制 javascript从定义到执行,JS引擎在实现层做了很多初始化工作,因此在学习JS引擎工作机制之前,我们需要引入几个相关的概念:执行环境栈.全局对象.执行环境.变量对象.活动对象.作用域和作用域链等,这些概念正是JS引擎工作的核心组件.这篇文章的目的不是孤立的为你讲解每一个概念,而是通过一个简单的demo来展开分析,全局讲解JS引擎从定义到执行的每一个细节,以及这些概念在其中所扮演的角色. var x = 1; //定义一个全局变量 x function A

smarty模板引擎之分配数据类型

 这篇文章主要介绍了smarty模板引擎之分配数据类型,实例分析了smarty模板引擎数据类型的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了smarty模板引擎之分配数据类型用法.分享给大家供大家参考.具体分析如下: 一.分配基本数据 ? 1 2 3 4 5 6 7 8 9 10 11 //分配基本数据 $smarty->assign("str","hello smarty!"); $smarty->assign(&quo

smarty模板引擎之配置文件数据和保留数据

 这篇文章主要介绍了smarty模板引擎之配置文件数据和保留数据的方法,实例分析了smarty模板引擎配置文件数据及获取数据的具体技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了smarty模板引擎之配置文件数据和保留数据的方法.分享给大家供大家参考.具体如下: 一.如何让模板直接从配置文件中取出数据 1.使用场合 当某个变量值,不希望直接写死到程序中(通过smarty分配),就可以通过配置文件来获取. 2.写配置文件 新建文件夹:config 新建文件名:my.ini或