PEAR版本号说明
时间:2006-09-19
来源:互联网
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包做成像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 |
下面是一个发行状态的列表:
额外的 |
说明: |
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
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28