pretty-package-versions

A small, indipendent wrapper to get pretty versions strings

Github stars Tracking Chart

jean85/pretty-package-versions

PHP Version
Stable release
Unstable release

Build status
Codecov

A small, independent wrapper to get pretty versions strings of your dependencies.

Installation

*It's suggested to use this package with a constraint of ^1.5, ^2.0, to obtain all the functionalities and guarantee future compatibility with Composer 2.

To install, use Composer:

  • from CLI: composer require 'jean85/pretty-package-versions:^1.5, ^2.0'
  • or, directly in your composer.json:
{
    "require": {
        "jean85/pretty-package-versions": "^1.5, ^2.0"
    }
}

Compatibility

This package was born as a thin wrapper for ocramius/package-versions; with the advent of Composer 2, this is no longer needed, since we can use directly Composer\InstalledVersions. This led to this version compatibility chart:, pretty-package-versions, Composer, Dependency used, -------------------------, ------------------, -----------------, Up to 1.2, 1.x only, ocramius/package-versions, 1.3, Both 1.x and 2.x, composer/package-versions-deprecated, fork of ocramius/package-versions, 1.4, 2.x only, None, 1.5+, Both 1.x and 2.x, composer/package-versions-deprecated, fork of ocramius/package-versions, 2.0 (unreleased), 2.x only, None, This means that, with this package, you can obtain pretty versions without tying your user to any specific Composer version, with a smooth upgrade path. The release of 1.4 was reverted due to some discussion in #21 and related issues.

Usage

This package should be used with a single class, Jean85\PrettyVersions: it provides a single method that returns a Jean85\Version object for the requested package, like in this example:

use Jean85\PrettyVersions;

$version = PrettyVersions::getVersion('phpunit/phpunit');
$version->getPrettyVersion(); // '6.0.0'
$version->getShortVersion(); // '6.0.0'
$version->getVersionWithShortCommit(); // '6.0.0@fa5711'

$version = PrettyVersions::getVersion('roave/security-advisories');
$version->getPrettyVersion(); // 'dev-master@7cd88c8'
$version->getShortVersion(); // 'dev-master'
$version->getVersionWithShortCommit(); // 'dev-master@7cd88c8'

The Version class has also a __toString() method implemented, so it can be easily cast to a string; the result would be the same as calling the getPrettyVersion() method.

Available methods

The Jean85\Version class has these public methods available:

  • getPrettyVersion(): string: if the requested package is a tagged version, it will return just the short version; if not, it will output the same result as getVersionWithShortCommit()

  • getShortVersion(): string: it will return just the version of the package (i.e. 6.0.0, v.1.7.0, 99999-dev etc...)

  • getVersionWithShortCommit(): string: it will return the version of the package, followed by the short version of the commit hash (i.e. 6.0.0@fa5711)

  • getPackageName(): string will return the original package name

  • getFullVersion(): string will return the same value as PackageVersions\Versions::getVersion()

  • getCommitHash(): string will return the full commit hash

  • getShortCommitHash(): string will return the short commit hash (i.e. fa5711)

  • __toString(): string will return the same as getPrettyVersion()

Since 1.5

Since the 1.5 release, there are two additional methods available:

  • PrettyVersions::getRootPackageName returns the package name of the current (root) project, so basically the name property value in your composer.json; it is a compatibility layer to be used in place of PackageVersions\Versions::ROOT_PACKAGE_NAME, which would be a transient dependency and it's not guaranteed to be present
  • PrettyVersions::getRootPackageVersion, which is a shortcut to PrettyVersions::getVersion(PrettyVersions::getRootPackageName())

Main metrics

Overview
Name With OwnerJean85/pretty-package-versions
Primary LanguagePHP
Program languagePHP (Language Count: 2)
Platform
License:MIT License
所有者活动
Created At2017-07-05 22:20:02
Pushed At2025-03-19 14:50:02
Last Commit At2020-09-14 10:43:34
Release Count20
Last Release Name2.1.1 (Posted on 2025-03-19 15:49:58)
First Release Name1.0 (Posted on 2017-07-06 10:59:31)
用户参与
Stargazers Count1.3k
Watchers Count1
Fork Count15
Commits Count161
Has Issues Enabled
Issues Count22
Issue Open Count0
Pull Requests Count29
Pull Requests Open Count0
Pull Requests Close Count5
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private