`

Zend Framework 1.10.1 快速入门之三: 创建一个布局

 
阅读更多

您可能注意到前面一节提到视图脚本是 HTML 片断——不是完整的网页。这是出于设计的需要:我们希望动作返回的内容只和动作本身有关,而不是返回整个应用程序。

现在我们必须把得到的内容合成到一个完整的 HTML 网页。我们也想为应用程序创建一个统一的外观和风格。我们将使用一个全站布局来完成这些任务。

Zend Framework 使用两种设计模式来实现布局:Two Step View 和 Composite View。Two Step View 通常和 Transform View 模式联系在一起,它的基本的思想是:应用程序的视图创建一个表现,然后注入到主视图中。而 Composite View 模式则处理一个由一个或者更多个的原子(即应用程序视图)组合而成的视图。

在 Zend Framework 中,Zend_Layout 组合了这些模式的思想。每一个动作视图脚本不需要包括全站的东西,它们(动作视图脚本)可以简单的关注自己的责任。

偶尔的,您可能需要应用程序方面的信息出现在全站视图脚本中,幸运的是,Zend Framework 提供了大量的视图占位符(placeholder),从而可以通过动作视图脚本提供这样的信息(应用程序方面的信息 application-specific information)。

为了开始使用 Zend_Layout,首先我们需要通知 bootstrap 来使用 Layout 资源(Bootstrap 类定义了什么资源和组件将要初始化)。这可以通过使用 zf enable layout 命令来完成:

正如命令行提示的那样,application/configs/application.ini 被更新了,现在 production 部分包括了以下代码:

最后的 INI 文件应该看起来是这样的:

这些指令告诉应用程序到 application/layouts/scripts 中查找布局视图脚本。现在这个目录已经创建好了,同时带有 layout.phtml 这个文件。

我们也想应用程序有一个 XHTML DocType 声明。为了做到这个,我们需要添加一个资源到 bootstrap。

添加一个资源到 bootstrap 的最简单的方法是创建一个以 _init 短语开头的私有方法。在这个例子中,我们想要初始化 doctype,所以我们在 bootstrap 类中创建一个 _initDoctype() 方法:

在这个方法内,我们需要提示视图来使用合适的 doctype。但是视图对象从哪里来?简单的方法是,初始化视图(View)资源;一旦完成,我们可以从 bootstrap 中捕捉视图对象,然后使用它。

为了初始化视图资源,把以下代码添加到 application/configs/applicationn.ini 文件中,在 production 部分下:

这将告诉我们:不带选项初始化视图([] 提示 view 是一个数组,我们什么都没有传递给它)。

现在我们有了一个视图,让我们更新 _initDoctype() 方法。在它里面,我们首先确保视图资源已经在运行,捕获视图对象,然后配置它:

现在我们已经初始化了 Zend_Layout 并且设置了 Doctype,让我们创建全站布局:

我们使用 layout() 视图助手捕获应用程序的内容,同时访问 content 键。如果愿意,可以呈现其它的片断,但在大多数情况下,这是所需的全部了。

同时注意 headLink() 占位符的使用。这是生成 HTML <link> 元素的简单方式,同时还可以在应用程序内跟踪它们。如果需要为一个单独的动作增加额外的 CSS 样式表,可以这样做,它会在最后的呈现页面中出现。

注意,检查
现在打开 http://localhost 并检查源代码,应该看见 XHTML 头部,标题和正文部分。

分享到:
评论

相关推荐

    synergy1.10.1.rar

    标题中的"synergy1.10.1.rar"是一个压缩包文件,其版本号为1.10.1,通常这种格式的文件是使用RAR压缩算法打包的,它可能包含了软件安装所需的所有文件。RAR是一种常见的文件压缩格式,由WinRAR软件创建,允许用户将...

    jquery-ui-1.10.1.custom.zip

    总结,jQuery UI 1.10.1 是一个强大的前端开发工具,提供了多种UI组件和自定义选项,能够帮助开发者快速构建功能丰富的交互式用户界面。通过理解其核心特性、组件和自定义方法,开发者可以更好地利用这一库来提升...

    SVN1.10.1安装包及汉化包

    SVN1.10.1是Subversion的一个特定版本,包含了若干增强和改进,确保了更稳定和高效的工作流程。 TortoiseSVN是一款与Windows操作系统集成的SVN客户端,其1.10.1版本对应于SVN1.10.1。这个客户端提供了图形化的界面...

    parquet-column-1.10.1-API文档-中文版.zip

    赠送jar包:parquet-column-1.10.1.jar; 赠送原API文档:parquet-column-1.10.1-javadoc.jar; 赠送源代码:parquet-column-1.10.1-sources.jar; 赠送Maven依赖信息文件:parquet-column-1.10.1.pom; 包含翻译后...

    libzip-1.10.1.tar.gz

    libzip是一个开源的C库,专门用于处理ZIP档案文件。它提供了创建、读取、修改和删除ZIP档案的功能,广泛应用于软件开发,特别是在需要对ZIP文件进行低级别操作的场景下。libzip库在1.10.1版本中引入了多项改进和新...

    libpcap-1.10.1.tar.gz

    libpcap-1.10.1是libpcap的一个稳定版本,包含了多项改进和修复。这些更新可能包括增强的性能、新的API功能、错误修复以及对新硬件或协议的支持。 **三、源码安装步骤** 1. **环境准备**:确保系统已经安装了必要...

    svn 1.10.1

    1.10.1是SVN的一个特定版本,可能包含了一些bug修复、性能提升或者新功能。 "svn 1.10.1"指的是SVN的1.10.1版本。这个版本可能引入了新的特性和改进,以增强用户的工作效率和系统稳定性。例如,可能会有更优化的...

    parquet-hadoop-1.10.1-API文档-中文版.zip

    赠送jar包:parquet-hadoop-1.10.1.jar 赠送原API文档:parquet-hadoop-1.10.1-javadoc.jar 赠送源代码:parquet-hadoop-1.10.1-sources.jar 包含翻译后的API文档:parquet-hadoop-1.10.1-javadoc-API文档-中文...

    hdf5-1.10.1.tar.gz

    这个名为“hdf5-1.10.1.tar.gz”的压缩包包含HDF5库的版本1.10.1,这是一个广泛应用于科学计算、数据分析以及深度学习领域的数据存储解决方案。 HDF5的核心特性包括: 1. **分层结构**:HDF5允许用户创建一个层次...

    jquery-ui-1.10.1

    《jQuery UI 1.10.1:构建交互式网页的强大工具》 jQuery UI 是一个基于 jQuery JavaScript 库的开源项目,它提供了丰富的用户界面组件和交互效果,为开发者提供了构建功能丰富的、交互性强的网页应用的强大支持。...

    PyVISA-1.10.1_pyvisa_pyvisaSCPI_Pyvisa1.10.1_

    在实际应用中,PyVISA的使用流程通常是这样的:首先,创建一个资源管理器对象,然后使用该对象搜索并连接到目标设备。接着,通过发送特定的SCPI命令进行设备配置和数据采集。最后,关闭连接,结束通信。PyVISA的API...

    apache-ant-1.10.1

    这个"apache-ant-1.10.1"压缩包包含的是Ant的1.10.1版本,它是对早期版本的更新,提供了一系列改进和新特性。 Ant的核心是一个基于XML的任务驱动系统,它通过XML文件(通常称为build.xml)来定义构建过程。这个XML...

    Numpy64位,1.10.1

    在标题“Numpy64位,1.10.1”中,我们关注的是Numpy的一个特定版本,即1.10.1,而且是64位版本。64位版本的Numpy相比于32位版本,能够处理更大内存的数组,这对于处理大量数据的科学计算至关重要。 描述中提到的...

    GDAL-1.10.1_C#专用dll

    标题“GDAL-1.10.1_C#专用dll”和描述中提到的“修改了错误代码,解决了安全透明代码问题,C#专用,Gdal-1.10.1”都涉及到一个核心概念——GDAL库在C#环境中的使用。GDAL,全称Geospatial Data Abstraction Library...

    flink-1.10.1-bin-scala_2.12.tgz.zip

    标题中的"flink-1.10.1-bin-scala_2.12.tgz.zip"标识了这是一个Apache Flink的特定版本安装包,版本号为1.10.1,且是针对Scala 2.12编译的二进制发行版。Flink是一个开源的流处理和批处理框架,广泛应用于大数据处理...

    synergy_1.10.1.msi

    synergy_1.10.1,非常好用的一个软件非常好用的一个软件非常好用的一个软件。 synergy_1.10.1,非常好用的一个软件非常好用的一个软件非常好用的一个软件。

    poco-1.10.1-all-src-dll.zip

    总结一下,"poco-1.10.1-all-src-dll.zip"是一个包含Poco库1.10.1版本源码和64位动态库的综合资源,适合于需要了解Poco内部实现、进行定制开发或快速集成到Windows项目中的开发者。通过深入研究和使用这个资源,我们...

    jquery1.10.1

    《jQuery 1.10.1:开源代码与jQuery UI 1.10.1定制》 jQuery,作为一款广泛使用的JavaScript库,以其简洁的API和强大的功能深受开发者喜爱。1.10.1版本是jQuery历史上的一个重要里程碑,它在前一版本的基础上进行了...

    Tensorflow-1.10.1-源码

    Tensorflow-1.10.1-源码 Tensorflow-1.10.1-源码 Tensorflow-1.10.1-源码 Tensorflow-1.10.1-源码 Tensorflow-1.10.1-源码 Tensorflow-1.10.1-源码 Tensorflow-1.10.1-源码 Tensorflow-1.10.1-源码 Tensorflow-...

Global site tag (gtag.js) - Google Analytics