是否有标准位置将版本号放在源代码中?

时间:2009-03-22 08:42:14

标签: php zend-framework version

我想有一个文件,我可以检查安装了哪个版本。它是一个PHP程序,因此您可以查看文件。我想是否有一个标准化的地方放置它,因为在Zend Framework或HTMLpurifier我根本找不到版本号。

如果没有标准位置,我还想将它添加到Zend Framework和HTMLPurifier,所以我总是知道安装了什么版本。必须更新txt文件是另一种选择..

编辑: 我们正在考虑在不久的将来使用PHPundercontrol,但为什么要更新Zend Frameworks号码呢?怎么知道我上传了它的新版本?

4 个答案:

答案 0 :(得分:2)

我会使用文本文件选项而不是代码。

如果您这样做,随着项目的进展,您可以更新您可能或可能不会在项目中使用的其他工具(例如:phpunderconstrol或部署系统),以便能够设置/更新此数字而无需冒这些文件涉及真实代码并可能导致错误的风险。

当然,这一切都取决于您如何看待项目的进展以及您是否认为您将使用任何其他工具!

答案 1 :(得分:2)

我找到了..

在Zend Framework中,他们有一个名为Zend / Version.php的文件 - > Zend_Version这个文件里面还有版本号:

const VERSION = '1.7.5';

在HTMLPurifier中,它位于HTMLPurifier / HTMLPurifier.php中

/** Version of HTML Purifier */
public $version = '3.3.0';

/** Constant with version of HTML Purifier */
const VERSION = '3.3.0';

我想我会将该版本添加到配置文件中。

答案 2 :(得分:1)

如果您正在查看源文件,可以使用PHPDoc standard

/**
 * ...
 * @version  1.2.3
 */

const VERSION的问题是5.3之前的PHP是没有名称空间。因此,当您包含各种库时,它对您没有多大帮助。甚至更难告诉你使用自动加载,并且无法确定它们的包含顺序。

e.g:

的index.php

include_once "libA.php"
if(needsB)
  include_once "libB.php"
...
print(VERSION)

libB.php

const VERSION='1.2.3'
...
if(needsC)
  include_once "libC.php"

现在你无法确定你打印的是哪个VERSION,来自libA,libB或libC的那个。

答案 3 :(得分:0)

我所做的是创建一个配置文件,无论我在哪里,它都与程序保持一致。我有MySQL配置信息和密码HASH以及项目的版本信息等设置。

PHP的源代码也是这样做的,它们保存了这样的版本信息。

// this is a guess of the var names by me btw
MAJOR_VERSION = 5
MINOR_VERSION = 2
FIX_VERSION = 6

通过将版本信息保持为整数,您可以计算版本号之间的差异。