选择显示字体大小

wap与php - 进阶篇 之一

  php之于wap,并不仅仅是靠几个"echo"语句向浏览器传送wml代码。phpwap中较高端的应用,自然会牵扯到php数据库操作和有关面向对象的编程知识。php是支持面向对象(oop)的,这增强了php开发的持续性和开放性。当我们开发wap页面时,如果利用php的面向对象特性,将使得代码更加灵活,通用性更高,体系更完整,层次更清晰,重用性也有所增加。
  
  这里,我们将讲述如何利用面向对象的编程方法进行phpwap的开发。建议在阅读本之前先熟悉wml语法和php语法。
总体规划
  进行面向对象的编程自然需要确定对象以及对象之间的联系。对于需要开发的wap页面,应该首先确定其中的模块或元素的种类,然后可以以种类为单位确定对象的个数。
  
  wap浏览器下载的最小单位是deck,一个deck中可以包含若干个card。为了简化设计,我们只考虑一个card的情况。这样,deck和card的一一对应关系使得我们可以只为它们建议一个对象(如果考虑一个deck包含若干个card时,则需要分别为deck和card建立对象)。
  
  对于card,其中可以包含文本(test)、图象(image)、表格(table)、输入(input)、链接(hyperlink)等元素,对于这些元素需要分别建立对象。
  
  在实用中,一般需要建立php文件,当用户向服务器发出浏览该php文件的请求时,服务器将根据文件中的代码产生相应的html或wml内容,并发送给浏览器或wap终端。
  
  继续细化,对于表格(table),为了方便管理,我们可以建立行(row)对象,而每个行对象中会包含若干个单元(cell)对象,这里的单元对象可以是文本,也可以是图象,因此不需要另外定义。另外,对于输入(input)、选择(select)、动作(do)等与服务器端交互的元素,我们为它们定义了一个父对象(interact),将它们包含起来,方便理解与编程。
  
  如图1是我们建立的各种对象,其中的方框表示对象,而连线则表示包含关系,上层的对象包含下层的对象。

图1 php对象图

  对于具体对象的实现,需要遵循php的语法。对象中包含属性与方法,其中属性用来描述每个对象的特征,或者说,只要确定了属性,那么我们就确定了对象。对象中的方法描述了对象的操作,这些操作可以包括属性的设置、读取、显示等。因此,我们在实现以上所定义的对象时,需要提供完整的属性与必需的方法。
  
  举deck的例子,如果要确定一个deck(card),我们需要知道它内部的所有元素,这些元素就是我们定义过的image、text等对象,因此deck中应该包含有关这些对象的属性。另外,deck还包含一些设置性的参数,如标题等,因此我们也可以为它定义"title"属性等。就方法而言,我们所定义的对象中比较重要的方法是自构函数和创建函数。其中自构函数是指在创建一个对象(类)时所应完成的初始化,如设置标题头等;创建函数则产生有关该对象的wml代码,以组成一个完整的wml页面。在这里,面向对象的方法简化了创建函数,因为每个对象只用调用其属性(对象)的创建函数即可。如deck对象要创建有关table的代码时,则deck中一定具有table属性,那么直接调用table的创建函数即可,同样,table可以调用row的创建函数,有些像对象的嵌套,这种机制无疑简化了开发过程。
  
  另外,对于deck,由于它的属性可以是text、image、table、form、link中的任一个,它就需要确定其每个属性的类型,以进行相应的处理。为了实现这点,可以在每个对象中定义一个获得该对象类型的方法,该方法(函数)返回一个标识以供deck确认,例如,对于text,可以使其返回0,对于image,可以使其返回1等。对于interact对象,也存在着与deck相同的问题。
  
  在编写代码的过程中,我们应该尽量保持代码的可读性和可维护性,因此应尽量少使用无确切含义的数字和标识。例如上面所定义的返回值0或1,就难以让人理解。为了解决这个问题,我们可以使用define函数,将数字与一个符号对应,例如我们可以i_am_text表示0,i_am_image表示1,从而增强了代码的可读性。
  
  对于所定义的对象,我们可以生成一个inc文件将其保存,供php文件调用以生成页面。这里需要明确一点,我们上面所述关于对象的实现并没有生成任何页面,它只是定义了我们生成页面所需要的元素和方法,而真正生成页面的工作是php文件完成的,它使用了我们所定义的元素。
  
  下面我们将讲述对象的具体实现。

  我们建立的相应的php文件如下:
实现 [top]

[1] [2]  下一页


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons