`
lcffufly
  • 浏览: 33727 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

zend framework 1.8 的 Zend_Application

 
阅读更多
zf这段时间升级频繁,整合\重构\添加新特性,把这段时间重新学习的心得和大家简单分享.

1.8添加了应用模块(Zend_Application), 其目的就是对引导,资源初始化进行管理.以前我们引导和初始化数据库\VIEW 等操作全部要放在 application/bootstrap.php 文件里手动进行, 现在这些操作只要写入配制文件application/configs/application.ini.  由Zend_Application处理. 强调了资源配制的灵活配制.

大家刚看见这个Zend_Application后, 我们以前的一些思想会被混觉, 其实不然, 以前的套路还是没有变.我们先回忆一下以前的引导加载到结束的整个过程.  Zend_Framework_Front 我们之前认为他是一个前端模式类,什么都以它为中心,聚合了请求类(request), 响应类(response),路由器类(router),派发器类(dispatcher),插件类(plugin)  一个由客户端发起的请求到来之后路由类按指定的规则或默认的规则分析模块名称,控制器名称,动作名称,参数值. 然后请求类进行封装. 派发器类根据请求类的参数对相应控制器进行实例, 然后调用指定的控制器的动作. 最后动作助手类调用VIEW显示HTML. 整个过程一直都是在前端控制器内进行的.另外它会根据操作不同的阶段调用己注册插件的相应方法.

现在的Zend_Application会在实例之后根据配制文件的内容. 进行以下几种类型的操作.
1.更改PHP的选项. 也就是PHP.INI内的一些选项.前辍为phpSettings
2.指定加载的资源. 前辍为resources
3.设置包含路径.  前辍为includePaths
4.设置引导类.   前辍为bootstrap
5.注册资源插件路径.前辍为pluginpaths

上面的bootstrap类就是引导类. 它是Zend_Application工作的核心,资源的加载,资源插件的注册,都是它负责的.此bootstrap为Zend_Application聚合类.上面配制文件的5种类型的设置除了更改PHP选项和设置包含路径其余全部交由BOOTSTRAP类进行处理.对于bootstrap类如果没有手动指定则Zend_Application会实例为Zend_Application_Bootstrap_Bootstrap, 此对象继承自Zend_Application_Bootstrap_BootstrapAbstract.抽象类, 也就是说我们也可以建立自己的引导对象. 如Zend_Application_Bootstrap_Bootstrap就是一个简单的定制类. 我们可以直接继承Zend_Application_Bootstrap_Bootstrap对象,  然后直接使用或者覆写run方法.
大家仔细看Zend_Application_Bootstrap_Bootstrap的run方法,其取得了资源front后进行了派发.是的, front现在被bootstrap管理. bootstrap被Zend_Application管理.


资源的原理

资源有两种加载方法
1.插件加载方法
默认的资源插件目录为Zend\Application\Resource.资源插件前辍为Zend_Application_Resource,此目录下每个插件都是一个引导资源载入并返回的类.全部都实现了Zend_Application_Resource_Resource接口,bootstrap按配制文件application.ini指定的资源名称进行加载.我们可以指定自己的插件路径和资源前辍然后就可以在配制文件里设置自己的插件资源了.资源通过Bootstrap自动调用插件进行加载后存入Container类内(其为Zend_Registery).

2.类_init()加载方法
bootstrap类里如果有自己定制的以__init为前辍的方法, 则bootstrap加载资源时会调用此方法得到其返回值然后去掉此方法_init这五个字母得到真正的资源名并存入Container类内.


这样每次调用资源就会自动到bootstrap的Container属性内去寻找.
分享到:
评论

相关推荐

    Zend Framework 1.8 Web Application Development

    Zend Framework 1.8 Web Application Development

    ZEND FRAMEWORK 1.11.7 中文参考文档

    •Zend Framework 1.8 •Zend Framework 1.7 •Zend Framework 1.6 •Zend Framework 1.5 •Zend Framework 1.0 •Zend Framework 0.9 •Zend Framework 0.8 •Zend Framework 0.6 •Zend Framework ...

    Zend Framework 2 Application Development

    Whether you are learning Zend framework from scratch or looking to sharpen up your skills from previous versions, Zend Framework 2 Application Development will help you to harness the power of Zend ...

    Zend Framework教程之Zend_Layout布局助手详解

    本文实例讲述了Zend Framework教程之Zend_Layout布局助手。分享给大家供大家参考,具体如下: 一、作用 布局的作用和模版的作用类似。可以认为是把网站通用、公共的部分拿出来作为通用的页面框架。例如一个基本的web...

    Zend Framework教程之Zend_Registry对象用法分析

    本文实例讲述了Zend Framework教程之Zend_Registry对象用法。分享给大家供大家参考,具体如下: 使用对象注册表(Registry) 对象注册表(或称对象仓库)是一个用于在整个应用空间(application space)内存储对象和...

    Zend.Framework.1.8.Web.Application.Development.(2009)

    Zend.Framework.1.8.Web.Application.Development.(2009)

    Zend Framework 2 Documentation Release 2.4.8

    Zend Framework 2 Documentation Release 2.4.8 1 Overview 2 Installation 2.1 Using Composer 2.2 Using Git submodules 2.3 Web Server Setup 3 Getting Started with Zend Framework 2 3.1 Some ...

    [Zend] Zend Framework 2 0 初学者指南 英文版

    Master application development with Zend Framework 2 0 Learn about Zend Framework components and use them for functions such as searching image processing and payment gateway integrations Integrate ...

    Zend Framework教程之Application用法实例详解

    本文实例讲述了Zend Framework教程之Application用法。分享给大家供大家参考,具体如下: Zend_Application是Zend Framework的核心组件。Zend_Application为Zend Framework应用程序提供基本功能,是程序的入口点。它...

    ZendFramework 2.1.3 实例(相册增、删、改操作)

    ZendFramework 2.1.3 实例(增、删、改操作) 环境 php 5.3.5+ 设置环境变量 path apache 2.2 httpd.conf #====PHP支持==== PHPIniDir "C:/Program Files/php/" LoadModule ...

    ZendFramework 2 实例(增、删、改操作)

    ZendFramework 2 实例(增、删、改操作) 环境 php 5.3.5+ 设置环境变量 path apache 2.2 httpd.conf #====PHP支持==== PHPIniDir "C:/Program Files/php/" LoadModule ...

    Zend Framework教程之Resource Autoloading用法实例

    本文实例讲述了Zend Framework中Resource Autoloading用法。分享给大家供大家参考,具体如下: 通常,在开发应用程序中,可能类文件名不能...$loader = new Zend_Application_Module_Autoloader(array( 'namespace'

    [Zend] Zend Framework 2 应用开发教程 (英文版)

    [Packt Publishing] Zend Framework 2 Application Development (E-Book) ☆ 图书概要:☆ Overview Create powerful web applications by leveraging the power of this Model-View-Controller-based framework ...

    Zend Framework教程之资源(Resources)用法实例详解

    本文实例讲述了Zend Framework教程之资源(Resources)用法。分享给大家供大家参考,具体如下: Zend_Application_Resource_Resource Zend_Application_Bootstrap_ResourceBootstrapper是引导类加载注册资源插件使用的...

    ZendFramework-3

    $ composer create-project -sdev zendframework/skeleton-application path/to/install 安装后,您可以使用PHP的内置Web服务器立即对其进行测试: $ cd path/to/install $ php -S 0.0.0.0:8080

    解析zend Framework如何自动加载类

    1.模块中类的自动载入复制代码 代码如下:$loader = new Zend_Application_Module_Autoloader(array( //模块内容自动加载类 ‘namespace’ => ‘Blog’,//命名空间定义 即方法的开头为Blog_ ‘basePath’ => ...

    Zend Framework1.11.8开发的邮箱收集小系统

    本系统式基于Zend Framework 1.11.8开发的 主要功能是让别人填写自己的邮箱地址到数据库 解压后将目录下的emails.sql导入数据库 修改application/config.php数据库参数 本程序没有自带Zend 你可以自行下载Zend后放...

    Zend Framework教程之Bootstrap类用法概述

    本文实例讲述了Zend Framework中Bootstrap类用法。分享给大家供大家参考,具体如下: Zend_Application_Bootstrap_Bootstrapper Zend_Application_Bootstrap_Bootstrapper是所有引导类必须实现的基本接口。基本功能...

    Zend Framework基本页面布局分析

    本文实例讲述了Zend Framework基本页面布局方法。分享给大家供大家参考,具体如下: Zend Framework 的页面布局模块——Zend_Layout——既可以跟 MVC 一起使用,也可以单独使用。本文只讨论与 MVC 一起使用的情况。 ...

Global site tag (gtag.js) - Google Analytics