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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

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,如需转载请自行联系原作者

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
前端开发 关系型数据库 开发工具
构建自己的MVC框架(Ruby语言实现)-- 开篇
构建自己的MVC框架(Ruby语言实现)-- 开篇
|
4月前
|
中间件 API 开发者
Bottle框架探秘:如何用几行代码搅动Web开发江湖?
【8月更文挑战第31天】Bottle是一个仅依赖Python标准库的轻量级Web开发微框架,无需额外依赖,简化部署与维护。它以简洁高效著称,适合快速构建Web应用。通过简单的示例即可上手,如用几行代码实现“Hello World”应用。除基础功能外,Bottle还支持模板渲染、会话管理和表单处理等,适用于学习及小型项目,也能在高性能要求的应用中展现价值。无论是新手还是有经验的开发者,Bottle都是高效Web开发的理想选择。
46 1
|
4月前
|
安全 数据库 开发者
揭秘!Python Web开发新宠儿Web2py,轻松打造博客竟有如此奥秘?一探究竟!
【8月更文挑战第31天】Web2py是一款全功能的Python Web应用框架,以其简洁、高效和全面的特点脱颖而出。它集成了数据库抽象层、表单处理、模板引擎等模块,使Web开发变得更简单、快速和安全。本文通过构建一个简单的博客应用,详细介绍了Web2py的安装、配置及实际应用,展示了其强大的功能和直观的代码结构,适合希望提高开发效率的开发者。
59 1
|
4月前
|
前端开发 JavaScript API
【独家揭秘】Bottle框架为何能俘获开发者的心?三大实战案例带你领略Web开发新境界!
【8月更文挑战第31天】Bottle是一款轻量级Python Web框架,以简单高效著称,秉持极简设计,适合快速开发小型项目或构建API服务。本文通过具体代码示例展示Bottle框架的独特魅力,从安装到创建应用、路由设置、模板渲染及表单处理等方面进行详细介绍,帮助读者轻松上手并掌握Bottle的应用技巧。
60 1
|
4月前
|
缓存 安全 PHP
深入浅出PHP框架:Laravel的优雅之旅
【8月更文挑战第15天】 探索PHP世界里的瑰宝,Laravel框架以其优雅、简洁著称。本文将带你领略Laravel的核心魅力,从安装到构建应用,再到高级特性的应用,让你轻松驾驭这个强大的工具。无论你是PHP新手还是资深开发者,这篇文章都将成为你理解并使用Laravel的指南针。
46 2
|
7月前
|
数据采集 存储 分布式计算
专为初学者设计:Nutch库Java下载器入门指南
Nutch是一款开源的Java爬虫框架,用于抓取、解析、提取和存储网页数据。基于Hadoop的分布式系统,Nutch支持大规模网络爬取,并提供各种插件,包括链接分析、语言检测和内容过滤等功能。 本文旨在介绍如何使用Nutch库编写简单的Java下载器,即能从指定URL下载网页内容的程序。目标是帮助初学者了解Nutch库的基本用法,并展示如何通过代理IP技术和多线程技术提升下载效率。假设读者已安装Java和Nutch,并具备一定的Java编程基础。
专为初学者设计:Nutch库Java下载器入门指南
|
6月前
|
存储 算法 编译器
程序与技术分享:C++模板元编程简介
程序与技术分享:C++模板元编程简介
47 0
|
前端开发 关系型数据库 开发工具
构建自己的MVC框架(Ruby语言实现)-- 第一章 从零到“它工作了!”
构建自己的MVC框架(Ruby语言实现)-- 第一章 从零到“它工作了!”
|
Web App开发 Java Spring
第12章 使用Kotlin开发Web应用《Kotin 编程思想·实战》
第12章 使用Kotlin开发Web应用 12.1 Kotlin集成Spring Boot开发Web应用 12.1.1 Spring Boot简介 12.
1573 0
|
Linux C++
Framework笔记 | 引子
Framework笔记 | 引子
下一篇
无影云桌面