一,为什么要用smarty进行打包
apache中也有给js,css这样的静态文件进行打包压缩的模块,但是本文所说的不是以这种方式进行的打包,而是和smarty结合的方式来把网站中的js,css文件进行打包。
为什么要进行打包呢,主要目的是为了合理的管理自己的代码。现在有好多网站,你查看一下网站的源码的话,你会发现网站的头部有大量的JS文件和CSS文件,网站的尾部也有可能有大量的JS文件。以webqq为例吧:
一,为什么要用smarty进行打包
apache中也有给js,css这样的静态文件进行打包压缩的模块,但是本文所说的不是以这种方式进行的打包,而是和smarty结合的方式来把网站中的js,css文件进行打包。
为什么要进行打包呢,主要目的是为了合理的管理自己的代码。现在有好多网站,你查看一下网站的源码的话,你会发现网站的头部有大量的JS文件和CSS文件,网站的尾部也有可能有大量的JS文件。以webqq为例吧:
一,smarty插件介绍
smarty的插件放在/smarty/libs/plugins下面,它为程序的开发提供了很大的方便,例如:{$yesterday|date_format:"%H:%M:%S"}smarty自带的日期格式化插件,对变量$yesterday进行格式化。在我们的php文件中,并不需要对date_format进行处理,我们只要拿来用就好了。
二,smarty插件命名规则
1,插件文件名命名规则
1,capture标签
capture的中文意思是抓取,它的作用是抓取模板输出的数据,当我们需要它的时候,调用它,以得到抓取数据的目的。例子:
{capture name=test} <img src="testimg.jpg"> {/capture} <div class="image"> {$smarty.capture.test} </div>
php里面的数组或者对像都可以有for,foreach,while,list each来循环出来,smarty里面也有这套方法,要不然php的数组对像数据,smarty就不知道怎么把显示出来。习惯的php里面的for,foreach,while的用法,刚一开始的时候,smarty里面循环数组老是忘,好记性不如烂笔头,还是把它记下来才是最好的。下面定界变量符号,我就用默认的大括号了。
一,foreache,foreacheelse,/foreache方法
1,它是section 之外处理循环的另一种方案(根据不同需要选择不同的方案).用于处理简单数组(数组中的元素的类型一致),它的格式比 section 简单许多,缺点是只能处理简单数组.
2,foreach 必须和 /foreach 成对使用,且必须指定 from 和 item 属性.
一,模板,框架,cms的区别
在介绍smarty之前先讨论一下他们的区别,说实话,刚开始做开发的时候,真的没搞清楚他们的区别,感觉都差不多,记得有一次去面试,面试的人问我,模板和框架有什么区别,我说没什么区别,我汗。举个例子:
1,如果把一个项目比做一个人体模具的话,那么模板就是衣服,而框架呢就是骨架。
2,没有衣服没关系可以不穿,如果没有骨架的话,要衣服有什么呢?php本身就是脚本语言,本身就可以输出。
3,但是如果做大项目没有模板的话,如果你要把网站改版一次,我想你会疯了得。
4,框架是约束程序员开发,使他们的代码尽量一致,相互都可以改。
5,cms是半成品的人体模具,东西都做的差不多,你只要在里面修修补补,就差不多,他对程序员的约束更大。