解读Zend框架(一) MVC模式

随着信息技术的发展,人民生活素质的提高,电脑配置和网速的迅速提升,Web 应用程序已经再也不是单纯的Html就能够满足用户的视觉享受和口味的。因此自从Web2.0概念提出后,互联网应用变得越来越复杂,多项技术并行交互应用,使得传统的设计思想和开发模式已经无法满足对于当下的开发需求。不管后来的PHP框架如何革新,类Rails也好,领域驱动也好,据不完全统计,99.9%的PHP Web框架都离不开一个本质的核心——MVC。

想要对Zend框架探个究竟,将需了解何为MVC设计模式:

MVC(Model-View-Controller/模型-视图-控制器),是标准23种设计模式中的一种为了简化应用开发和维护,将系统代码解耦的设计模式(注:个人认为目前的PHP框架的解耦仍不纯粹,仅框架自身解耦,默认应用结构仍然耦合度较高,需要各位看官自己在耦合度和开发效率上进行权衡)。

Model模型,通常定义为处理系统中的业务逻辑,如DB访问,各种系统业务的计算,对系统数据的处理等等,但请记住一个很关键的特性,数据库的封装访问一定是在模型中实现的,因此,在控制器层出现SQL查询是件不令人愉快的事情。

View视图,视图应该是和前端设计人员紧密结后的一层,它主要处理页面的显示逻辑,如Html,Css,JS,AS等等和UI/UE相关的设计都应该且仅应出现于此。视图的使用目的,就是让显示模板中不要出现任何类型的业务逻辑处理和数据操作,你可以在视图中用循环输出数据,但是请不要赋值计算

Controller控制器,顾名思义,人体的大脑就是一个中枢神经控制器,你的每一个想法,动作,思绪都是靠大脑指挥实现,否则你轻则语无伦次,重则神经错乱,呵呵,此为玩笑。它负责将模型中的数据加载,并显示于指定的视图模板中将视图和模型很好的结合在一起,注意,此处为结合而不是耦合,每一层仅应做自己该做的事情,不要跨层访问。至于框架如何将请求分发到正确的控制器中,将会在后续文章中介绍。

因此,前文中提到的Smarty模板框架,应该理解为是一个V-C框架,因为他仅实现了PHP和Html的分离,而没有做到业务逻辑区块化。所以Zend重新提出Zend Framework,而Smarty项目目前的开发进度缓慢。

既然几乎每个PHP框架都在使用MVC,那么ZF最大的优势在何处呢?——大而全,多却不拖沓,ZF丰富的组件封装让人兴奋,有助于用户轻松的实现自己的业务而无需找第三方类库替代。很多用户都曾抱怨说ZF的庞大臃肿,但是经过Zend工程师不断的技术改良,ZF是一个耦合度非常低的框架,每个组件几乎不依赖于其他组件,这样的松耦合结构可以让开发者独立使用组件, “use-at-will”设计。 如果你愿意,可以仅保留其MVC核心类库,包括Zend_Db等都可以不用,当然你也可以很开心的将这些类抽离出来移植到你的非ZF的应用中去,体验ZF的开发乐趣。

通过利用MVC模式来实现框架的结构,在系统构型上使得PHP语言可以满足企业用于拆分复杂业务逻辑的需求,因此,PHP框架的诞生以及PHP5重点强化的OO特性,使得PHP在抢占应用级市场份额的大战中可以分一杯羹。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值