当前位置:首页> PHP教程> PHP代码
关键字
文章内容
用PEAR来写你的下一个php程序(潘凡Night Sailer)
 
 
修改时间:[2011/03/06 15:14]    阅读次数:[1447]    发表者:[起缘]
 
本文转自http://www.cn.ibm.com/developerWorks/linux/sdk/php/pear1/index.shtml


潘凡
(Night Sailer) (nightsailer@hotmail.com)

北京赛迪网信息技术有限公司

2001
  6 



你可能已经是个PHP的老手了
写了很多非常棒的代码。但是如果你现在要把它们加入到你现在

的项目中去
是否有些吃力你的朋友想使用你的代码作为他的项目中的一个模块但是你发现

你们使用了截然不同的编码风格
让他适应甚至不如重写一个

请跟我来使用PEAR标准编写你的PHP程序吧你的程序将会拥有更大的活力你的程序和代码将

会很方便地和其他高手的代码融合在一起
PEAR就象CPAN对于PERL一样会让PHP产生更高的能

量。



什么是PEAR
 

PEAR是PHP扩展与应用库the PHP Extension and Application Repository的缩写。

它是一个PHP扩展及应用的一个代码仓库
简单地说PEAR就是PHP的CPAN。



为什么要使用PEAR
 

PHP是一个非常优秀的脚本语言简洁、高效随着4.0的发布越来越多的人使用它来进行动态

网站的开发
可以说PHP已经成为最优秀的INTERNET开发语言之一尤其对于那些需要能够快

速、高效地开发中小规模的商业应用的网站开发人员
PHP是其首选的语言。但是随着PHP的应用

的不断增多
对于这些应用缺乏统一的标准和有效的管理因此PHP社区很难象PERL社区的人们

那样方便的共享彼此的代码和应用
因为PHP缺乏象CPAN那样的统一的代码库来分类管理应用的代

码模块
熟悉PERL的人都知道CPAN是一个巨大的PERL的扩展模块仓库编写的应用模块可以放

在CPAN下面的适当的分类目录下面
其他的人可以很方便地复用当然你编写应用模块时候也

需要遵守其中的准则。




为此PEAR就应运而生了并且从4.04开始随着PHP核心一起被分发。



PEAR能给我带来什么好处
 

1.如前所述PEAR按照一定的分类来管理PEAR应用代码库你的PEAR代码可以组织到其中适当的

目录中
其他的人可以方便地检索并分享到你的成果。



2
.PEAR不仅仅是一个代码仓库它同时也是一个标准使用这个标准来书写你的PHP代码将会增

强你的程序的可读性
复用性减少出错的几率。



3
.PEAR通过提供2个类为你搭建了一个框架实现了诸如析构函数错误捕获功能你通过继承就

可以使用这些功能。



PEAR的编码规则
 

PEAR的编码规则包括缩进规则控制结构函数调用函数定义注释包含代码PHP标记

件头的注释块
CVS标记URL样例常量的命名这11方面。下面简要地介绍一下



缩进规则 

PEAR中需要使用4个空格来缩排代码并且不使用TAB。如果你使用VIM将下列设置放入你的

~
/.vimrc中 

set expandtab

set
 shiftwidth=4

set
 tabstop=4



 

如果你使用Emacs/XEmacs,需要把indent-tabs-mode 设置成nil。



不过你象我一样喜欢用
(X)Emacs编辑PHP文件我强烈推荐你安装PHP-MODE这样当你编写PEAR代

码的时候
它会自动调整你的缩排风格当然PHP-MODE还有许多很优秀的特性你可以从资源列

表中的地方下载最新版的PHP
-MODE。



控制结构
 

这里所说的控制结构包括: if for while switch 等。对于控制结构在关键字if for ..

后面要空一个格然后再跟控制的圆括号这样不至于和函数调用混淆此外你应该尽量完

整的使用花括号
{}即使从语法上来说是可选的。这样可以防止你以后需添加新的代码行时产生

逻辑上的疑惑或者错误。这里是一个样例
 

if ((条件1) && (条件2)) esleif ((条件3) ││ (条件4)) else 



 





函数调用 

对于函数调用函数名和左括号( 之间不应该有空格对于函数参数在分隔的逗号和下一个参

数之间要有相同的空格分离
最后一个参数和右括号之间不能有空格。下面是一个标准的函数调

 

$result = foo($param1, $param2, $param3);

不规范的写法

$result=foo ($param1,$param2,$param3);

$result=foo( $param1,$param2, $param3 );



 





此外如果要将函数的返回结果赋值那么在等号和所赋值的变量之间要有空格同时如果是

一系列相关的赋值语句
你添加适当的空格使它们对齐就象这样 

$result1 = $foo($param1, $param2, $param3);

$var2    = $foo($param3);

$var3    = $foo($param4, $param5);



 





函数定义 

函数定义遵循"one true brace"*俗 

function connect(&$dsn, $persistent = false)

 else 



    if (!$dsninfo ││ !$dsninfo[’phptype’]) 

    return true;

}



 

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



关于注释
 

对于类的在线文档应该能够被PHPDoc转换就象JavaDoc那样。PHPDoc也是一个PEAR的应用程

更详细的介绍你可以去 http://www.phpdoc.de/ 查看。除了类的在线文档建议你应该使用

非文档性质的注释来诠释你的代码
当你看到一段代码时想我想不需要在文档里去仔细描

述它吧。那么你最好给这段代码作一个简单的注释
这样防止你会忘记它们是如何工作的。对于

注释的形式
C的 /* */和C++//都不错不过不要使用Perl或者shell的#注释方式。



包含代码
 

无论什么时候当你需要无条件包含进一个class文件你必须使用requre_once;当你需要条件包

含进一个
class文件你必须使用include_once;这样可以保证你要包含的文件只会包含一次

且这2个语句共用同一个文件列表
所以你无须担心二者会混淆一旦require_once 包含了一个

文件
include_once不会再重复包含相同的文件反之亦然。



PHP代码标记
 

任何时候都要使用<?php ?>定义你的php代码而不要简单地使用<? ?>,这样可以保证PEAR的兼容

也利于跨平台的移