第07章 深入视图层

合集下载

9-PCS7 深入浅出(第九章)过程对象视图

9-PCS7 深入浅出(第九章)过程对象视图

目录:
第9章 1. 2. 3. 过程标签类型、模型,主数据库和过程对象视图 ........................................................................................................... 9-3 简介 ................................................................................................................................................................................................ 9-3 标签类型或者模型 ........................................................................................................................................................................ 9-3 标签类型和标签 ............................................................................................................................................................................ 9-4 3.1 3.2 3.3 3.4 3.5 3.6 4. 4.1 4.2 5. 5.1 5.2 5.3 5.4 5.5 6. 6.1 6.2 6.3 6.4 6.5 6.6

Autocad 2007 快速学习教程 第01章 AutoCAD 2007导入

Autocad 2007 快速学习教程 第01章 AutoCAD 2007导入
对于单机中文版的AutoCAD 2007,在各种操作系统下的 安装过程基本相同,下面仅以 Windows XP Professional为例 说明其主体部分的安装过程。
将AutoCAD 2007的安装光盘放入光驱内(如果已将系统 安装文件复制到硬盘上,可双击系统安装目录下的【setup】 文件)。
No.10006
No.10006
1.3.2 工具栏
工具栏中包含许多由图标表示的命令按钮。在AutoCAD中, 系统共提供了20多个已命名工具栏。
图1.3.3 “CAD标准”工具栏
No.10006
1.3.3 绘图区
绘图区是用户绘图的工作区域,它占据了屏幕的绝大部分 空间,用户绘制的任何内容都将显示在这个区域中。可以根据 需要关闭一些工具栏或缩小界面中的其他窗口,以增大绘图区。
No.10006
1.4.4 退出AutoCAD
若要退出AutoCAD,可执行下列操作之一: 在AutoCAD主标题栏中,单击“关闭”按钮或双击程序图 标。 从下拉菜单中,选择下拉菜单【文件】/【退出】命令。 在命令行中,键入EXIT或QUIT命令,然后按回车键。 按Alt+F4快捷键组合。
No.10006
AutoCAD 2007快速学习教程
No.10006
目录
第01章 AutoCAD 2007导入 第02章 基本绘图方法 第03章 控制视图显示
第04章 精确高效的绘图方法 第05章 高级绘图方法 第06章 图形的编辑
第07章 创建文字与表格 第08章 标注图形尺寸
第09章 用图层组织图形 第10章 三维实体绘图 第11章 图块及其属性 第12章 使用光栅图像
图1.3.9 “插入”对话框
图1.3.10 快捷菜单

八年级上册信息技术全册教案

八年级上册信息技术全册教案
引导层动画
使用引导层制作沿特定路径运动的 动画。
03
02
补间动画
利用补间形状或补间动画制作动画 效果。
遮罩层动画
利用遮罩层制作特殊效果,如探照 灯效果、水波效果等。
04
07
数据库管理系统 Access初步了解
Access界面介绍及基本操作
Access启动与退出
介绍如何启动和退出Access数据库管理系统。
Access界面组成
详细阐述Access的界面组成部分,包括标题栏、菜单栏、工具栏 、工作区、状态栏等。
基本操作
讲解在Access中进行基本操作的方法,如打开和关闭数据库、创 建和保存数据库对象、设置数据库格式等。
数据库设计原则和规范要求
数据库设计原则
阐述数据库设计的基本原则,包括数据完整性、数据安全性、数 据一致性等。
八年级上册信息技 术全册教案
目录
• 课程介绍与教学目标 • 计算机基础知识 • 网络基础知识与应用技能 • 文字处理软件Word应用实践 • 图像处理软件Photoshop入门教程 • 动画制作软件Flash初步认识 • 数据库管理系统Access初步了解
01
课程介绍与教学目标
信息技术课程概述
02
计算机基础知识
计算机发展历程及趋势
计算机的诞生
介绍第一台电子计算机ENIAC的诞生 背景、时间、地点以及主要特点。
计算机的发展趋势
探讨当前计算机发展的趋势,如人工 智能、量子计算、生物计算和光计算 等。
计算机的发展阶段
阐述计算机发展的四个阶段,即电子 管、晶体管、集成电路和大规模集成 电路阶段的特点和代表性产品。
3
快捷键使用
掌握常用的快捷键,如Ctrl+C(复制)、Ctrl+V (粘贴)、Ctrl+Z(撤销)等,提高操作效率。

电大软件工程本科形成性考核册及答案

电大软件工程本科形成性考核册及答案

软件工程(本)作业1 Array(第1~4章)一、选择题:1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)。

A.软件工程B.软件周期C.软件危机D.软件产生2.瀑布模型本质上是一种(A )模型。

A.线性顺序B.顺序迭代C.线性迭代D.早期产品3.瀑布模型存在的问题是(B )。

A.用户容易参与开发 B.缺乏灵活性C.用户与开发者易沟通 D.适用可变需求4.螺旋模型是一种将瀑布模型和(A)结合起来的软件开发模型。

A.增量模型B.专家系统C.喷泉模型D.变换模型5.原型化方法是用户和设计者之间执行的一种交互构成,适用于(A)系统。

A.需求不确定性高的 B.需求确定的C.管理信息 D.实时6.下列有关软件工程的标准,属于国际标准的是(D )A.GBB.DINC.ISOD.IEEE7.结构化方法是一种基于(D)的方法。

A.数据结构B.程序结构C.算法D.数据流8.软件可行性研究实质上是要进行一次( A)需求分析、设计过程。

A、简化、压缩的B、详细的C、彻底的D、深入的9.可行性研究的目的是(D)A、分析开发系统的必要性B、确定系统建设的方案C、分析系统风险D、确定是否值得开发系统10.设年利率为i,现存入p元,不计复利,n年后可得钱数为(C)。

A、P×(1+i*n)B、P× (i+1)*nC、p×(1+i)nD、p×(i+n)11.可行性研究是在(A)之前A、系统开发B、测试C、试运行D、集成测试12.可行性研究需要的时间长短取决于系统的规模,一般来说,可行性研究的成本只是预期总成本的(C)。

A、1%B、20%C、8%D、50%13.我国正式颁布实施的(B)对计算机病毒的定义具有法律性、权威性。

A.《计算机软件保护条例》B.《中华人民共和国计算机信息系统安全保护条例》C.《中华人民共和国著作权法》D.《计算机病毒防治管理办法》14.效率是一个性能要求,因此应当在(B)阶段规定?A、可行性分析B、需求分析C、概要设计D、详细设计15.需求规格说明书的作用不包括(D)A、软件验收的依据B、用户与开发人员对软件要做什么的共同理解C、软件可行性研究的依据D、软件设计的依据16.数据字典是用来定义(D)中的各个成份的具体含义的。

第3章 系统健壮性分析

第3章 系统健壮性分析

15
第3章 系统健壮性分析
允许
不允许
图3.3 健壮性分析图规则
16
第3章 系统健壮性分析
3.2 开始健壮性分析 通过上面的介绍,我们已经了解了什么是健壮性分析,也 了解了健壮性分析在面向对象分析和设计中所起的桥梁作 用,以及绘制健壮性分析图所应遵循的一些简单规则。 3.2.1 通过事件流寻找边界类 健壮性分析是针对某个具体用例的,其分析的基础是具体 用例描述中关于事件流的部分,同时综合考虑基本路径和 扩展路径两方面。在第2章中,我们曾以“新增书籍信息” (用例UC01)为例说明了如何编写用例描述,并得到了如 表3.1的事件流描述。
3) 控制类:代表协调、排序、事务处理以及对其他对象的 控制,经常用于封装与某个具体用例有关的控制。控制类 还可用来表示复杂的派生与演算,如业务逻辑,它们与系 统存储的任何具体的持久信息(即某个具体的实体类)都 没有关系。 系统的动态特征通过控制类来建模,因为控制类处理和协 调主要的动作和控制流,并将任务委派给其他对象(即边 界对象和实体对象)。 控制类并不封装与参与者交互有关的问题,也不封装与系 统处理的持久信息有关的问题,这些问题分别是由边界类 和实体类封装的。而控制类对控制、协调、排序、事务处 理、复杂业务逻辑(涉及其他多个对象)进行封装,因而 能将它们与变化隔离开来,即可以使得应用系统的变化不 影响用户界面和数据库中的表。
4
第3章 系统健壮性分析
健壮性分析尽管也有分析两字,但它的工作有很 多与设计类似,而从严格的意义上来说,它又不 是真正的设计,即是一种介乎于分析与设计中间 地带的东西。因此,用它来填补上面所提到的鸿 沟,却是非常合适的。现在大多数面向对象的书 籍中,都没有提到健壮性分析,我们在这里对它 进行介绍,也算是一家之言吧。

MapInfo教程第11章

MapInfo教程第11章

退出MapInfo
通过文件菜单退出:点击菜单栏中的 “文件”→“退出”。
通过标题栏退出:点击标题栏右侧的 关闭按钮。
界面介绍
工具栏
提供常用命令的快捷方式,如 打开、保存、打印、剪切、复 制、粘贴等。
表窗口
用于显示和编辑与地图相关联 的表格数据,可以进行排序、 筛选、添加、删除等操作。
菜单栏
包含文件、编辑、视图、地图 、表、窗口和帮助等菜单项, 用于执行各种命令和操作。
MapInfo教程第11 章
目录
• 引言 • MapInfo基础操作 • 数据输入与编辑 • 数据查询与分析 • 地图制作与编辑 • 高级功能与应用 • 案例实践与操作演示 • 总结与展望
01
引言
目的和背景
目的
本章旨在向读者介绍MapInfo的高级功能和应用,帮助读者更深入地理解和掌 握MapInfo的使用技巧和方法。
06
高级功能与应用
空间分析
空间查询
允许用户根据空间关系(如相邻、相交、包含等 )查询和选择地理对象。
缓冲区分析
创建地理对象的缓冲区,用于分析影响范围、距 离等。
叠加分析
将多个图层进行叠加,根据属性或空间关系进行 合并、相交等操作,提取所需信息。
网络分析
路径分析
确定两点之间的最佳路径,可考虑距离、时间、成本等因 素。
结构
本章共分为以下几个部分
1. 空间分析
介绍空间分析的基本概念和方法,包括空间数据的输入、 处理和分析等方面的内容。
2. 数据可视化
讲解如何将空间数据以图形化的方式展现出来,包括地图 制作、图表生成等方面的内容。
3. 自定义地图制作
介绍如何使用MapInfo的自定义功能,制作符合个人需求 的地图,包括地图元素的添加、编辑和美化等方面的内容 。

Dorado 5 快速入门

Dorado 5 快速入门富浏览器展现中间件快速创建Rich Internet Application的表现层解决方案1.前言 (4)2.简介 (5)3.STUDIO (6)3.1.使用说明 (6)3.2.工程管理 (17)3.2.1.工程管理 (17)3.2.2.系统菜单 (17)4.一个简单的DORADO应用界面 (17)4.1.视图模型简介 (17)4.2.创建DORADO应用 (20)4.2.1.新建工程 (20)4.2.2.数据连接配置 (22)4.2.3.制作dorado JSP (23)5.常用组件应用技巧 (32)5.1.自由表单(A UTO F ORM) (32)5.2.数据表格(D A TA T ABLE) (36)5.3.菜单(M ENU) (53)5.4.树(T REE) (53)5.5.下拉框(D ROP D OWN) (53)5.6.命令(C OMMAND) (53)6.视图模型 (53)6.1.视图模型的状态 (53)6.2.视图模型实现类 (55)6.3.视图模型的上下文(D ORADO C ONTEXT) (56)6.4.视图模型中的JDBC开发 (58)6.4.1.事务管理 (59)6.4.2.异常处理 (60)7.业务逻辑框架整合范例 (61)7.1.S QL D ATASET (61)7.1.1.预定义Sql编程 (62)7.1.2.实现预定义Sql编程的动态性: (63)7.1.3.运行时Sql编程 (64)7.2.存储过程 (65)7.3.J A V A 实体对象 (66)7.3.1.记录集的监听器内部实现 (66)7.3.2.系统的业务对象实现 (67)7.3.3.通过引入第三方框架管理与组织自己业务对象的基础之上实现(如加入Spring,Hibernate) (69)8.数据坞 (71)8.1.数据模块中的D A TASET (71)9.典型界面开发 (83)10.权限管理和PROFILE (83)10.1.P ROFILE使用说明 (83)10.2.P ROFILE文件的定义 (87)10.3.视图模型(V IEW M ODEL)PROFILE的指定 (87)11.文件或BLOB字段的处理 (88)12.发布 (88)12.1.基本原理 (88)12.2.发布方法 (90)12.2.1.dorado studio打包: (90)12.2.2.其他工具打包: (91)13.升级 (91)14.附录 (93)14.1.参考程序光盘说明 (93)14.2.数据库配置说明 (93)1.前言dorado是由BSTEK公司推出的面向J2EE 的新一代Web应用的开发框架,支持AJAX 机制。

OSI七层模型与各层设备对应

OSI七层模型与各层设备对应之杨若古兰创作OSI七层收集模型由下至上为1至7层,分别为物理层(Physical layer),数据链路层(Data link layer),收集层(Network layer),传输层(Transport layer),会话层(Session layer),暗示层(Presentation layer),利用层(Application layer).利用层,很简单,就是利用程序.这一层负责确定通信对象,并确保由足够的资本用于通信,这些当然都是想要通信的利用程序干的事情.为操纵零碎或收集利用程序提供访问收集服务的接口.利用层和谈的代表包含:Telnet、FTP、HTTP、SNMP等.暗示层,负责数据的编码、转化,确保利用层的正常工作.这一层,是将我们看到的界面与二进制间互相转化的地方,就是我们的说话与机器说话间的转化.数据的紧缩、解压,加密、解密都发生在这一层.这一层根据分歧的利用目的将数据处理为分歧的格式,表示出来就是我们看到的各种各样的文件扩展名.会话层,负责建立、保护、控制会话,区分分歧的会话,和提供单工(Simplex)、半双工(Half duplex)、全双工(Full duplex)三种通信模式的服务.我们平时所知的NFS,RPC,X Windows等都工作在这一层.管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话.会话层还利用在数据中拔出校验点来实现数据的同步.传输层,负责分割、组合数据,实现端到端的逻辑连接.数据在上三层是全体的,到了这一层开始被分割,这一层分割后的数据被称为段(Segment).三次握手(Threeway handshake),面向连接(ConnectionOriented)或非面向连接(ConnectionlessOriented)的服务,流控(Flow control)等都发生在这一层.是第一个端到端,即主机到主机的条理.传输层负责将上层数据分段并提供端到端的、可靠的或不成靠的传输.此外,传输层还要处理端到端的错误控制和流量控制成绩.在这一层,数据的单位称为数据段(segment).传输层和谈的代表包含:TCP、UDP、SPX等收集层,负责管理收集地址,定位设备,决定路由.我们所熟知的IP地址和路由器就是工作在这一层.上层的数据段在这一层被分割,封装后叫做包(Packet),包有两种,一种叫做用户数据包(Data packets),是上层传上去的用户数据;另一种叫路由更新包(Route update packets),是直接由路由器发出来的,用来和其他路由器进行路由信息的交换.负责对子网间的数据包进行路由选择.收集层还可以实现堵塞控制、网际互连等功能.在这一层,数据的单位称为数据包(packet).收集层和谈的代表包含:IP、IPX、RIP、OSPF等数据链路层,负责筹办物理传输,CRC校验,错误通知,收集拓扑,流控等.我们所熟知的MAC地址和交换机都工作在这一层.上层传上去的包在这一层被分割封装后叫做帧(Frame).在不成靠的物理介质上提供可靠的传输.该层的感化包含:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等.在这一层,数据的单位称为帧(frame).数据链路层和谈的代表包含:SDLC、HDLC、PPP、STP、帧中继等物理层,就是实实在在的物理链路,负责将数据以比特流的方式发送、接收,就不多说了.具体说:网线,集线器----物理层网卡,网桥----数据链路路由器-----收集层交换机就是用来进行报文交换的机器.它和HUB最次要的区别就HUB是物理层设备,采取广播的方式来传输信息,交换机多为链路层设备(二层交换机),能够进行地址进修,采取存储转发的方式来交换报文.它和路由器的区别在于路由器有DDN,ADSL等接口,交换机只要以太网接口.国际尺度组织(ISO)拟定了OSI模型.这个模型把收集通信的工作分为7层.1至4层被认为是低层,这些层与数据挪动密切相干.5至7层是高层,包含利用程序级的数据.每一层负责一项具体的工作,然后把数据传送到下一层.物理层(也即OSI模型中的第一层)在课堂上经常是被忽略的.它看起来似乎很简单.但是,这一层的某些方面有时须要特别留意.物理层实际上就是布线、光纤、网卡和其它用来把两台收集通信设备连接在一路的东西.甚至一个信鸽也能够被认为是一个1层设备(拜见RFC 1149).收集故障的排除经常涉及到1层成绩.我们不克不及健忘用五类线在全部一层楼进行连接的传奇故事.因为办公室的椅子经常从电缆线上压过,导致收集连接出现断断续续的情况.遗憾的是,这类故障是很罕见的,而且排除这类故障须要耗费很长时间.第2层是以太网等和谈.请记住,我们要使这个成绩简单一些.第2层中最次要的是你应当理解网桥是什么.交换机可以看成网桥,人们此刻都如许称呼它.网桥都在2层工作,仅关注以太网上的MAC地址.如果你在谈论有关MAC地址、交换机或者网卡和驱动程序,你就是在第2层的范畴.集线器属于第1层的领域,因为它们只是电子设备,没有2层的常识.第2层的相干成绩在本收集讲座中有本人的一部分,是以此刻先不具体讨论这个成绩的细节.此刻只须要晓得第2层把数据帧转换成二进制位供1层处理就可以了.在往下讲之间,你应当回过头来从头浏览一下上面的内容,因为经验缺乏的收集管理员经常混淆2层和3层的区别.如果你在谈论一个IP地址,那么你是在处理第3层的成绩,这是“数据包”成绩,而不是第2层的“帧”.IP是第3层成绩的一部分,此外还有一些路由和谈和地址解析和谈(ARP).有关路由的一切事情都在第3层处理.地址解析和路由是3层的次要目的.第4层是处理信息的传输层.第4层的数据单元也称作数据包(packets).但是,当你谈论TCP等具体的和谈时又有特殊的叫法,TCP的数据单元称为段(segments)而UDP和谈的数据单元称为“数据报(datagrams)”.这个层负责获取全部信息,是以,它必须跟踪数据单元碎片、乱序到达的数据包和其它在传输过程中可能发生的风险.理解第4层的另一种方法是,第4层提供端对端的通信管理.像TCP等一些和谈非常善于包管通信的可靠性.有些和谈其实不在意一些数据包是否丢失,UDP和谈就是一个次要例子.此刻快要到7层了,我们很想晓得第5层和第6层有些什么功能.可以说,它们都是没有效的.有一些利用程序和和谈在5层和6层.但是,对于理解收集成绩来说,谈论这些成绩没有任何好处.请大家留意,第7层是“一切”.7层也称作“利用层”,是专门用于利用程序的.如果你的程序须要一种具体格式的数据,你可以发明一些你但愿能够把数据发送到目的地的格式,而且创建一个第7层和谈.SMTP、DNS和FTP都是7层和谈.进修OSI模型中最次要的事情是它实际代表什么意思.假如你是一个收集上的操纵零碎.在1层和2层工作的网卡将通知你什么时候无数据到达.驱动程序处理2层帧的出口,通过它你可以得到一个发亮和闪光的3层数据包(但愿是如此).作为操纵零碎,你将调用一些经常使用的利用程序处理3层数据.如果这个数据是从上面发上来的,你晓得那是发给你的数据包,或者那是一个广播数据包(除非你同时也是一个路由器,不过,临时不必担心这个成绩).如果你决定保存这个数据包,你将打开它,而且取出4层数据包.如果它是TCP和谈,这个TCP子零碎将被调用并打开这个数据包,然后把这个7层数据发送给在目标端口等待的利用程序.这个过程就结束了.当要对收集上的其它计算机做出回应的时候,每一件事情都以相反的顺序发生.7层利用程序将把数据发送给TCP和谈的履行者.然后,TCP和谈在这些数据中加入额外的文件头.在这个方向上,数据每前进一步体积都要大一些.TCP和谈在IP和谈中加入一个合法的TCP字段.然后,IP和谈把这个数据包交给以太网.以太网再把这个数据作为一个以太网帧发送给驱动程序.然后,这个数据通过了这个收集.这条线路中的路由器将部分地分解这个数据包以获得3层文件头,以便确定这个数据包应当发送到哪里.如果这个数据包的目的地是当地以太网子网,这个操纵零碎将代替路由器为计算机进行地址解析,而且把数据直接发送给主机.。

《视图》 讲义

《视图》讲义一、什么是视图在我们探讨视图这个概念之前,让我们先从一个简单的生活场景来理解它。

想象一下你站在一个房间的门口,通过门口这个有限的视角,你看到房间里的一部分景象,比如一张桌子、一把椅子和一个窗户。

这个你通过门口所看到的有限景象,就类似于我们在计算机技术中所说的“视图”。

那么,在计算机领域中,视图到底是什么呢?简单来说,视图是数据库中的一个虚拟表。

它并不是真正存储数据的地方,而是基于一个或多个表的数据,通过一定的规则和条件筛选、组合和呈现出来的一种数据展示方式。

打个比方,如果数据库中的表是一个装满各种物品的仓库,那么视图就是从这个仓库中挑选出特定物品,并按照一定的方式摆放好展示给我们看的一个橱窗。

二、视图的作用1、数据安全性视图可以帮助我们控制用户能够看到的数据。

通过创建只包含特定列或特定行的视图,我们可以防止用户访问敏感或不必要的数据。

比如说,在一个包含员工信息的数据库中,我们可以创建一个视图,只显示员工的姓名、部门和职位,而隐藏员工的工资、联系方式等敏感信息。

2、简化数据操作对于复杂的数据库结构,视图可以将复杂的查询和连接操作封装起来,为用户提供一个更简单、直观的数据视图。

用户无需了解底层数据库表之间的复杂关系,只需要对视图进行操作,就能够获取所需的数据。

3、逻辑数据独立性当数据库的结构发生变化时,如果我们使用了视图,只要视图的定义不变,用户对视图的操作就不会受到影响。

这就使得数据库的修改对用户来说是透明的,增强了系统的可维护性和稳定性。

三、视图的创建在大多数关系型数据库管理系统中,创建视图通常使用 CREATE VIEW 语句。

以下是一个创建视图的简单示例:假设我们有一个名为“students”的表,其中包含“id”、“name”、“age”和“grade”等列。

现在我们想要创建一个视图,只显示年龄大于 18 岁的学生的信息。

```sqlCREATE VIEW adult_students ASSELECT FROM students WHERE age > 18;```通过上述语句,我们就成功创建了一个名为“adult_students”的视图。

建筑信息模型施工应用标准

住房和城乡建设部颁布的《年建筑业信息化发展纲要》(建质[2011]67号)及《年建筑业信息化发展纲要》 (建质函[2016]183号)将建筑信息模型(以下简称“BIM”)技术列为重点研究和应用的技术,并于2015年6 月16日印发了《关于推进建筑信息模型应用的指导意见》(建质函[2015]159号),包含BIM技术应用的重要意 义、指导思想与基本原则、发展目标、工作重点、保障措施五方面。
施工BIM应用是深化设计BIM应用(第5章)、施工模拟BIM应用(第6章)、预制加工BIM应用(第7章)、进 度管理BIM应用(第8章)、预算与成本管理BIM应用(第9章)、质量与安全管理BIM应用(第10章)、施工监理 BIM应用(第11章)、竣工验收BIM应用(第12章)等的统称。
每项施工BIM应用的条文均包括三个方面:应用内容、模型元素、交付成果和软件要求。“应用内容”部分 给出宜应用BIM技术的专业任务,以及典型应用流程;“模型元素”给出具体BIM应用的模型元素及信息,是模型 细度的展开规定;“交付成果和软件要求”给出BIM应用宜交付的成果,以及相应BIM应用软件宜具备的专业功能。 上述内容在制定BIM应用策划和选择BIM应用软件时可参考。
建筑工业化应用工程师(建筑信息模型(BIM)技术)建筑工业化应用工程师(建筑信息模型(BIM)技 术)
总则
1.0.1在经济新常态的时代背景下,为了更好地推进建筑业改革与发展,2014年7月住房和城乡建设部颁布 了建筑业改革的指导性文件《关于推进建筑业发展和改革的若干意见》(建市[2014]92号,以下简称《意 见》)。《意见》涵盖转变行业发展方式、促进企业转型升级、规范建筑市场、转变政府职能、改革资质管理、 深化项目管理、坚持绿色发展、推进工程总承包、提高产品质量和保障安全生产等方面,目的是进一步坚持创新 驱动发展,加快转变发展方式,促进建筑业健康、协调、可持续发展。《意见》提出“推进建筑信息模型等信息 技术在工程设计、施工和运行维护全过程的应用,提高综合效益”。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第 7 章深入视图层视图(view)的作用是显示特定动作(action)的输出。

在symfony里,视图由几部分组成,这些部分都很容易修改。

∙Web设计师通常会与模板(当前动作的数据的表现形式)和布局(包含所有页面都会用到的代码)打交道。

这些模板由HTML加上PHP代码片段(主要是辅助函数调用)组成。

∙为了重用,开发者往往会把模板代码的片段放在局部模板(Partials)或者组件(Components)里。

开发者使用槽(Slots)与组件(Components)来影响布局的多个区域。

web设计师也可以修改这些模板片段。

∙开发者专注于YAML视图配置文件(用来设置回应与其他界面元素的属性)还有回应对象(response object)。

处理模板里的变量的时候,跨站脚本(corss-site scripting)的风险不可忽略,这就需要在记录用户数据的时候很好的理解输出转义(output escaping)技术。

不论你是哪一个角色,你都可以发现能加快输出动作结果这件乏味的工作的工具。

这一章将会介绍这些工具。

模板例 7-1 是一个典型的symfony模板。

它包含一些HTML代码和一些基本的PHP 代码,通常是显示动作(action)里定义的(通过$this->name = 'foo';)变量还有辅助函数。

例 7-1 - indexSuccess.php 模板样本<h1>欢迎</h1><p>欢迎回来 <?php echo $name ?>!</p><ul>您要做什么?<li><?php echo link_to('阅读最新的文章', 'article/read') ?></li> <li><?php echo link_to('写一篇新文章', 'article/write') ?></li></ul>在第4章里介绍过,这种另类的PHP语法对非PHP开发者来说也很容易理解因此很适合于用在模板里。

请注意在模板里面尽量减少PHP代码量,由于这些文件用来设计程序的界面,这些模板有些时候是由其他的团队维护的,例如表现团队而不是应用程序逻辑团队。

把逻辑放在动作(action)里还可以使一个动作对应多个模板更容易,减少代码重复。

辅助函数(Helpers)辅助函数是返回模板里使用的HTML代码的PHP函数。

在例 7-1 里,link_to() 函数就是一个辅助函数。

有时,辅助函数只是用来节约时间,把模板里常用的代码封装起来。

例如,你很容易想得到下面这个辅助函数的定义:<?php echo input_tag('nickname') ?>=> <input type="text" name="nickname" id="nickname" value="" />它应该与例 7-2 中的差不多。

例 7-2 - 辅助函数定义的例子function input_tag($name, $value = null){return '<input type="text" name="'.$name.'"id="'.$name.'"value="'.$value.'" />';}事实上,symfony内建的input_tag()函数比这个要复杂一点,它有第三个参数,这个参数用来指定<input>标签的属性。

你可以去在线API文档查看这个函数详细的语法与参数。

(/api/symfony.html)。

大多数时候,辅助函数更聪明并且节省大量写代码的时间:<?php echo auto_link_text('请访问我们的网站 ') ?>=> 请访问我们的网站 <ahref=""></a>辅助函数能加快写模板的速度,同时辅助函数生成的HTML兼具性能与可访问性。

当然,你还是可以写普通HTML代码,不过辅助函数写起来总是要快一些。

TIP你可能会问为什么辅助函数的命名用下划线而不是symfony里随处可见的大小写字母规则。

这是因为辅助函数是函数,所有的PHP核心函数都用下划线命名规则。

声明辅助函数包含辅助函数定义的symfony文件不能被自动载入(因为它们是函数而不是类)。

辅助函数按照目的分组。

例如,所有处理文字的辅助函数都在一个名叫TextHelper.php的文件里定义,称作Text辅助函数组。

所以如果你要在模板里使用一个辅助函数,你必须在使用之前通过user_helper()函数声明载入这个辅助函数相关的辅助函数组。

例 7-3 里的这个模板使用了 auto_link_text() 辅助函数, 它属于Text 辅助函数组。

例 7-3 - 声名使用一个辅助函数// 在这个模板里使用一个特定的辅助函数<?php echo use_helper('Text') ?>...<h1>描述</h1><p><?php echo auto_link_text($description) ?></p>TIP如果你要声明多个辅助函数组,给use_helper()函数传多个参数就可以了。

例如,要在一个模板里载入Text和Javascript辅助函数组,可以使用 <?php echo use_helper('Text', 'Javascript') ?> 来声明。

有一些辅助函数在所有的模板里都可以使用,不需要事先声明。

它们是以下的辅助函数组:∙Helper:用来载入辅助函数(use_helper() 函数本身就是一个辅助函数) ∙Tag:基本的标签辅助函数,几乎所有的辅助函数都用到它∙Url:链接与URL管理辅助函数∙Asset:用来生成HTML<head>部分的内容,还包括简化使用外部资源(图片,Javascript,样式表)的函数∙Partial:用来调用局部模板的辅助函数∙Cache:管理代码片段的缓存∙Form:表单辅助函数这里列出的标准辅助函数,在每个模板中都会被自动载入,可以在settings.yml 文件里面设置。

所以如果你确定你不会用到Cache辅助函数组的辅助函数,或者你每次都需要用到Text组,你可以修改 standard_helper这个设置。

这会稍稍加快你的程序。

但是你不能删除这个列表里的前四个辅助函数组 (Helper、Tag、Url和 Asset),因为模板引擎需要它们才能正常工作。

所以在标准辅助函数设置(standard_helper)里找不到这四个辅助函数组。

TIP如果你需要在模板之外使用辅助函数,你也可以通过sfLoader::loadHelper($helpers)来载入一个辅助函数组,$helpers可以是辅助函数组的名字或几个辅助函数组名字组成的数组。

例如,如果你想在一个动作(action)里使用auto_link_text(),你需要首先执行sfLoader::loadHelper('Text')。

常用辅助函数在本节里你会了解一些后面要用到的辅助函数的详情。

例 7-4 给出了一个常用辅助函数列表,还有它们输出的HTML代码。

例 7-4 - 常用的默认辅助函数// Helper 组<?php echo use_helper('HelperName') ?><?php echo use_helper('HelperName1', 'HelperName2', 'HelperName3') ?>// Tag 组<?php echo tag('input', array('name' => 'foo', 'type' => 'text')) ?> <?php echo tag('input', 'name=foo type=text') ?> // 另一种选项格式=> <input name="foo" type="text" /><?php echo content_tag('textarea', 'dummy content', 'name=foo') ?>=> <textarea name="foo">dummy content</textarea>// Url 组<?php echo link_to('点我', 'mymodule/myaction') ?>=> <a href="/route/to/myaction">点我</a> // 取决于路由(routing)设置// Asset 组<?php echo image_tag('myimage', 'alt=foo size=200x100') ?>=> <img src="/images/myimage.png" alt="foo" width="200" height="100"/> <?php echo javascript_include_tag('myscript') ?>=> <script language="JavaScript" type="text/javascript"src="/js/myscript.js"></script><?php echo stylesheet_tag('style') ?>=> <link href="/stylesheets/style.css" media="screen"rel="stylesheet"type="text/css" />symfony里还有很多其他的辅助函数,如果要讲完它们需要一整本书。

相关文档
最新文档