走进Zend Framework框架编程(一):开篇

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

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下,开发和部署实际的软件项目。

    5,需要的软件:
    Windows Server2003+SP2
    mySQL for Windows:一般和Windows安装在一台机器上。也可以不在同一台机器上,也可以是mySQL for Linux。下载地址:http://www.mysql.cn
    Apache for Windows:Apache现在的版本是2.2以上版本。下载地址:http://httpd.apache.org
    PHP及其附属软件:本教程用PHP-5.2.5。安装了ZendOptimizer-3.2.6-Windows-i386.exe。下载地址:http://www.php.net/downloads.php
    Zend Framework:Zend Framework 要求PHP 必须是5.1.4 或以后版本,建议最好是5.2.2或以后版本。1.5.2是ZF的最新版本。我的教程是在ZF1.5.1下调式的,与ZF1.5.2差别应该不大。下载地址:http://framework.zend.com











本文转自网眼51CTO博客,原文链接:http://blog.51cto.com/itwatch/286454,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
前端开发 关系型数据库 开发工具
构建自己的MVC框架(Ruby语言实现)-- 开篇
构建自己的MVC框架(Ruby语言实现)-- 开篇
|
8月前
|
中间件 PHP 数据安全/隐私保护
【Thinkphp 6】框架基础知识
【Thinkphp 6】框架基础知识
110 1
|
3月前
|
开发框架 数据库 开发者
揭秘Python Web开发框架的奇妙之旅
在当今数字化时代,Python Web开发框架成为了构建高效、灵活和可扩展的Web应用程序的首选工具。本文将带您深入探索两个备受赞誉的框架——Flask和Django,并分析它们的概念和实践,为您揭示其背后的奇妙之处。
20 3
|
7月前
|
前端开发 关系型数据库 开发工具
构建自己的MVC框架(Ruby语言实现)-- 第一章 从零到“它工作了!”
构建自己的MVC框架(Ruby语言实现)-- 第一章 从零到“它工作了!”
|
11月前
|
分布式计算 NoSQL Java
1..Net平台历程介绍和.net framework和netcore的架构体系对比,以及框架的选择介绍
1..Net平台历程介绍和.net framework和netcore的架构体系对比,以及框架的选择介绍
174 0
|
Linux C++
Framework笔记 | 引子
Framework笔记 | 引子
|
存储 XML 移动开发
【重温基础】17.WebAPI介绍
【重温基础】17.WebAPI介绍
127 0
|
开发框架 JSON 移动开发
基于.NET平台常用的框架整理
自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开源的组件,就目前想到的先整理于此,如果再想到,就继续补充这篇日志,日积月累,就能形成一个自己的组件经验库。
1007 0
VB编程的好帮手--【VB源码之友】快速进阶
B源码之友是VB软件开发的好助手,它即能规范源码开发的格式,又能提高编程的速度,是一款不可多得的好工具
2361 0
|
Web App开发 缓存 .NET
【推荐】【给中高级开发者】构建高性能ASP.NET应用的几点建议
本篇目录 早期阶段就要对应用进行负载测试 使用高性能类库 你的应用是CPU密集还是IO密集的 使用基于Task的异步模型,但要慎重 分发缓存和会话(session)状态 创建Web Gardens 巧妙地使用缓存和懒加载 不要在MVC视图中放C#代码 适当时使用Fire & Forget 为x64 CPU创建 使用服务器上的监视和诊断工具 分析运行中的应用 如果你在构建一个面向公众的web站点,那么在项目结尾时你想要实现的就是web负载性能良好。
1421 0