Input类库是ThinkPHP提供的一个字符串输入处理扩展,能够方便地对字符串进行安全过滤、转义等,下面将对Input扩展类公开可调用的方法进行介绍。URL协议支持https、ftp等,运行结果为“http://beauty-soft.net”。其中参数string表示需要进行省略处理的字符串;参数length表示省略的字符数。safeHtml通常用于过滤表单输入,防止用户输入HTML代码破坏数据安全性。......
2023-11-04
Smarty并不是一项新的PHP技术,而在PHP 4.x以前就已经是非常流行的界面与后台相分离的技术。由于PHP的特性,早期的PHP编程要实现MVC编程非常困难,但Smarty出现之后,虽不能说是MVC编程,但至少实现了部分MVC编程思想,以至于现在主流的MVC框架或多或少都受Smarty影响。
Smarty的本质是分离代码,使得美工与后台的逻辑在一定程序度相分离,以便更好地分工合作。这种分工合作不仅能够提高开发效率,而且能够有效改善代码质量,为后期网站的维护提供极大的便利,如图13-1所示。
在早期的PHP开发模式中,能够真正实现MVC设计的PHP框架并不多,所以当时几乎由Smarty主导。直至现在,Smarty依然盛行,这点从各大招聘网站中可见一斑。本书是介绍PHP MVC的,理论上MVC框架就能实现美工与界面相分离,但MVC是一种模式,而Smarty只是模式中的一个部件而已。所以要深入理解这两者之间的关系,还需要读者真正掌握Smarty的使用。
Smarty与MVC不同之处在于Smarty并不负责后台逻辑的处理,普通的PHP程序只需要包含Smarty入口文件,其他的编程模式可以使用传统的PHP面向对象或面向过程方式实现。Smarty在处理模板时,首先由PHP分析当前请求是否应用Smarty,然后对相关的请求文件进行静态化处理,如果存在缓存则直接返回该文件的缓存;否则执行模板解释工作,将前台设计人员设置的模板标签解释为PHP标准代码,并且生成预编译文件。
这个过程只需要在第一次解释模板或者模板标签改变时执行,下次执行时直接获取解释后的结果即可,避免重复解释,这在一定程度上改善了PHP运行效率;最后将生成后的缓存返回给浏览用户,如图13-2所示。
图13-1 Smarty前台后分离
图13-2 Smarty执行流程
相信读者对Smarty的执行流程并不陌生,因为前面介绍的ThinkPHP模板引擎就是以相同的方式处理模板的。不仅同样支持PHP编译,而且使用assign方法分配变量;在模板设计层面,同样也使用标签,这些都是Smarty原本就有的特色功能。(www.chuimin.cn)
除了Smarty引擎之外,常见的模板引擎如下。
➢PHPLIB:一套古老且主流的模板引擎,直接在HTML中使用PHP变量进行编程。
➢Template Blocks:一款轻巧且速度非常快的PHP模板引擎,支持XML语法。
➢TinyButStrong:小强模板,业界非常著名好用的模板引擎,直接支持Dreamweaver插件编辑。
➢Rain TPL:易于使用和安装引擎,有6个标签、3个PHP函数和2个PHP类。支持对模板中的相对路径自动转换为绝对路径。
➢PHPTAL:PHPTAL是一个ZPT的PHP执行。简而言之,PHPTAL是一个PHP下的XML/XHTML模板库。
➢PHP Template Engine:类似于PHPLIB,但支持在模板中使用Cookie、Session。
通过前面的介绍,可以看到PHP模板引擎主要分为两类:一类是直接在模板中使用PHP语法作为模板标签;另外一类是使用特定的语法标记作为模板标签。在这两类模板中,基于PHP语法的模板引擎由于不需要开发员掌握额外的知识,所以越来越受到开发人员的欢迎,本书一开始介绍的几种主流MVC框架模板引擎都使用类似技术。
使用特定语法的模板引擎由于性能问题,近年来受到一些诟病,但由于其能够真正将界面设计人员与PHP开发人员很好地分离,所以在大型项目开发中具有不可替代的作用,而这一类的模板引擎最流行的就是Smarty了。所以本章重点介绍Smarty引擎,读者在深入掌握该模板引擎的使用后,将会对MVC设计有更深入的认识。
有关PHP MVC开发实战的文章
Input类库是ThinkPHP提供的一个字符串输入处理扩展,能够方便地对字符串进行安全过滤、转义等,下面将对Input扩展类公开可调用的方法进行介绍。URL协议支持https、ftp等,运行结果为“http://beauty-soft.net”。其中参数string表示需要进行省略处理的字符串;参数length表示省略的字符数。safeHtml通常用于过滤表单输入,防止用户输入HTML代码破坏数据安全性。......
2023-11-04
上述XML代码共有两条新闻数据,通过浏览器直接访问将能够正确识别。由于DOM首先将XML载入内存,这就意味着在引擎还没最终输出结果前,开发人员可以对内存中的数据进行增、删、改,这也是DOM最为强大的功能。DOM查询XML前面使用ASX引擎能够方便地对XML数据进行查询,接下来将使用DOM进行同样的查询操作,帮助读者加深对DOM与SAX的认识。......
2023-11-04
PHP 5后的版本借鉴了大量Java思想,得益于早期PHP面向过程编程支持,PHP在实现MVC设计中变得较灵活、易用。但是随着PHP 5.x的到来,各种MVC框架的出现,尤其Zend推出的Zend Framework,彻底地改变了PHP状况,使得PHP也能够实现优雅的Web编程。MVC设计模式将使代码将变得简洁。但是在MVC设计模式中,Index称为动作。当然,MVC只是一种设计模式,在开源的PHP编程世界中,已经拥有众多的MVC编程框架。......
2023-11-04
前面已经简单介绍过ThinkPHP视图引擎,这些标签处理机制类似于JSP tag,使用XML作为标签的渲染方式,开发人员可以方便地在网页中嵌入XML标签,然后由ThinkPHP视图引擎解释成标准的PHP代码。ThinkPHP的视图引擎之所以高效,主要体现在它的标签扩展性。ThinkPHP的视图标签扩展性够完美地与后台控制器代码相结合,例如在Smarty中使用函数功能,首先需要在后台PHP代码注册,而在ThinkPHP中完全不需要,如以下代码所示。......
2023-11-04
系统共支持7种模式扩展,下面将分别对最常用的几种模式进行介绍。表11-1 CURD操作接口如表11-1所示,参数$data表示传入或返回的数据信息;参数$options表示返回当前操作的模型名称及表前缀。......
2023-11-04
在应用程序中数据库的操作主要分为4大类:创建数据、更新数据、读取数据及删除数据,简称CURD。主流的MVC框架都会对CURD操作进行封装,以达到易用、灵活的目的。ThinkPHP的CURD操作是以连贯操作为基础的,通常情况下这两者会配合使用。......
2023-11-04
Memcached最大的特点是数据存放于内存。默认情况下,Memcached将被安装到/usr/local/bin/目录下。安装Memcache扩展Memcache是PHP一个扩展模块,在安装前需要确保当前环境已经具备PHP环境。但是无论是官方文档还是第三方权威资料,都不建议在Windows下部署Memcached生产环境。接下来使用命令终端执行memcached.exe,命令如下。通过上述步骤,Memcached就自动安装完成了,接来下只需要启动即可。......
2023-11-04
Eclipse是IBM的一个商业项目,2001年11月起IBM将Eclipse贡献给开源社区,从此奠定了Eclipse的地位。Eclipse通过PDT插件来提供PHP开发支持,Eclipse PDT能够让编写PHP变得简单和高效,下面将介绍Eclipse PDT的安装和使用。Eclipse PDT的安装有两种方式,一种是直接通过Eclipse的扩展进行安装;另一种是下载带PDT插件的Eclipse。下面将以Eclipse3.5.2作为基础,讲解Eclipse PDT插件的安装过程。如果下载带PDT插件的Eclipse,只需要双击Eclipse启动程序即可,此时Eclipse就提供了完美的PHP编程支持。......
2023-11-04
相关推荐