Есть ли стандартное место для размещения номера версии в исходном коде? - PullRequest
3 голосов
/ 22 марта 2009

Я хочу иметь один файл, в котором я могу проверить, какая версия установлена. Это программа PHP, так что вы можете просматривать файлы. Я думал, есть ли стандартизированное место для его размещения, так как в Zend Framework или в HTML-очистителе я вообще не могу найти номер версии.

Я также хотел бы добавить его в Zend Framework и HTMLPurifier, если стандартного расположения нет, поэтому я всегда знаю, какая версия установлена. Необходимость обновить текстовый файл была бы другой альтернативой.

EDIT: Мы думаем об использовании PHPundercontrol в самом ближайшем будущем, но зачем ему обновлять номер Zend Frameworks? Как он узнал, что я загрузил новую версию?

Ответы [ 4 ]

2 голосов
/ 22 марта 2009

Я нашел это ..

в 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 голосов
/ 22 марта 2009

Я бы пошел с опцией текстового файла, а не в коде.

Если вы делаете это по мере продвижения вашего проекта, вы можете обновить другие инструменты, которые вы можете или не можете использовать в своем проекте (например, phpunderconstrol или систему развертывания), чтобы иметь возможность устанавливать / обновлять этот номер без необходимости рискнуть этими файлами, касающимися реального кода и потенциально вызывающими ошибки.

Конечно, все зависит от того, как вы видите прогресс вашего проекта и думаете ли вы, что когда-нибудь будете использовать какие-либо другие инструменты!

1 голос
/ 22 марта 2009

Если вы просматриваете исходные файлы, существует стандарт PHPDoc :

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

Проблема с const VERSION заключается в том, что PHP до 5.3 состоит в том, что нет пространств имен. Так что это не очень полезно для вас, когда вы включаете различные библиотеки. Еще сложнее сказать, что вы используете автозагрузку и не можете быть уверены в том порядке, в котором они включены.

например:

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.

0 голосов
/ 22 марта 2009

Что я делаю, это создаю файл конфигурации, который остается с программой, где бы я ни находился. Там у меня есть настройки, такие как информация о конфигурации MySQL и пароль HASH, а также информация о версии проекта.

Исходный код PHP также делает это, они сохраняют информацию о версии следующим образом.

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

Сохраняя информацию о версии в виде целых чисел, вы можете рассчитать разницу между номерами версий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...