热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

走进ZendFramework框架编程1(开篇)

开篇这不但是ZendFramework的入门教程,还是对ZF应用层面的一个深入解读。希望带给大家一次愉快的学习过程。1,php发展现状—面向过程和面向对象PHP的发展也不是一帆风顺:从2000年左右PHP3.0的风行,到2005年PHP一度陷入低谷,再到现在PHP的再度崛起,PHP走过了一条曲折的道路。PHP从5.0开始,面向对象的功能趋于完善,
开篇

这不但是Zend Framework的入门教程,还是对ZF应用层面的一个深入解读。希望带给大家一次愉快的学习过程。

1,php发展现状—面向过程和面向对象
PHP的发展也不是一帆风顺:从2000年左右PHP3.0的风行,到2005年PHP一度陷入低谷,再到现在PHP的再度崛起,PHP走过了一条曲折的道路。PHP从5.0开始,面向对象的功能趋于完善,然后是Zend Framework的发布,能够看出Zend公司向企业开发市场进军的意图和雄心。
PHP在4.0之前,主要以面向过程的开发为主,代码中包含着大量的系统函数和用户自定义函数。但是即使PHP5.0之后充分考虑了对类和对象的支持,但是大多数程序员的代码中真正应用对象的时候并不多,程序员还是习惯像asp一样书写结构化的面向过程的代码。面向对象的好处并没有被大家充分挖掘出来。

2,框架的概念
框架就是提供一种可以在多个应用程序中使用的设计。所有应用程序都有大量通用的基本的东西,比如类与数据库的接口、某些程序逻辑、应用程序呈现给用户的内容等等。如果大家编写过许多 PHP 应用程序,就会知道这些东西是什么。大家可能编写过一组函数,从数据库中读取数据,或向数据库中写入数据;可能已经使用过诸如 Smarty 之类的模板引擎。如果大家编写过很多应用程序,则可能一次又一次地做过相同的某些工作。有时还会将一个应用程序中的代码复制、粘贴到另一个应用程序中。
框架专门用于为这些常用的操作(数据库交互、表示层、应用程序逻辑)提供结构,以便程序员可以花费更少的时间来编写数据库接口代码或者表示层接口,而花费更多的时间和精力来编写应用程序本身的业务逻辑。以这种方式分解应用程序,这种架构被称为模型-视图-控制器(Model-View-Controller,MVC)。模型指数据,视图指表示层,而控制器指应用程序逻辑或业务逻辑。(MVC的具体概念和解释大家可以上网去搜索)。

3,框架选择—向企业开发市场进军:Zend Framework(简写为ZF)
每种语言几乎都有若干个框架可用。选择刚好满足业务需求的框架可能有点为难,但是选择框架时应当要求其节省的时间和精力越多越好。如果一个框架工作得很好但是耗费大量的支持成本;或者即使易于支持,但是起到的反作用大于正面辅助开发作用,那也不是一个好的框架。如果一个框架十分“优雅”,但是在支持和开发中问题频发,那么这个框架也是没有任何用处的。
选择框架时,要考虑客户、程序员和所有相关人员的意见。并且在评估时,考虑到各种影响。还要进一步考虑项目要求,看是不是真的需要一个框架。框架不是必需的,即使不使用框架,也完全可以编制应用程序。
我们需要考虑:框架会对项目有帮助么?它是否会节省每个人的时间和精力?应用程序在框架中是否会执行得更好?……如果所有答案都为否,那么使用框架只会把事情变得复杂。
目前流行和比较流行的PHP框架已经不少,例如Zend 框架,CodeIgniter,symfony,CakePHP,FleaPHP等。选择学习一个框架可能全凭个人爱好,但从发展前途和流行程度考虑,我选择了Zend公司自己开发的框架Zend Framework,主要原因是ZF系出名门,并且是正宗嫡亲。并且ZF和现在流行的Ruby On Rail(RoR)在设计上有许多相似的地方,学习ZF对以后从事RoR开发可能也会有所帮助。

4,学习ZF必须的软件和推荐的环境
所有软件的学习(和开发)都必须从搭建环境、安装软件开始。本次也不例外。虽然这些工作经常是系统管理员的分内工作,但是作为程序员,亲自做这些工作,熟悉软件的环境搭建、配置,会对程序开发带来很大的好处,因为环境配置有时和代码有直接的关系。
可能不同以往的是,由于我们是在开源的大环境下工作,所以我们的软件来源就是去网上下载。虽然PHP是“LAMP”(linux、Apache、MySQL、PHP)的一员,但是在学习和开发时,一般习惯在Windows下进行,原因是Windows使用方便,并且在Windows下开发、在Linux下部署,可以检验代码在不同OS下的表现。
ZF学习强烈建议在Apache环境下进行,原因以后会重点讲解。在Apache下调试完毕,可以在IIS下测试—IIS同样需要做额外的配置,以后也会重点讲解。同样强烈建议在Apache下而不是在IIS下,开发和部署实际的软件项目。

以上就是走进Zend Framework框架编程1(开篇)的内容,更多相关内容请关注PHP中文网(www.php1.cn)!

推荐阅读
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • .htaccess文件 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • 项目运行环境配置及可行性分析
    本文介绍了项目运行环境配置的要求,包括Jdk1.8、Tomcat7.0、Mysql、HBuilderX等工具的使用。同时对项目的技术可行性、操作可行性、经济可行性、时间可行性和法律可行性进行了分析。通过对数据库的设计和功能模块的设计,确保系统的完整性和安全性。在系统登录、系统功能模块、管理员功能模块等方面进行了详细的介绍和展示。最后提供了JAVA毕设帮助、指导、源码分享和调试部署的服务。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • Mono为何能跨平台
    概念JIT编译(JITcompilation),运行时需要代码时,将Microsoft中间语言(MSIL)转换为机器码的编译。CLR(CommonLa ... [详细]
  • gitlab重置password
    ruby没怎么学,自己搭建的gitlab的rootpassword又忘了。幸好看见此帖子,试验okhttp:roland.kierkels.netgitreset-your-git ... [详细]
author-avatar
大爱河曲Q网
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有