Smarty

软件截图:
Smarty
软件详细信息:
版本: 3.1.5
上传日期: 11 May 15
许可: 免费
人气: 9

Rating: nan/5 (Total Votes: 0)

Smarty的实际上不是一个“模板引擎”,这将是更准确地描述为“模板/演示框架。”也就是说,它提供了程序员和模板设计者提供了丰富的工具来自动化任务的应用程序的表示层通常处理。我强调框架,因为Smarty的不是一个简单的标签替换模板引擎。虽然它也可以用于这样的简单的目的,它的重点是快速,无痛开发和部署应用程序的,同时保持高的性能,可扩展性,安全性和未来的增长。
所以对你Smarty的吧?什么它归结为是使用正确的工具的工作。如果你想简单的变量替换,你可能想看看更简单的东西,甚至推出自己的。如果你想要一个强大的模板框架与众多的工具来帮助你为你的应用程序的发展未来,Smarty的可能是一个不错的选择。
为什么要用它?
其中Smartys主要设计目标是促进应用程序代码表示的分离。通常情况下,应用程序代码中包含您的应用程序,编写和维护的PHP代码中的业务逻辑。这个码由程序员保持。演示是您的内容被呈现给最终用户,信息被写入并保持在模板文件的方式。该模板由模板设计者维护。
在其最基本的功能,应用程序代码收集的内容,并将其分配给模板引擎和显示。内容可能是这样的报纸文章的标题,标语,作者和身体。应用程序代码没有怎么关注这个内容将在模板中呈现。模板设计者负责呈现。他们编辑模板文件,添加标记并把它完成。这通常需要像HTML标签,级联样式表和模板引擎提供的其他工具。
这种模式有以下几个目的:
)设计不能打破的应用程序代码。他们可以乱用所有他们想要的模板,但代码保持不变。该代码会更严格,更安全,更易于维护。
)在模板中的错误被限制在Smartys错误处理例程,这使得它们作为简单和直观尽可能为设计师。
)同介绍其自己的层,设计人员可以修改或完全从零开始重新设计,所有这些都不脱离程序员介入。
)程序员不弄乱模板。它们可以去维护应用程序代码,改变获取内容的方式,使新的业务规则,等等,而不会干扰表示层。
)模板是什么样的最终输出将是一个接近的表示,这是一个直观的方法。设计师不在乎内容如何得来的模板。如果你有模板中多余的数据,如SQL语句,这打破打开的应用程序代码被意外删除或改变由设计师的风险。
)你是不是打开你的服务器的任意PHP代码的执行。 Smarty的内置了这样的设计师不会破坏安全,无论是有意或无意的许多安全功能。他们只能做他们的模板局限于。
虽然应用程序代码与表示分离,这并不一定意味着逻辑分离。应用程序代码显然有逻辑,但该模板可以基于所述条件,它仅用于介绍有逻辑。例如,如果设计者希望交替表行的颜色或大写一些分配的内容,他们可以。这是表示逻辑,一些程序员不应该与关注。你是否经常有一些演示显示在一列,然后你希望它在两个或三个栏,因此应用程序代码需要调整,以适应这一点?更好的办法是分配在一个单一的阵列的内容,让模板处理表现。这将简化您的应用程序,并保持你的模板灵活。 Smarty的供应工具来处理这种情况。
这并不意味着Smarty的阻止你把应用逻辑的模板中,你必须有一点自律。下面是在模板中嵌入业务逻辑(这是正确的,可以避免如​​果在所有可能这样做)的一个例子:
{如果$ smarty.session.user和($ user_type EQ“编辑”或$ user_type EQ“管理员”)}
<输入类型=复选框名称=编辑值=“Y”>修改
{/}如果
如果用户登录,他们要么是编辑或管理员的逻辑检查,那么他们可以编辑这个让编辑框显示出来。即逻辑属于在应用程序代码。该模板并不关心什么凭据这个用户,它只是需要知道是否显示或不编辑框!因此,让我们来看一个更合适的方法:
{如果$ edit_flag}
<输入类型=复选框名称=编辑值=“Y”>修改
{/}如果
它是由应用程序员来分配$ edit_flag,简单和容易理解的模板中的变量。通过这种方式,模板不再依靠基础数据结构。如果会话数据结构的格式不断变化,没有什么需要在模板中进行调整。
现在让我们来看几个事情可以做的Smarty。有一件事可以做的是自定义的功能。这些标签在模板中执行的特定任务。例如:
{html_image文件=“masthead.gif”}
在这里,我们有一个叫做“html_image”功能。这个函数中的“文件”属性给出的形象和做一切必要的工作,拿出了下面的HTML代码:

图像功能确实弄清楚的高度和宽度,并供给默认边界标志的琐事。当然,你可以只使用模板来代替在静态HTML标记,但此说明了如何自定义函数可以用于简化一个非常常见的任务。设计者可以专注于设计和较少的技术的东西。此外,如果设计者决定在不同的大小标头图像下降,模板并不需要调整。
html_image是自带的Smarty的功能。你也可以让自己的自定义功能。这里有什么人可能看起来像另外一个例子:
{html_link TYPE =“文章”ID =“ABC123”文本=“火拿出酒店”}
这是利用所谓的“html_link”的自定义功能。它配备了下面的HTML代码:
消防取出酒店
是什么成就?为一体,设计者不需要与一个URL的一篇文章的格式予以关注。如果有一天程序员决定干净的东西了硬编码的网址,会发生什么,并从/display_article.php?id=abc123改变URL语法/艺术/ ABC123?我们将不得不修改每个模板一篇文章的URL。这是如何模板函数可以使模板更易于维护的另一个例子。
现在有些程序员和模板。早些时候有人提到,程序员有没有关心什么模板做的内容。从概念上讲,这是真实的,但在现实世界里,你不会指望模板设计者必须构造所有模板凭空。毕竟,业务逻辑确实确定哪些内容被分配到模板。所以,程序员通常会设置骨架模板设计者开始。这通常包含原始元素,如内容的变量和部分环路,也许一些简单的标记标签,使他们不开始在大混乱的内容。这里是一个骨架模板来遍历的文章的列表并在表中显示它们的例子:


{节名称=艺术圈= $}文章


{/部分}
{$文章[艺术] .headline}
{$文章[艺术] .date}
{$文章[艺术] .author}

输出可能是这个样子:







西部开拓史
1999年12月2日
约翰·韦恩
球队输球,教练退出
2002年2月2日
约翰·史密斯
美食烹饪
1954年1月23日
贝蒂克罗克

现在对于一些常见的问题:
在所有的为什么要使用模板?什么是如此艰难的写作<?回声$称号; ?而不是{$}标题>?
使事情更容易阅读不是一个设计目标,但更多的副作用。使用模板有巨大的好处,其中许多已经在上面解释。因为我们是在一个模板环境不管怎么说,{$}标题比,尤其是当你开始看着它在长页面的内容,所以这是很明显的是,一个简单的语法有助于使模板更容易阅读和维护。
模板需要时间来分析,使应用程序慢得多。
这可能是在某些情况下真实的,但它的Smarty并不比执行一个PHP脚本慢。在模板的第一次执行,Smarty的转换模板文件到PHP脚本(称为模板编译。)此后,PHP脚本仅仅是包括在内。还有一点,PHP加速器,你真正拥有以最小的开销快速模板环境。
Smarty的太复杂了,怎么能这么快?
Smarty的核心是相当瘦考虑它是什么能力。它的大部分功能在于插件。插件架构被设计成使得只有所需的插件是根据需要加载。有了这个框架,加入甚至数百个新的插件将不会影响性能。这使得Smarty的快速,可扩展性和灵活性。
Smarty的也有缓存功能,可以动态刷新,并保持在未缓存您喜欢的页面的部分。高速缓存存储的编译模板的输出,节省了需要执行它们在每次调用。
所有该谈的加速器,如何Smarty的运行没有一个?
实际上它运行得很好没有之一。 Smarty的不需要的加速器,但模板文件本身将产生一个优势,而这是唯一的Smarty(据我所知)。如果你没有一个加速器,模板执行并不快,但通过任何手段,因为它们不被解析不慢!您还保留所有的其他好处和Smarty的特点。此外,由于加速器免费提供没有真正不被使用一个借口。他们会帮助提高性能与所有的PHP应用程序,Smarty的使用与否。
如何可以更容易维护?
有些事情无法解释,但只有经历。从演示文稿中的应用逻辑分离的好处可以强调也不过分。 Smarty的也有一些不错的错误处理功能和一目了然内置调试控制台,所以你可以看到模板层次结构和赋值的变量。添加自定义功能的Smarty是因为他们丢弃在插件目录,并提他们的模板中那样容易。
的模板标签不是基于XML的,我的编辑不喜欢它。
该{}分隔符只是默认情况下,他们很容易的HTML标签中辨别。如果你不喜欢他们,改变你的分隔符或者更多的东西像XMLish也有很多用户贡献的用于Dreamweaver之类的,让他们在贡献区看看。
这是Smarty的概括地说,希望你可以把它添加到您的Web应用构建工具库。要真正了解更多信息,请阅读说明书从上到下,加入论坛,看看有什么人都在讨论

功能

  • 缓存:Smarty的提供细粒度的缓存功能来缓存所有的渲染网页或部件,或留下部分未缓存。程序员可以注册模板函数作为缓存或者非超高速缓存,缓存组到页面逻辑单元更容易管理等。
  • 配置文件:Smarty的可分配从配​​置文件中拉出变量。模板设计者可以保持在一个位置共同多个模板值,而无需从程序员介入,和配置变量可以很容易地应用程序的编程和表示部分之间共享。
  • 安全:模板不包含PHP代码。因此,模板设计者不释放与PHP的全部功能,但功能的子集提供给他们从程序员(应用程序代码。)
  • 易于使用和维护:网页设计师面对的不是PHP代码语法,而是一个易于使用的模板语法并不比普通的HTML不同。这些模板最终输出的一个非常密切的代表,大大缩短了设计周期。
  • '变量:分配变量的内容可以很容易地在显示时间与改性剂,如显示在所有大写调整,HTML转义,格式化日期,截断文本块,添加字符之间的空格,再等等,这是通过不从编程器干预。
  • 模板函数:许多功能可用于模板设计器来处理,如生成HTML代码段(下拉列表,表格,弹出窗口等),显示来自在线模板等内容,遍历内容数组任务,格式电子邮件输出文本,但骑自行车的颜色等。
  • 过滤器:程序员可以完全控制模板输出和编译模板内容与预过滤器,后置滤波器和输出滤波器
  • 资源:模板可以从任何数目的来源通过创建新的资源处理程序,然后使用它们的模板被拉
  • 插件:Smarty的几乎每一个方面是通过使用插件来控制。他们一般都是作为拖放到他们的插件目录,然后提他们的模板或使用它们的应用程序代码一样简单。许多用户社区的贡献也可提供。 (见论坛和wiki的插件部分。)
  • 在附加组件:许多用户社区贡献附加组件可如分页,表单验证,下拉菜单,压延日期选择器等,这些工具可帮助加快开发周期,没有必要重新发明轮子或调试代码已经稳定,可以进行部署。 (看到论坛和wiki的附加软件部分。)
  • 调试:Smarty的配备了一个内置的调试控制台以便模板设计者可以看到所有的赋值的变量和程序员可以调查模板渲染速度
  • 编译:Smarty的模板编译成幕后PHP代码,消除了模板的运行时解析
  • 性能:Smarty的执行非常好,尽管其庞大的功能集。大部分的Smarty的功能在于被按需加载的插件。 Smarty的带有众多的演示工具,最大限度地减少应用程序代码,从而更快,更不容易出错的应用程序开发/部署。 Smarty模板被编译到PHP内部(一次)文件,消除昂贵的模板文件扫描并利用了PHP操作码加速器的速度。

什么在此版本中是新的

  • 在恢复超全局访问的变化,而是依靠USE_SUPER_GLOBALS的安全

什么是2.6.23版本的新

  • 从{}数学公式反引号条(mohrt)

  • 存在,但模板时
  • 在抛出一个异常不可读(mohrt)

什么是版本2.6.22中的新

  • 在此版本解决了Smarty的2.6遇到了问题0.21版本和PHP 5.2 PCRE引擎错误。方法链接已被删除,以避免错误。方法链将重新出现在Smarty的3。

显影剂的其他软件 New Digital Group, Inc.

Smarty
Smarty

13 Apr 15

意见 Smarty

评论没有发现
添加评论
打开图片!