原创文章,转载请注明出处。

在学习Smarty之前,我们先讲一讲PHP代码编写的三个阶段。

第一阶段:PHP与HTML代码混编阶段

我相信任何学习PHP的朋友,都会学习从这个阶段开始。在一大堆HTML代码里面插入各种功能的PHP代码。是不是挺纠结?甚至想放弃?如果,你在这个阶段就放弃了,博主我真心替你感到惋惜。因为,你还没有接触到诸如像Smarty模板引擎这样的简单而又强大的技术就已经退缩了。

混编代码的几点缺点:
1、不易编写。
2、不易维护。
3、代码很难团队协作开发以及出错概率高。

程序员们在长期的编码过程中,普遍认识到了以上几点问题。便产生了把PHP与HTML进行分离的想法。

第二阶段: PHP与HTML代码分离阶段

很感谢时代的进步,以及程序员对技术孜孜不倦的追求。使得现在的开发不再像PHP与HTML混编时代那样使人纠结。这时便产生了诸如Smarty这样的模板引擎技术。我们来看一段百度百科对Smarty的介绍:

“Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。”

通过以上的解释,大家应该明白了Smarty它不是一种特别的技术。而是用PHP写的一种针对解决PHP混编而编写的程序而已。

Smarty的原理是:变量替换原则。这一点很重要,大家要格外记住。对我们理解Smarty的工作原理很重要。它的出现解决了我们在PHP第一阶段遇到的问题。

第三阶段:基于MVC模式的框架开发

MVC是80年代由Smalltalk语言率先提出的一种概念。记住这是一种概念,一种思想。你可以这样理解:PHP就像一座大厦的门窗以及钢筋水泥和砖块儿。而MVC是一种建筑的风格。比如:看到某一种建筑我们就知道它属于亚洲还是欧洲。

来看看MVC百度百科解释:

“MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。”

这三个字母分别是:M(Model)模型、V(View)视图、C(Controller)控制器。分别对应程序里面的与数据库打交道的PHP程序、HTML静态模板、与用户交到的PHP程序。

在MVC里面思想里面,用户是不能直接通过URL链接访问到HTML模板以及与数据库打交道的PHP程序的。我们称这种方式叫分离。各斯其职,各行其位,职能分明。达到了一个高质量程序所要求的三个方面:高内聚、低耦合、可扩展

大家可能心中有一些疑问:MVC模式有没有解决第一阶段的问题。答案是肯定的。因为它只是在第二阶段中里面的PHP代码进行了再分离。将与数据(可能并不是单一的数据库)打交道的程序与用户交互的PHP程序分开。
通过对PHP的三个阶段进行初步的说明和了解。得知我们Smarty位置第二个开发阶段。

当然了。目前中国的开发处于一个第二阶段与第三阶段长期共存的一个阶段。真正完全赶往第三个阶段从实际的开发中来说还不太现实。毕竟,很多老程序员已经习惯了第一第二阶段的开发方式,而且也用得非常好。他们有着强力的经验做支撑,开发出来的程序会避免很多新手的问题。从而,在他手下的小弟也就跟着进入了这种混合状态。

OK。讲了这么多,咱们进入主题。

1、下载Smarty。

地址:http://www.smarty.net/download

Smarty目前主要有两个版本:2系列与3系列。2系列适合PHP 5.2.0以下版本,3系列适合PHP 5.2.0以上版本。所以,在选则版本的时候,这一点是非常重要的。

目前最新版本是:3.1.13,下载地址:http://www.smarty.net/files/Smarty-3.1.12.zip

2、安装。

其实,也谈不上是安装。因为,PHP是一种脚本代码,直接解压到WEB目录下面,即可以运行了。我们把下载下来的Smarty进行解压,会看到有如下目录文件:

demo是一个Smarty使用的例子。libs就是Smarty的核心部分。这里的东西不要修改和丢失了。否则,Smarty在运行的时候会出错。

其他文件随便看就算了。没什么太重要的。

3、让Smarty运行起来。

我假定在你的电脑上面已经安装了apache和php。假定你的web目录在D:/apache/htdocs。

此时,我们在D:/apache/htdocs目录下创建一个Smarty 的目录。然后将demo和libs两个Smarty解压得到的目录复制进去。在浏览器地址栏输入:localhost/Smarty/demo/index.php

这个时候浏览器会输出:

 

Title: Welcome To Smarty!  The current date and time is 2012-10-17 22:52:58  The value of global assigned variable $SCRIPT_NAME is /Smarty/demo/index.php  Example of accessing server environment variable SERVER_NAME: test.infobright.com  The value of {$Name} is Fred Irving Johnathan Bradley Peppergill  variable modifier example of {$Name|upper}...........................

 

OK!关于Smarty的介绍就到这里,下次我们来讲一讲使用Smarty提供的功能来编写PHP程序。同时,也分析一下Smarty2与3之间的区别,以及2版本语法在3版本中的使用。

如果,各位朋友发现文中有描述错误的地方,请一定留言告诉我。谢谢!