文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>用PEAR来写你的下一个php程序(潘凡Night Sailer)(1)

用PEAR来写你的下一个php程序(潘凡Night Sailer)(1)

时间:2007-02-17  来源:PHP爱好者

本文转自:http://www.cn.ibm.com/developerWorks/linux/sdk/php/pear1/index.shtml
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
潘凡(Night Sailer) ([email protected])
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
北京赛迪网信息技术有限公司
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
2001 年 6 月
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
你可能已经是个PHP的老手了,写了很多非常棒的代码。但是,如果你现在要把它们加入到你现在
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
的项目中去,是否有些吃力?你的朋友想使用你的代码作为他的项目中的一个模块,但是你发现
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
你们使用了截然不同的编码风格,让他适应,甚至不如重写一个!
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
请跟我来,使用PEAR标准编写你的PHP程序吧,你的程序将会拥有更大的活力,你的程序和代码将
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
会很方便地和其他高手的代码融合在一起,PEAR就象CPAN对于PERL一样,会让PHP产生更高的能
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
量。
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
什么是PEAR 
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
PEAR是PHP扩展与应用库(the PHP Extension and Application Repository)的缩写。
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
它是一个PHP扩展及应用的一个代码仓库,简单地说,PEAR就是PHP的CPAN。
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
为什么要使用PEAR? 
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
PHP是一个非常优秀的脚本语言,简洁、高效,随着4.0的发布,越来越多的人使用它来进行动态
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
网站的开发,可以说,PHP已经成为最优秀的INTERNET开发语言之一,尤其对于那些需要能够快
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
速、高效地开发中小规模的商业应用的网站开发人员,PHP是其首选的语言。但是随着PHP的应用
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
的不断增多,对于这些应用缺乏统一的标准和有效的管理,因此,PHP社区很难象PERL社区的人们
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
那样方便的共享彼此的代码和应用,因为PHP缺乏象CPAN那样的统一的代码库来分类管理应用的代
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
码模块(熟悉PERL的人都知道,CPAN是一个巨大的PERL的扩展模块仓库,编写的应用模块可以放
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
在CPAN下面的适当的分类目录下面,其他的人可以很方便地复用,当然,你编写应用模块时候也
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
需要遵守其中的准则。)
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
为此,PEAR就应运而生了,并且从4.04开始,随着PHP核心一起被分发。
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
PEAR能给我带来什么好处? 
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
1.如前所述,PEAR按照一定的分类来管理PEAR应用代码库,你的PEAR代码可以组织到其中适当的
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
目录中,其他的人可以方便地检索并分享到你的成果。
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
2.PEAR不仅仅是一个代码仓库,它同时也是一个标准,使用这个标准来书写你的PHP代码,将会增
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
强你的程序的可读性,复用性,减少出错的几率。
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
3.PEAR通过提供2个类为你搭建了一个框架,实现了诸如析构函数,错误捕获功能,你通过继承就
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
可以使用这些功能。
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
PEAR的编码规则 
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
PEAR的编码规则包括缩进规则,控制结构,函数调用,函数定义,注释,包含代码,PHP标记,文
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
件头的注释块,CVS标记,URL样例,常量的命名这11方面。下面简要地介绍一下:
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
缩进规则: 
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
PEAR中需要使用4个空格来缩排代码,并且不使用TAB。如果你使用VIM,将下列设置放入你的
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
~/.vimrc中: 
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
set expandtab
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
set shiftwidth=4
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
set tabstop=4
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
 
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
如果,你使用Emacs/XEmacs,需要把indent-tabs-mode 设置成nil。
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
不过你象我一样喜欢用(X)Emacs编辑PHP文件,我强烈推荐你安装PHP-MODE,这样当你编写PEAR代
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
码的时候,它会自动调整你的缩排风格,当然PHP-MODE还有许多很优秀的特性,你可以从资源列
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
表中的地方下载最新版的PHP-MODE。
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
控制结构: 
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
这里所说的控制结构包括: if for while switch 等。对于控制结构,在关键字(如if for ..)
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
后面要空一个格,然后再跟控制的圆括号,这样,不至于和函数调用混淆,此外,你应该尽量完
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
整的使用花括号{},即使从语法上来说是可选的。这样可以防止你以后需添加新的代码行时产生
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
逻辑上的疑惑或者错误。这里是一个样例: 
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
if ((条件1) && (条件2)) esleif ((条件3) ││ (条件4)) else 
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
 
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
函数调用: 
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
对于函数调用,函数名和左括号( 之间不应该有空格,对于函数参数,在分隔的逗号和下一个参
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
数之间要有相同的空格分离,最后一个参数和右括号之间不能有空格。下面是一个标准的函数调
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
用; 
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
$result = foo($param1, $param2, $param3);
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
不规范的写法:
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
$result=foo ($param1,$param2,$param3);
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
$result=foo( $param1,$param2, $param3 );
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
 
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
此外,如果要将函数的返回结果赋值,那么在等号和所赋值的变量之间要有空格,同时,如果是
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
一系列相关的赋值语句,你添加适当的空格,使它们对齐,就象这样: 
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
$result1 = $foo($param1, $param2, $param3);
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
$var2    = $foo($param3);
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
$var3    = $foo($param4, $param5);
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
 
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
函数定义: 
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
函数定义遵循"one true brace"习俗: 
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
function connect(&$dsn, $persistent = false)
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
 else 
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
    if (!$dsninfo ││ !$dsninfo[’phptype’]) 
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
    return true;
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
}
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
 
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
如上所示,可选参数要在参数表的末端,并且总是尽量返回有意义的函数值。
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
关于注释: 
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
对于类的在线文档,应该能够被PHPDoc转换,就象JavaDoc那样。PHPDoc也是一个PEAR的应用程
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
序,更详细的介绍你可以去 http://www.phpdoc.de/ 查看。除了类的在线文档,建议你应该使用
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
非文档性质的注释来诠释你的代码,当你看到一段代码时想:哦,我想不需要在文档里去仔细描
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
述它吧。那么你最好给这段代码作一个简单的注释,这样防止你会忘记它们是如何工作的。对于
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
注释的形式,C的 /* */和C++的//都不错,不过,不要使用Perl或者shell的#注释方式。
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
包含代码: 
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
无论什么时候,当你需要无条件包含进一个class文件,你必须使用requre_once;当你需要条件包
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
含进一个class文件,你必须使用include_once;这样可以保证你要包含的文件只会包含一次,并
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
且这2个语句共用同一个文件列表,所以你无须担心二者会混淆,一旦require_once 包含了一个
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
文件,include_once不会再重复包含相同的文件,反之亦然。
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd

c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
PHP代码标记: 
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
任何时候都要使用<?php ?>定义你的php代码,而不要简单地使用<? ?>,这样可以保证PEAR的兼容
c hina it power . c omsJt8RWn4rsGRlUgaMmi78Rzfd
性,也利于跨平台的移植。
php爱好者站 http://www.phpfans.net 为phper提供一切资讯.
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载