+ -
当前位置:首页 → 问答吧 → PEAR版本号说明

PEAR版本号说明

时间:2006-09-19

来源:互联网

原文:PHP5 Power Programming Chapter 10 . Using PEAR
    PEAR 是PHP的官方开源类库, PHP Extension and Application Repository 的缩写。Pear在英文中是梨子的意思。PEAR将PHP程序开发过程中常用的功能编写成类库,涵盖页面呈面、数据库访问、文件操作、数据结构、缓存操 作、网络协议等许多方面,用户可以很方便地使用。PEAR的大部分Package采用LGPL、PHP、BSD许可证,可以自由地使用源码。关于PEAR 更详细的信息,请访问pear.php.net
“不要重复发明轮子!”PEAR是为PHP代码的重用而开发的。使用PEAR可以大大提高PHP程序的开发效率。前人已经完成的工作,我们可以直接使用,不需要重复开发,更可以保证开发代码的质量。
PEAR概念
    首先介绍一个PPEAR的一些概念,即 packages , releases 和 versioning scheme

Packages
  当你从PEAR安装一些东西,就得去下载和安装一些特殊的  发行包。每一包都包含下面的信息:
包名称  例如:HTML_QuickForm
        概要,描述,和主页的URL
         一个或多个的维护人员
         License 信息
         许多发行版本
    Pear包和其它包(如:Linux的RPM ,Debian包, System V UNIX PKG 格式)是不一样的。一个最主要的区别是PEAR包是基于多个平台设计的,不是为了一种操作系统设计的,大部分PEAR包是平台无关性的,PEAR包可以安装在支持PHP的任何平台上,包括现在流行的类UNIX系统和微软的Windows,以及苹果的MacOS X.


Releases
    像PHP一样,PEAR的代码连同安装指令一起压缩到一个tar.gz或者zip文件中。PEAR包也同样是通过tar.gz(或tgz)文件来发布的,里面包含了可以被PEAR安装程序读取的安装指令。
除了这个包的细节内容外,每一个发行包都包含:
         版本号
         文件列表和安装指令
         发行版别(stable,beta ,alpha , devel ,或者snapshot)
在安装PEAR包时,默认是安装最近稳定的发行包,例如:
$ pear install XML_Parserdownloading XML_Parser-1.1.0.tgz ...Starting to download XML_Parser-1.1.0.tgz (7,273 bytes).....done: 7,273 bytesinstall ok: XML_Parser 1.1.0
    通过执行命令:pear install XML_Parser,可以来安装最近的稳定的确良XML_Parser包,例子中的版本为 1.1。
    为什么不把PEAR包做成像RPM包一样有多种原因,最主要的原因是,PHP是可以在各个平台上运行的,所以PEAR包也得要在各个平台上运行,这就意味着要做一个RPM包在Windows下,Darwiin下都可以运,这个工作量是很大的,因此最佳的选择就是用PHP来执行安装程序来在各个平台上运行是最方便的, 也是最简单的。



Version Nubmers
Version Number Format  版本号格式
PEAR一般由三个数字和一些特殊字符组成。语法如下:
Major [ . minor [ . patch ]] [ dev | a | b | RC | pl [ N ]]

下面是一些例子:

Version String


Major Version


Minor Version


Patch Level


Release State'


1


1





1b1


1




b1


1.0


1


0




1.0a1


1


0



a1


1.2.1


1


2


1



1.2.1dev


1


2


1


dev


2.0.0-dev


2


0


0


dev


1.2.1RC1


1


2


1


RC1


    大多数PEAR包的版本号是由二个或三个数字加上一些发行状态部分,例如:”b1”
    下面是一个发行状态的列表:

额外的


说明:


Dev


实验中,用于测试的发行版本


A


第一个版本,不是最终的,也许有许多BUG,并且很多API不是最终的.


B


第二个版本;API或多或少的稳定,但仍有一些BUG。.


RC


Release candidate; 如果这个发行版没有问题,那么RC版将会再发行,成为最终的版本。


Pl


Patch level;在发行版本后做的一些修改,但不是经常的。



Comparing Version Numbers
    有时候要对二个PEAR发行包进行比较以确定哪一个包比较新。例如,运行 pear list-upgrades 命令时,你安装的包的版本号将与pear.php.net上面的最新包的版本号进行比较,来确定哪一个是新的。

    这个比较过程,首先是从major 版本开始的,如果A的major版本号大于B,那么A比B新。如果major相同,那么minor版号将用同样的方法比较,但是如果只有B拥有minor版本号,那么B将比A新。如果A与B的minor版本号也相同,patch level将用同样的方法比较,如果patch level也相同,那么发行状态将决定结果。

    比较extra段是很麻烦的事情,如果A没有extra段,而B有,不能自动的认为B是新的。dev , a ,b , RC,被认为比没有 extra段旧,而pl (patch level ) 被认为是新的。

下面是一版本比较例子:

Version A


Version B


Newest?


Reason?


1.0


1.1


B


B有比较大的minor版本号


2.0


1.1


A


A 有比较大的major版本号.


2.0.1


2.0


A


A 有 patch level; B 没有.


2.0b1


2.0


B


A "beta" 发行状态 "老于" 没有发行状态.


2.0RC1


2.0b1


A


RC比beta新在major.minor相同时.


1.0


1.0.0


B


这个很微妙,加了一个位让版本更新


作者: EastSon   发布时间: 2006-09-19

还有下面一段,看不明白,谁来翻译一下:
Major Version Changes
When the major version of a package changes, the package name is changed and, as a result, the class names inside the package changes, too. This is to support having multiple major versions of the same package installed in the same file layout.

For example, when version 2.0 of the package Money_Fast is released, the package name for that major version changes to either Money_Fast2, Money_Fastv2, or Money_Fast_v2.

作者: EastSon   发布时间: 2006-09-19

不错不错

我想可能是为了版本兼容吧,但这样做有什么好处呢?比如我用了老版本的money_fast,在新版本中就得改成money_fast_v2吗?

作者: weiwei   发布时间: 2006-09-19

:$

作者: leobyrds   发布时间: 2006-09-19

不错,学习一下

作者: xiaojia   发布时间: 2006-09-19

热门下载

更多