|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
看到好的帖子最好up一下,以使得更多的人得到分享。ado|编程 第2章 用PRADO编程
<P> 如今让咱们更深切的懂得一下PRADO框架。这一章咱们会引见一些框架的根基概念和若何利用现有的PRADO组件来开辟一个PRADO使用。
2.1 组件
<P> 依据Clemens Szyperski的说法, ``软件组件是一个具有特定接口的组合单位,可以自力存在,介入构成其它组建。''
<P> 在PRADO中, 组件是 TComponent 或其子类的实例。PRADO框架中已包含了 TComponent
类,它次要完成了组件的属性和事务机制。
- 属性可以被以为是描写组件某一特征的公共变量,好比后台色彩,字体巨细等等。属性是有类型的,好比 string, integer , 等等。属性可所以只读的,也能够是可读写的。
- 事务使代办署理函数可以对组件中停止的一些举动作出呼应,好比鼠标的点击,输出文本的变更等。
一个组件会承继它一切父类组件的属性和办法,由于组件自己其实就是一个类。
<P> 一个完全的组件类界说包含两个文件:
- 一个类文件,它界说了组件类的逻辑。这个文件次要是PHP代码。这个文件的文件名必需和类的名字一样,并且以.php 作为文件后缀。
- 一个规格文件,它界说了组件类的属性和办法。这个文件是XML格局。假如这个组件类没有界说父类以外的新的属性和事务,那末这个文件是可以省略不要的。缺省情形下,这个文件和组件的类文件在一个目次中,并且名字是一样的,独一分歧的是它们的文件名后缀(类文件的后缀是.php ,规格文件是 .spec )。值得注重的是,PRADO也答应你用分歧的文件名来定名规格文件和模板文件,然而类文件名仍是必需遵守与类同名,而且后缀为.php 的划定规矩的。这时候候你需求在类的常量SPECIFICATION_FILE中指定例格文件的包括途径的文件名,可使用相对或绝对途径(绝对类文件地点地位)。
注重:PRADO 是辨别巨细写的,组件类型,属性称号,事务称号,文件名等等这些都是辨别巨细写的。
2.1.1 控件
<P> 控件是界说了用户界面的PRADO 组件。每个控件都有一个父控件和一些子控件(注重,这里的父,子这些关系和面向对象中的父类子类的概念是完整纷歧样的。一个控件是别的一个控件的父控件只是申明了前者具有后者,这个具有关系可以了解为一个目次下包括了一个子目次;而毫不是后者是前者的子类、是夙昔者承继而来的这个概念)。页面是第一流其余控件,它没有父控件(固然你也能够以为Application是它的父控件)。一个PRADO的使用是一个页面的纠合,每个页面都代表了一个条理树状布局的控件集,控件与控件之间关系是经由过程父子关系接洽在一同的。
这类父子关系可以经由过程模板文件来创立。模板文件的格局和HTML是很像的,只不外在HTML的基本上增添了一些特别的标签来定应控件。假如一个控件的标签被别的一个控件的标签所包含,那末前者就被以为是后者的子控件。静态文本也被以为是子控件。 <P> 控件可以具有一个模板文件来描写它的界面内容。缺省情形下模板文件和类文件在统一个目次下,并且文件名是不异的,模板文件的后缀则为 .tpl 。同规格文件一样,假如你需求把模板文件放在分歧中央或用鳖的文件名,可以经由过程设置类常量 TEMPLATE_FILE 的值来指明模板文件的地位。 <P> 每个控件都有一个ID,它可以在统一级其余控件中来独一标识控件自己。ID途径则是在控件的树状布局中,从以后控件到方针控件的一切控件ID的序列,它可以用于会见一个控件。好比,在
HomePage中,有一个 Menu 控件,它具有一个子控件 Button 。关于控件HomePage而言,可以经由过程ID(Menu,Button)途径来会见 Button 控件。假如用PHP代码来书写,就是 $this->Menu->Button . 2.1.2 实例化组件
组件有两种体例来实例化。一种办法是在一个控件的模板文件中界说它,当这个控件被创立的时分,框架会主动的去实例化这个组件。还有一种办法是在PHP代码中手动的实例化。咱们先来看一下后面一种静态的创立办法,稍后再来看一下静态的创立办法。
静态创立组件
<P> 凡是只要控件在模板文件中被静态创立。 一个控件在模板文件组件标签来声明,其语法以下:
......
<com:ComponentType ID="..." PropertyName="..." EventName="...">
....body contents....
</com:ComponentType>
......
这里 ComponentType, PropertyName, 和 EventName 应当被真实的组件类名,属性名和事务名所替换。 ID 属性是可选的。假如界说了ID 属性,那末ID 的值必需在平级的控件中是独一的。假如没有界说,那末框架会主动为这个控件分派一个独一的ID的。固然,这请求组件的标签被准确的嵌套,每个开放的组件标签都应当和一个闭合的组件标签构成一对,这个划定规矩和XML的划定规矩是一样的。(译者著:假如你对XML一点都不懂得,建议你先看一下一些根基的XML概念,请求其实不高,你只需求晓得若何准确书写一个XML文件便可。)
<P> 注重:控件的ID必需是一个以字母开首的,前面只包括字母,数字和下划线的字符串。
<P> 模板文件中属性的初始值字符串会被主动转换为准确的属性类型。今朝有六种属性类型: string, integer, float, boolean, array <STRONG> |
|