皮皮网

【flash网站设计源码】【仿学生赚源码】【查看mfc控件源码】php smart模板引擎源码_php smarty模板引擎

2024-11-06 13:27:38 来源:iapp 手册 源码

1.smarty和mvc在工作中应用的多吗
2.为什么使用smarty

php smart模板引擎源码_php smarty模板引擎

smarty和mvc在工作中应用的多吗

       smarty

       1. 速度:采用Smarty编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的。

       2. 编译型:采用Smarty编写的程序在运行时要编译成一个非模板技术的PHP文件,这个文件采用了PHP与HTML混合的方式,在下一次访问模板时将WEB请求直接转换到这个文件中,而不再进行模板重新编译(在源程序没有改动的情况下) 去除了逻辑处理所带来的工作量,保证了网站的浏览速度。

       3. 缓存技术:Smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定Smarty的cache属性为true时,在Smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件。 很好的解决了因访问量过大造成的服务区繁忙,占用资源大的问题,因此给网站访问者提供了快速的访问速度。

       4. 插件技术:Smarty可以自定义插件。插件实际就是一些自定义的函数。

       5. 模板中可以使用if/elseif/else/endif。在模板文件使用判断语句可以非常方便的对模板进行格式重排。

       ä¸é€‚合使用Smarty的地方

       1. 需要实时更新的内容。例如像股票显示,它需要经常对数据进行更新,导致经常重新编译模板,所以这类型的程序使用Smarty会使模板处理速度变慢。

       2. 小项目。小项目因为项目简单而美工与程序员兼于一人的项目,使用Smarty会在一定程度上丧失PHP开发迅速的优点。

       ä»€ä¹ˆæ˜¯MVC?模板y模flash网站设计源码

       è¯è¯´N多年前,在一个叫SmartTalk的国度出现了一个叫MVC的家伙,后来流窜到了java国,在Java国里呼风唤雨(java的很多有界面的组件,比如swing都是采用MVC模式设计的)。

       é¦–先,此人长了三只手。一只叫Model,它负责业务领域状态的知识,一只叫View,负责业务领域的表示视图,一只叫Controller,负责控制用户输入的流和状态。当模型某一部分发生变化的时候,通常使用事件通知表单来通知视图。但是这个家伙在Web上操作的时候遇到了麻烦。因为Web的浏览器是没有状态的,所以模型没有办法通知视图发生变化,而必须通过用户发出另一次请求才能知道模型的改变。(以上内容源自《jakarta struts编程》一书)

       åœ¨jsp2.0规范中,Java的MVC不允许直接请求jsp页面而是需要通过Servlet来重定向,具体的效果先不说,起码倒是把Controller和View分开了,而且也统一了入口,都是从控制器进入的,那么控制器的职责也就很清晰了:

拦截piles once.

       ä¸éœ€è¦å¤šä½™çš„模板语法解析,仅仅是编译一次

       It is smart about recompiling only the template files that have changed.

       ä»…对修改过的模板文件进行重新编译

       You can make custom functions and custom variable modifiers, so the template language is extremely extensible.

       å¯ä»¥ç¼–辑'自定义函数'和自定义'变量',因此这种模板语言完全可以扩展

       Configurable template delimiter tag syntax, so you can use { }, { { }}, <!--{ }-->, etc.

       å¯ä»¥è‡ªè¡Œè®¾ç½®æ¨¡æ¿å®šç•Œç¬¦,所以你可以使用{ }, { { }}, <!--{ }-->, 等等

       The if/elseif/else/endif constructs are passed to the PHP parser, so the { if ...} expression syntax can be as simple or as complex as you like.

       è¯¸å¦‚ if/elseif/else/endif 语句可以被传递到php语法解析器,所以 { if ...} 表达式是简单的或者是复合的,随你喜欢啦

       Unlimited nesting of sections, ifs, etc. allowed.

       å¦‚果允许的话,section之间可以无限嵌套

       It is possible to embed PHP code right in your template files, although this may not be needed (nor recommended) since the engine is so customizable.

       å¼•æ“Žæ˜¯å¯ä»¥å®šåˆ¶çš„.可以内嵌php代码到你的模板文件中,虽然这可能并不需要(不推荐)

       Built-in caching support

       å†…建缓存支持

       Arbitrary template sources

       ç‹¬ç«‹æ¨¡æ¿æ–‡ä»¶

       Custom cache handling functions

       å¯è‡ªå®šä¹‰ç¼“存处理函数

       Plugin architecture

       æ’件体系结构