【搜集】问题:什么是 PEAR?PEAR 是什么意思?

什么是 PEAR?PEAR 是什么意思?  PEAR 是 PHP的 官方开源类库,PHP Extension and Application Repository 的缩写。Pear 在英文中是梨子的意思。PEAR 将 PHP 程序开发过程中常用的功能编写成类库,涵盖了页面呈面、数据库访问、文件操作、数据结构、缓存操作、网络协议等许多方面,用户可以很方便地使用。它是一个 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 的提供目的是什么?  一个PHP 用户的开源(open-sourced)代码组织库  一个代码分发和包维护和系统  一个用PHP写的标准风格  PHP 基础类(PFC)   PHP 扩展公共库(PECL), 更详细说明在下面   一个支持 PHP/PEAR 团体的网站,邮件列表和下载镜像

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)) {     语句1; } esleif ((条件3) || (条件4)) {     语句2; } else {     语句3; }

函数调用:   对于函数调用,函数名和左括号 ( 之间不应该有空格,对于函数参数,在分隔的逗号和下一个参数之间要有相同的空格分离,最后一个参数和右括号之间不能有空格。下面是一个标准的函数调用; $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) {     if (is_array($dsn)) {         $dsninfo = &&dsn;     } else {         $dsninfo = DB::parseDSN($dsn);     }     if (!$dsninfo || !$dsninfo['phptype']) {         return $this->raiseError();     }     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 代码,而不要简单地使用,这样可以保证 PEAR 的兼容性,也利于跨平台的移植。

文件头的注释声明:   所有需要包含在 PEAR 核心发布的PHP代码文件,在文件开始的时候,你必须加入以下的注释声明: /* vim: set expandtab tabstop=4 shiftwidth=4: */ // +----------------------------------------------------------------------+ // | PHP version 4.0                                                      | // +----------------------------------------------------------------------+ // | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group             | // +----------------------------------------------------------------------+ // | This source file is subject to version 2.0 of the PHP license,       | // | that is bundled with this package in the file LICENSE, and is        | // | available at through the world-wide-web at                           | // | http://www.php.net/license/2_02.txt.                                 | // | If you did not receive a copy of the PHP license and are unable to   | // | obtain it through the world-wide-web, please send a note to          | // | license@php.net so we can mail you a copy immediately.               | // +----------------------------------------------------------------------+ // | Authors: Original Author                                             | // | Your Name                                                            | // +----------------------------------------------------------------------+ // // $Id$

  对于不在 PEAR 核心代码库中的文件,建议你也在文件的开始处有这样一个类似的注释块,标明版权,协议,作者等等。同时也在第一行加入 VIM 的 MODELINE,这样在 VIM 中能够保持 PEAR 的代码风格。

CVS 标记:   如上面所展示那样,在每个文件中加入 CVS 的 ID 标记,如果你编辑或修改的文件中没有这个标记,那么请加入,或者是替换原文件中相类似的表现形式(如“Last modified”等等)

URL 样本:   你可以参照 RFC 2606,使用“www.example.com”作为所有的 URL 样本。

常量命名:   常量应该尽量使用大写,为了便于理解,使用下划线分割每个单词。同时,你应该常量所在的包名或者是类名作为前缀。比如,对于 Bug 类中常量应该以 Bug_ 开始。以上是 PEAR 的编码规则,详细的编码规则可以参考 PEAR 中的 CODING_STANDDARD 文件的说明。为了更好地理解这些编码规则,你也可以参考一下现有 PEAR 核心模块的代码。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值