|
|
||
|---|---|---|
| .. | ||
| build | ||
| src | ||
| tests | ||
| .gitattributes | ||
| .gitignore | ||
| ChangeLog.md | ||
| LICENSE | ||
| README.md | ||
| build.xml | ||
| composer.json | ||
README.md
Version
Version is a library that helps with managing the version number of Git-hosted PHP projects.
Installation
Composer
Simply add a dependency on sebastian/version to your project's composer.json file if you use Composer to manage the dependencies of your project.
PEAR Installer
The following two commands (which you may have to run as root) are all that is required to install Version using the PEAR Installer:
pear config-set auto_discover 1
pear install pear.phpunit.de/Version
Usage
The constructor of the SebastianBergmann\Version class expects two parameters:
$releaseis the version number of the latest release (X.Y.Z, for instance) or the name of the release series (X.Y) when no release has been made from that branch / for that release series yet.$pathis the path to the directory (or a subdirectory thereof) where the sourcecode of the project can be found. Simply passing__DIR__here usually suffices.
Apart from the constructor, the SebastianBergmann\Version class has a single public method: getVersion().
Here is a contrived example that shows the basic usage:
<?php
$version = new SebastianBergmann\Version(
'3.7.10', '/usr/local/src/phpunit'
);
var_dump($version->getVersion());
?>
string(18) "3.7.10-17-g00f3408"
When a new release is prepared, the string that is passed to the constructor as the first argument needs to be updated.
How SebastianBergmann\Version::getVersion() works
- If
$pathis not (part of) a Git repository and$releaseis inX.Y.Zformat then$releaseis returned as-is. - If
$pathis not (part of) a Git repository and$releaseis inX.Yformat then$releaseis returned suffixed with-dev. - If
$pathis (part of) a Git repository and$releaseis inX.Y.Zformat then the output ofgit describe --tagsis returned as-is. - If
$pathis (part of) a Git repository and$releaseis inX.Yformat then a string is returned that begins withX.Yand ends with information fromgit describe --tags.