接下来将介绍Zend Framework的安装与使用。由于Zend Framework使用PDO对数据库进行操作,搭建好运行环境后还必须手动开启相应的PDO功能。完成后就能够进行Zend Framework程序开发了。......
2023-11-04
Zend Framework是以组件的方式进行代码构建的,组件的概念类似是Java中包的概念。Zend Framework强大之处就在于提供了非常多的实用组件,开发人员可以方便地使用Zend Framework提供的种类组件,轻易地实现原本需要复杂设计的功能。常用的组件有Zend_Validate、Zend_Filter、Zend_Cache、Zend_Mail、Zend_Db_Adapter等。下面分别介绍。
1.Zend_Validate
Zend_Validate组件用于表单数据的校验。通常在提交表单时为了数据的安全和完整,除了前端开发人员需要对数据的正确性和完整性进行校验外,作为后台处理程序也应该进行数据校验。PHP本身就提供了非常多的校验手段,例如正则匹配、字符处理函数等,但都需要烦琐的处理,而且编程的质量直接影响到数据校验的结果。Zend_Validate能够非常智能地实现数据的校验,开发人员不需要编程复杂的代码,只需要指定需要校验的字段和检验类型,Zend_Validate就能够实现高效及安全的数据验证。Zend_Validate组件包类库如图4-4所示。
图4-4 Zend_Validate组件
下面通过Zend_Validate中的Zend_Validate_EmailAddress类实现对Email地址的校验,代码如下所示。
2.Zend_Filter
Zend_Filter提供了完善的数据过渡功能,能够将一些存在安全隐患的数据在插入数据库前进行过渡、转义。Zend_Filter提供的Zend_Filter_Interface(变形器)内置了一套完整的规则,能够实现在国际化的环境下处理一些诸如货币、单词统计等实用功能。常用Zend_Filter组件类如下。
➢Zend_Filter_Inflector:变形器。
➢Zend_Filter_HtmlEntities:处理HTML。
➢addFilter:连接器。
Zend_Filter组件所包含的类如图4-5所示。
以下代码将演示Zend_Filter_HtmlEntities过滤非安全HTML代码,如下所示。
图4-5 Zend_Filter组件
3.Zend_Cache
Zend_Cache能够实现多种高效的前端与后台缓存功能,包括文件缓存、数据库缓存、Memcache缓存等。其中Zend_Cache_Core类为缓存组件的核心,它提供了Zend缓存读写控制、缓存生命周期、缓存序列化、缓存方式等。Zend_Cache缓存方式如下。
(1)前端
➢Core:核心缓存,所有前面缓存类都必须继承于Core。
➢File:以普通的文件进行缓存,类似于生成静态文件。
➢Output:捕获并缓存输出,用于实现页面局部缓存。
➢Page:缓存页面,对提高效率帮助很大,因为一旦命中缓存,就直接读取缓存并输出,不再执行后面的代码。支持以session、cookie、get、post作为cache_id干扰码。比如不同的cookie产生不同的缓存页面。
➢Class:缓存静态类和对象。
➢Function:缓存函数。
(2)后端(www.chuimin.cn)
➢APC:即Alternative PHP Cache,它是基于Zend引擎的一个第三方缓存扩展,能够缓存PHP编译后的代码,达到类似于Java、C#中的预编译效果。
➢File:将PHP源文件以静态的方式进行缓存。
➢Memcached:使用Memcached(一个支持分布式架构的内存数据库)缓存数据。
➢Sqlite:著名的嵌入式数据库软件,在Linux、UNIX上广泛地被使用,在小数据的情况下Sqlite的性能是非常高效的。
➢Xcache:功能类似于APC。
Zend_Cache缓存组件位于在Cache目录下,结果如图4-6所示。
图4-6 Zend_Cache缓存组件
下面将通过代码演示Zend_Cache操作Memcached,代码如下所示。
4.Zend_Mail
在PHP中实现发送邮件是一件轻松的事,PHP已经内置了Mail函数,直接使用PHP提供的Mail函数即可实现高效的邮件发送。Zend_Mail是Mail函数的增强版,它以面向对象的方式为开发人员提供强大的邮件处理功能。例如能够轻易地实现邮件附加发送、SMTP验证发送、POP、IMOP邮件功能等。Zend_Mail几乎提供了处理邮件所需要的类,并且能够较好地处理国际化编码问题。Zend_Mail组件文件结构如图4-7所示。
Zend_Mail和PHP内置的Mail函数一样,使用简单、方便。下面将通过代码演示Zend_Mail的使用,代码如下所示。
图4-7 Zend_Mail组件
5.Zend_Db_Adapter
Zend_Db_Adapter是一个操作数据库的组件,能够实现简洁高效的数据库操作。Zend_Db_Adapter是基于PDO(一个面向服务的数据库操作套件)的,所以在使用Zend_Db_Adapter前需要确保PHP运行环境已经支持PDO模块。
Zend_Db_Adapter实现了PDO全部功能,并且简化了使用步骤,使得Zend_Db_Adapter更加适合MVC编程。Zend_Db_Adapter提供的CURD快捷方法能够实现快速的数据创建、更新、读取、删除等常见操作。文件结构如图4-8所示。
图4-8 Zend_Db_Adapter组件
下面将通过代码演示Zend_Db_Adapter连接MySQL数据库服务器,并执行数据查询的功能。
如以上代码所示,Zend_Db_Adapter在使用方式上与PDO_MYSQL类似。查询数据使用fetchAll方法;更新数据使用update方法;删除数据使用delete。不同的只是声明方式不一样而已。
有关PHP MVC开发实战的文章
接下来将介绍Zend Framework的安装与使用。由于Zend Framework使用PDO对数据库进行操作,搭建好运行环境后还必须手动开启相应的PDO功能。完成后就能够进行Zend Framework程序开发了。......
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
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
图12-2 SOAP服务如果服务没有开启,需要在PHP配置文件中开启,如以下代码所示。其中参数1表示SOA服务描述文件,即WSDL文件,该文件是SOAP通信的核心;参数2表示SOAP协议版本,常用的版本有1.0及1.2,本章内容及示例全部基于SOAP 1.2版本实现。使用普通的Firebug等插件不能获取到异常信息,而断点调试是PHP的弱项,所以调试问题将会是SOAP开发首要面对的问题。......
2023-11-04
下面通过示例代码,演示Cookie函数的实际应用。Cookie能够存放包括中文在内的字符,但长度需要控制在225个字符之内。通过前面的学习,相信读者已经能够掌握Session及Cookie的操作了。虽然Cookie存放于客户端,但是并不意味着Cookie不适合用于会员验证等场景。所以很多网站会使用加密的方式存放Cookie用户名及密码,甚至结合软件与硬件签名实现高度安全的Cookie。总而言之,使用Cookie存放登录数据是可行的,但要做好加密与解密相关操作。......
2023-11-04
比如MySQL服务器集群,只是由于习惯性的问题,多数程序员都称为分布式数据库。分布式数据库的特点是多台数据库服务器轮流对外提供服务,并提供冗余、容灾等基本功能,确保操作不中断。下面以默认的MySQL驱动为例,详细介绍ThinkPHP连接分布式数据库的过程。......
2023-11-04
相关推荐