为什么那么多难民Zend1 比 Zend2 大那么多?

Zend Framework 各类库介绍使用方法
Zend Framework 各类库介绍使用方法
发布时间: 17:09:52&&
编辑:诗意的边缘
阅读:(277)
其实zend做的只是把一个超级牛的专业phper的全部知识打包成一个程序包,提供给大家使用。当然这个phper的习惯不一定符合你的需求,只拿需要的内容吧。
这些都看过之后,可以自己挑部分源码出来,做自己专属的zend framework应用,或者专门做MVC的zend framework。
Access control list 实现角色对资源的权限模型。只是个概念,我正在用的权限方式基本上跟acl差不多,acl在权限方面并没有什么创新的。而且需要去扩展acl要写更大量的代码。不如自己写。
验证,只负责验证,传说中有HTTP认证和支持openID。对我来说只是传说…验证就是去对比一下是或否,然后分别操作。
Zend_Cache
缓存。这个比较有用,最起码教给我们一种最简单的缓存方法,一对if else,有缓存,读缓存,没缓存读数据库存缓存。zend_cache有三大特色,也就是让你用zend_cache不用其他的缓存的三个优势。1标识缓存记录唯一性,省的自己做了。2生命周期,也省的自己做了。3条件执行…其实zend_cache最值得我们学习的是分开了前端和后端,这两个分别负责不同的事情,后端负责存储,前端负责参数等等。关于缓存,基本上是系统有,程序有,服务器有,连smarty都有…
Zend_Config
传说中的操作配置,这个配置的操作在PHP中已经有支持,做的也不错。Config中最好的是可以读xml格式…其实能读什么和xml的配置是什么格式都是zend规定的。我看了他们最常用的DB的配置。那种结构不是普通的配置文件。更多的层次。更多的规则。也许会更清晰吧。
Zend_Console_Getopt
帮助命令行程序解析它们的选项和参数。这句是抄来了。确实和现实的开发没什么关系,有人用过吗?听说可以把这句(rm * -fr)解释出来,但是解释出来后干什么???解释它做什么???
Zend_Controller
这个是最关键部分之一,zend最核心内容之一,最让PHPER感到zend可用的部分之一,跨时代的php产物之一。内容太多了。需要注意:NowaMagicController::blogmmmyyyAction()在URL中是这样的nowamagic/blog-mmm-yyy ,或者中间是用 。 分隔开。所以建议还是写成这样:NowaMagicController::blogmmmyyyAction()。当然还有很多很多很多的地方需要注意。zend的规范实在是多了些。
Zend_Currency
这个是处理钱的问题的,就是根据不同的地区,使用不同的货币格式。$1000 or ¥1000。
典型的西方式的日期解决方案,就是关于日期型数据的操作。
大多数项目所必须的,既然结合了zend来开发项目,就要看一看zend_db提供的类到底比我们的好在哪里。Zend_DB使用的是pdo,所以一定要打开这个扩展…费话。仅次于Controller的zend第二大被经常使用的类。包括各种数据库的操作封装,连select都有专门的使用方法。再也不用写完整的sql语句了?不好吧。反正我用到的只是其中一少部分。包括连接。查询。特别的插入,更新,删除操作。
Zend_Debug
这个用于调试,简单的调试。相当于echo $当然它会输出更详细的信息。
Zend_Exception
异常处理,Zend使用过程中的异常。有兴趣拿DB测试一下,自己抛着玩。
Web应用吧,Feed中最需要看的就是rss和atom,感觉atom更现代一点,最少是看上去比rss更好一些。
Zend_Filter
各种乱七八糟的过滤。需要的时候去查一下,也许你会发现php的函数使用起来会比这个东西方便。只是也许。
这个东西似乎是为标准程序员准备的,所谓标准程序员就是一点也不考虑界面,当然标准程序员一定不是一个好的web程序员。没有web程序员不懂html的。呵呵。这个意义对我来说不大,对其他人我就不知道了。用来生成一个html表单。
Zend_Gdata
Gdata是Google Data的缩写,当然也就是google的东西,但是不包括著名的gmail,search,map。这个只是google data API。对google的API感兴趣的可以研究一下。俺不是GOOGLE迷…也不是baidu迷。
这部分是我目前主要研究php的方向。当然zend做了很多有意义的事情。zend_http很像php的curl,感觉没有curl强大,不过curl的操作有点不透明,使用起来感觉对了都不知道怎么对的。这个东西还需要改进啊。比如可以在这个东西的基础上开发一个检测http的类。呵呵。我比较喜欢。
Zend_InfoCard
传说中的个人身份认证信息。只是传说中的,应用很少的。
JavaScript Object Notation,这个东西负责对json的操作,其实就是编码解码…对json感兴趣的研究一下。我是没什么兴趣…
Zend_Layout
一个和view有关的,实现了二级视图的东西。这个我更习惯于使用zend controller或者shtml来解决。方法不同。
Zend_Loader
动态加载,当然是和静态的include做对比。可以根据需要加载。当然这是一个模糊的概念,不过确实省去了不少的工作。很不错的代码。效率?呵呵。
Zend_Locale
国际化?本地化?就当成是国际化的东西吧。谁想知道马永占翻译成意大利语是什么?反正我是用不到。
通用的log记录。很像操作系统内的log也很像apache里的log。有点像我写的log…Zend_log里面最好的两个概念:1分级error级notice级等等,zend分了8级,2保存log,zend可以把log放到输出,数据库,文件当中。当然我们最常用的就是输出到文件。zend_log给了我不少的启发。用于改进我的MyZ_log。很有用的东西。
目前我在用的是一个php写的smtpMail类…当然zend也是php写的…如果你正好要用mail,或者觉得原来的mail函数不够好的话,建议看看zend_mail。
Zend_Measure
用于转换,最简单的例子是把英尺转成公尺。对于我们这样的小庙…用不上啊…
Zend_Memory
内存管理,恩。这个来头不小。程序级的内存管理。不了解…底层程序员也许会关心这个程序级的内存管理吧。
多用于mail函数的mime,当然也可以自己使用。
Zend_OpenID
OpenID啊。很火的东西,目的是整合世界上所有的帐号,不过现实的情况是每个厂商也不愿意被整合。都想着怎么整合别人。所以这个东西发展的不是很好。
Pdf一种文件格式,是adobe的,就是电子书最经常用的格式。zend被宣传说支持pdf操作,我想这东西有必要宣传吗?难道是zend的主要功能?太小题大做了吧。
Zend_Registry
将一个东西(变量,数组,类…)注册到全局应用当中,就是write once use anywhere ,当然这个anywhere是指你的整个项目。开销是不是大了些?但是如果你经常用的话,这样做会很有帮助。免去了每次使用都要new class。
这个来头也不小。zend里面到处都是经典的程序。rest类似于xmlrpc和soap,是一种目前最新的web service,使用似乎没有xmlrpc多。也没有soap多。传说中我还有一份rest之父的论文…传说中的zend。
Zend_Search_Lucence
基于文本的搜索引擎,当然是改编于那个Lucence,现在开始怀疑,zend是不是象称霸php。怎么什么都写…没试过。
Zend_Server
为其他zend的类提供支持。是一个基础类。当然也可以自己拿出来用。也许你能开发出来比rest更优秀的web service靠这个东西…
Zend_Service
网络上的除了google的各种服务,为啥要把google单拿出来呢?不好实现?还是google太强大了…这些我是一个也没用过…会用到的。当初在csdn看到一个牛人用delicious在自己的csdn博客上加上了相关文章…(我多次请求csdn,加上相关文章,结果石沉大海…这老兄真的很猛。csdn给不了我们的。我们自己做。没有枪没有炮,我们自己造。)
Zend_Session
这个是个好东西,提供存储session和提供session的API,当然这个是为了跨域名,跨服务器准备的。当然也能代替传统的session_start()…如果你想这么做的话…
Zend_Translate
解决了语言问题。。。最另我高兴的是看到了zend使用.mo文件。这个mo文件是在drupal里的语言包。zend做的不错。
验证url的类,这个也是基础,是被其他zend成员调用的。也能自己用。
Zend_Validate
校验器,前面有个filter是过滤的。这个是验证的。本质都是一样的。是判断是否符合规则,然后validate是返回对错。filter是直接把不符合的地方去掉。当然我们大家一定都有自己的过滤和校验器。好好的参考一下zend ,然后进行修改吧。
Zend_Version
这个是zend里源码最好读的一部分…是最简单的。建议无论是否想学习zend都去看一下…这样在和被人吹牛的时候就能这么说:zend啊。前几年我看过它的源码,写的不错…
Zend MVC当中一员。也能算上是五虎上将之一。不过在我这却没有被使用…我使用了smarty作为替换…感觉有点对不住zend,zend这么多东西,我只用了几个…哎…不过zend_view的helper很不错。可以替代手写,生成各种需要在view层显示的代码。
Zend_XmlRpc
Web service,xmlrpc是最简单的一种。当然zend的这的类也是完成80/20使命。我想用的人很少吧。
Zend也挺符合2/8理论的,20%的程序被经常使用。剩下的用的很少。但是作为一个完整的framework,zend是经典的。
来源:网络(0)商品编号:
京 东 价:
[定价:¥]
支  持:
合约套餐:
请选择套餐内容
 您选择的地区暂不支持合约机销售!
白条分期:
在线客服:
服务支持:
Zend Framework技术大全(附光盘1张)
加载中,请稍候...
商品介绍加载中...
扫一扫,精彩好书免费看
京东商城向您保证所售商品均为正品行货,京东自营商品开具机打发票或电子发票。
凭质保证书及京东商城发票,可享受全国联保服务(奢侈品、钟表除外;奢侈品、钟表由京东联系保修,享受法定三包售后服务),与您亲临商场选购的商品享受相同的质量保证。京东商城还为您提供具有竞争力的商品价格和,请您放心购买!
注:因厂家会在没有任何提前通知的情况下更改产品包装、产地或者一些附件,本司不能确保客户收到的货物与商城图片、产地、附件说明完全一致。只能确保为原厂正货!并且保证与当时市场上同样主流新品一致。若本商城没有及时更新,请大家谅解!
权利声明:京东上的所有商品信息、客户评价、商品咨询、网友讨论等内容,是京东重要的经营资源,未经许可,禁止非法转载使用。
注:本站商品信息均来自于合作方,其真实性、准确性和合法性由信息拥有者(合作方)负责。本站不提供任何保证,并不承担任何法律责任。
印刷版次不同,印刷时间和版次以实物为准。
加载中,请稍候...
uiu000(江苏)
yuanxinily(辽宁)
lingyunyyh(河北)
jd_cfaner(上海)
chinays(云南)
chenyu0720(广东)
Archermo(陕西)
__小灰机__(上海)
他勒个擦(北京)
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
浏览了该商品的用户还浏览了
加载中,请稍候...
七日畅销榜
新书热卖榜
iframe(src='///ns.html?id=GTM-T947SH', height='0', width='0', style='display: visibility:')Zend Framework 2.0的Mvc结构及启动流程分析
首先需要明确的是,Zend2.0的启动以及MVC构架是完全基于事件驱动的。如果对事件驱动还不太了解的话,应该先弄清楚,并掌握基本的EventManager用法,这是阅读本文的基础。请参考。
基于事件驱动MVC与传统的MVC有什么不同,简单说就是由传统的复杂流程式调用过程。变成了先在某处注册事件,然后在某处触发事件的简单二元关系,事件不受代码结构和调用流程的影响,可以方便的解除耦合。
而在也是Zend1中完全没有的概念,在我的理解来看,ServiceManager的引入是ZF2开发小组对于引入Di可能带来的元数据式编程问题()的一种。
ServiceManager带来的好处是:
将整个Zend构架的主要部分形象化,让结构更有组织,更利于理解
简化Di的配置,降低学习成本
进一步弱化了Bootstrap,让整个启动过程更加简洁
ServiceManager带来的不好之处是:
将Di做一层封装,无法直接通过配置文件控制整个构架
自定义需求比较高的时候,反而提高了学习成本,因为在学习Di的同时还要学习ServiceManager
那么闲聊至此,开始进入真正的,这里以5月21日的为例:
第一部分:初始化ServiceManager
ZendSkeletonApplication/public/index.php
$configuration = include 'config/application.config.php';
$serviceManager = new ServiceManager(new ServiceManagerConfiguration($configuration['service_manager']));
$serviceManager-&setService('ApplicationConfiguration', $configuration);
读取整个应用的基础配置文件,初始化Mvc框架所需要的ServiceManager。
这个过程中默认所依赖的所有类都写在Zend\Mvc\Service\ServiceManagerConfiguration中。ServiceManager的内部被划分为5类
services 服务
factories 工厂
abstractFactories 抽象工厂
aliases 别名
shared 共享服务
项目的配置文件application.config.php会复写Zend的默认配置并载入,比如如果需要使用一个自定义的服务,可以在配置文件中这样写
'service_manager' =& (
'use_defaults' =& true,
'services' =& (
'ViewManager'
=& 'EvaEngine\Mvc\View\ModuleViewManager',
第二部分:初始化模块
ZendSkeletonApplication/public/index.php
$serviceManager-&get('ModuleManager')-&loadModules();
ServiceManager中的ModuleManager,本质上是对Zend\Mvc\Service\ModuleManagerFactory的一个封装,主要做的工作包括:
获得项目配置文件中需要载入的模块列表
按配置遍历模块,分别载入模块的配置文件
合并模块的配置文件
在配置文件中,可以通过modules节点控制具体载入哪些模块。
模块的载入同样采用了事件驱动,通过模块管理器Zend\ModuleManager\ModuleManager配合模块事件Zend\ModuleManager\ModuleEvent实现,在载入模块的过程中会依次触发
loadModules.pre 所有模块载入前
loadModule.resolve 每个模块载入
loadModule 每个模块载入后
loadModules.post 所有模块载入后
第三部分:启动MVC
终于到了MVC部分,整个MVC的流程都伴随着事件驱动,ZF2将其定义为MVC事件,按照执行顺序依次包括:
bootstrap 引导
route 路由
dispatch 分发
render 渲染
finish 结束
所以为了方便说明,将
ZendSkeletonApplication/public/index.php的
$serviceManager-&get('Application')-&bootstrap()-&run()-&send();
拆分为三个阶段
Bootstrap引导阶段
$app = $serviceManager-&get('Application')-&bootstrap();
在Zend1中,Bootstrap曾经是MVC的核心部分,在ZF2中,由于事件驱动的引入,这一部分变得非常简单清晰:
首先在Zend\Mvc\Application&bootstrap()中,注册了所有MVC事件,初始化MvcEvent(将Request/Response/Router等注入),同时触发bootstrap事件。
这一过程中,View部分的初始化相对复杂,单独说明如下
Zend\View的构成
在ZF2中,View部分同样做了非常大的改动,将Layout,Helper都合并入View。在Zend1中,Layout是一个独立存在的组件,而ZF2中将Layout和Template统一称为ViewModel,ViewModel是树形结构,这样就可以实现模板的递归嵌套,而在ZF2中的Layout,本质上就是位于树形结构最底层的ViewModel。
ZF2的View由以下几个部分组成,称呼是个人的翻译,不当之处还请指正:
View\View 视图,主要接管MVC事件
View\Strategy 策略器,统筹安排视图的主要容器Placeholders,同时会将视图的最终结果放入容器,拼合为最后呈现给用户的内容
View\Resolver 决策器,定义模板命名与实际路径的映射关系,同时决定模板最终对应的实际文件
View\Renderer 渲染器,在决策器的辅助下,将ViewModel转换为文本输出。一个渲染器必须对应一个决策器才能工作。
View\Model 视图模型,包括了视图中可能用到的所有变量。自身为树形结构,一个视图模型可以包含若干子模型
View\Helper 视图助手,辅助生成HTML标签
在MVC构架中,Zend\Mvc\View\ViewManager会整合上述所有部分,最终构成整个视图。
Zend\View的初始化
回到上一节,在bootstrap事件被触发时,视图部分做了一些主要的准备工作,包括:
指定一个MVC专用的策略器Zend\Mvc\View\DefaultRenderingStrategy,在这个策略器中将最顶层的ViewModel重定义Layout。注册MvcEvent::EVENT_RENDER事件
注入模板监听Zend\Mvc\View\InjectTemplateListener,最主要的作用是通过Controller和Action的名字来生成默认的视图名
注入视图模型监听Zend\Mvc\View\InjectViewModelListener
那么其实我们可以得出结论,Zend的Mvc中在bootstrap阶段,视图的所有准备工作都已经就绪了,并没有等到路由结束或者Controller启动。这样做的用意在于当路由失败时,仍然可以有对应的视图来呈现异常结果。
MVC启动阶段
ZendSkeletonApplication/public/index.php
$response = $app-&run();
启动阶段对应的事件有
route 路由
dispatch 分发
如果异常发生,则会提前结束启动过程,分发事件有可能不会触发而直接触发finish(结束)事件。
Route路由启动
ZF2的路由最有意义的重构是允许路由以树形结构排布,路由之间可以设置优先级。简单的介绍可以参考。所以ZF2的路由可以实现分别在每个模块下设置,同时可以在某些模块提高优先级别。非常适合大规模应用的部署。
在路由启动过程中,Zend\Mvc\RouteListener&onRoute()被触发,路由从树形结构逐一匹配,最终以Zend\Mvc\Router\RouteMatch对象的形式返回一个最适配的路由。
Dispatch分发过程
ZF2的Dispatch分发其实有两次,一次是在Zend\Mvc\Application中,目的是将匹配的RouteMatch通过参数定位到某个特定的Controller,另一次是在Zend\Mvc\Controller,目的是将Request/Response注入,同时运行对应的Action。
//分发事件被触发
Zend\Mvc\DispatchListener-&onDispatch();
//根据匹配路由的参数定位到某个controller
$controller = $controllerLoader-&get($controllerName);
//触发controlller的dispatch
= $controller-&dispatch($request, $response);
发送最终响应并结束MVC
ZendSkeletonApplication/public/index.php
$response-&send();
分发结束后,如果正确的从controller获得响应,会继续运行
Zend\Mvc\Application-&completeRequest()
这里会触发MVC事件的最后两个
render 渲染
finish 结束
//调用MVC默认策略器的render事件
Zend\Mvc\View\DefaultRenderingStrategy-&render();
Render事件会将Zend\View的各部分整合,最终组装成一个Zend\Http\PhpEnvironment\Response,发送给用户。
这就是Zend2.0的MVC完整过程。
Donate: | 文章有帮助,可以PHP官方框架 Zend Framework 2.1 发布_业界资讯_阳光部落
Zend Framework (简写ZF)是由 Zend 公司支持开发的完全基于 PHP5 的开源PHP开发框架,可用于开发 Web 程序和服务,ZF采用 MVC(Model–View-Controller) 架构模式来分离应用程序中不同的部分方便程序的开发和维护。
在日正式发布了2.0版本,简称为ZF2,该版本的主打口号则是“高性能”。目前的最新版本为 Zend Framework 2.1,是ZF2里的首个正式版本。最新版本除了对原有组件功能进行大幅提升外,还新添两个新成员:
ZendService_Apple_Apns:专为iOS系统提供通知功能。
ZendService_Google_Gcm:为Android提供通知功能。
此外,Enrico Zimuel还研发了zftool.phar,用来给该框架提供工具支持,目前支持的功能有:
创建骨架应用程序(Skeleton application)
可以在骨架应用程序里创建模块
自动加载classmap
把ZF2安装到目录下
在现阶段,开发大中型PHP应用,特别是商业应用和企业应用,ZF2是一个非常不错的选择,因为ZF2有严格代码规范,非常适合团队开发。而ZF2作为Zend官方的支持产品,整体的可靠性和BUG的响应速度也都是有保证的。
官方网址: /
下载最新版本: /downloads/latest
API下载地址: /docs/api/
ZF2在GitHub上的代码托管地址: /zendframework/zf2/
相关内容:您所在的位置:&>&&>&&>&
更新时间: 18:23:29
访问人数:人
授权类型:已注册版
安装类型:安装版
软件语言:英文
软件大小:276 MB
运行环境:Windows操作系统
官方主页:
Zend Studio是当今最伟大的PHP集成开发环境!Zend Studio是屡获大奖的专业 PHP 集成开发环境,具备功能强大的专业编辑工具和调试工具,支持PHP语法加亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的PHP代码调试工具,支持本地和远程两种调试模式,支持多种高级调试功能。
Zend Studio 是专业开发人员在使用PHP整个开发周期中唯一的集成开发环境 (IDE),它包括了PHP所有必须的开发部件。通过一整套编辑、调试、分析、优化和数据库工具,Zend Studio 加速开发周期,并简化复杂的应用方案。
Zend Studio是Zend Technologies开发的PHP语言集成开发环境(Integrated Development Environment IDE)。也支持HTML和js标签,但只对PHP语言提供调试支持。因为是同一个公司的产品,所以提供的Zend Framework方面的支持比其他软件好。Zend Studio5.5系列后,官方推出利用了Eclipse平台,基于PDT的Zend Studio for Eclipse 6.0,之后的版本也都构建于Eclipse。
Zend Studio包括了PHP开发所有必须的部件,通过一整套编辑、调试、分析、优化和数据库工具,使用Zend Studio 缩短了开发周期,并简化了复杂的应用方案,无容置疑,其已经是当今世上最强大的PHP集成开发环境。
Zend Studio的强大之处,除了一般编辑器所具有的代码高亮,语法自动缩进,书签功能外,它内置的调试器更是无可挑剔,支持本地和远程(debug server)两种调试模式,支持诸如跟踪变量、单步运行、断点、堆栈信息、函数调用、查看实时输出等多种高级调试功能。另外,最新版(Zend Studio 5.5.1)对中文的支持也是非常稳定的。
提示:本站解压密码: 百度:后即为提取密码!另外所谓特别版本就是注册或破解版本
版本:v12.0.1 破解版
本站高速下载地址
版本:v11.0.2. 注册版
版本:v10.6.0. 注册版
版本:v10.5.0. 注册版
版本:v10.0 注册版
下载声明:
1.所下载文件的详细使用方法请参考压缩包中的Readme.txt使用说明文档!
2.不会用网络防火墙来屏蔽软件联网请求的各位看官请浏览图文教程
3.在用备用下载(城通网盘)下载时别用迅雷下载容易掉线,直接用普通不限速下载保存速度更快更稳定!不会下载的朋友请点击这里查看
4.本站不得已放了点广告,主要为了空间费用。大家如果不喜欢广告,推荐使用或者来访问本站,广告基本都会被过滤掉!
5.本站资源解压所需软件:,统一解压密码: 或者
6.如果您发现文件已不能下载,请给我留言反馈;我会马上修复的,谢谢!
7.本站所有软件都是由网友推荐,并由小编精挑细选经过详细测试而来!
8.本站所有资源均为网络收集而来,仅供学习交流之用,请在下载试用后24小时之内删除,勿用于任何商业目的与商业用途。
9.如本站不慎侵犯你的权益请,我们将马上处理,撤下所有相关内容!
栏目导航:
利用显卡GPU来一键破解无线WIFI网络密码,让蹭网不再是梦想
国外非常流行的系统优化工具!这个是官方中文安装版!
极速下载器!提升你的下载速度最多达5倍!
超强视频编辑软件,自带300种特效,可将影片图片声音等制做成视频
超强音乐播放管理工具!涉及音乐你所能想到的所有工具都具备!
最好的数码照片处理套件!这个是最新的5.6 Final 官方中文正式版!
找回丢失的Windows 8开始菜单!让Win8和Win7一样!
世界销量第一的极致高清播放软件!内置对简体和繁体中文的支持!
非常好的系统优化软件!TuneUp Utilities和AVG安全辅助软件的结合
世界上最好的杀毒软件之一!这个是带网络防火墙的版本!
合作伙伴:

我要回帖

更多关于 为什么付出那么多 的文章

 

随机推荐