Um wrapper pequeno e independente para obter strings de versões bonitas de suas dependências.
^1.5 || ^2.0
, para obter todas as funcionalidades sem restringir seus usuários finais a atualizar imediatamente para o Composer 2.Para instalar, use o Composer:
composer require 'jean85/pretty-package-versions:^1.5 || ^2.0'
composer.json
: {
"require" : {
"jean85/pretty-package-versions" : " ^1.5 || ^2.0 "
}
}
Este pacote nasceu como um invólucro fino para ocramius/package-versions; com o advento do Composer 2, isso não é mais necessário, pois podemos usar diretamente ComposerInstalledVersions
. Isso levou a este gráfico de compatibilidade de versão:
pretty-package-versions | Compositor | Dependência usada |
---|---|---|
Até 1,2 | 1.x apenas | ocramius/package-versions |
1.3 | Tanto 1.xe 2.x | composer/package-versions-deprecated , fork de ocramius/package-versions |
1.4 | Somente 2.x | Nenhum |
1,5+ | Tanto 1.xe 2.x | composer/package-versions-deprecated , fork de ocramius/package-versions |
2,0 | Somente 2.x | Nenhum |
Isso significa que, com este pacote, você pode obter versões bonitas sem vincular seu usuário a nenhuma versão específica do Composer, com um caminho de atualização tranquilo. A versão 1.4 foi revertida devido a alguma discussão no item 21 e questões relacionadas.
Este pacote deve ser usado com uma única classe, Jean85PrettyVersions
: ele fornece um único método que retorna um objeto Jean85Version
para o pacote solicitado, como neste exemplo:
use Jean85 PrettyVersions ;
$ version = PrettyVersions:: getVersion ( ' phpunit/phpunit ' );
$ version -> getPrettyVersion (); // '6.0.0'
$ version -> getShortVersion (); // '6.0.0'
$ version -> getVersionWithShortReference (); // '6.0.0@fa5711'
$ version = PrettyVersions:: getVersion ( ' roave/security-advisories ' );
$ version -> getPrettyVersion (); // 'dev-master@7cd88c8'
$ version -> getShortVersion (); // 'dev-master'
$ version -> getVersionWithShortReference (); // 'dev-master@7cd88c8'
A classe Version
também possui um método __toString()
implementado, para que possa ser facilmente convertido em uma string; o resultado seria o mesmo que chamar o método getPrettyVersion()
.
A classe Jean85Version
tem estes métodos públicos disponíveis:
getPrettyVersion(): string
: se o pacote solicitado for uma versão marcada, ele retornará apenas a versão curta; caso contrário, produzirá o mesmo resultado que getVersionWithShortCommit()
getShortVersion(): string
: retornará apenas a versão do pacote (ou seja, 6.0.0
, v.1.7.0
, 99999-dev
etc...)
getReference(): string
retornará a referência do pacote instalado, geralmente o hash completo do commit do Git
getShortReference(): string
retornará a versão abreviada da referência (ou seja, fa5711
)
getVersionWithShortReference(): string
: retornará a versão do pacote, seguida pela versão curta da referência (ou seja, 6.0.0@fa5711
)
getPackageName(): string
retornará o nome original do pacote
getFullVersion(): string
retornará o mesmo valor que PackageVersionsVersions::getVersion()
__toString(): string
retornará o mesmo que getPrettyVersion()
Desde a versão 1.5, existem dois métodos adicionais disponíveis:
PrettyVersions::getRootPackageName
retorna o nome do pacote do projeto atual (raiz), então basicamente o valor da propriedade name
em seu composer.json
; é uma camada de compatibilidade a ser usada no lugar de PackageVersionsVersions::ROOT_PACKAGE_NAME
, o que seria uma dependência transitória e não é garantido que esteja presentePrettyVersions::getRootPackageVersion
, que é um atalho para PrettyVersions::getVersion(PrettyVersions::getRootPackageName())
Os métodos com reference
no nome foram introduzidos na versão 2.0, para melhor refletir o significado dos dados recuperados da API do Composer 2. O comportamento é o mesmo dos métodos antigos, que ainda estão presentes, mas estão obsoletos:
Novo método | Método antigo e obsoleto |
---|---|
Version::getReference() | Version::getCommitHash() |
Version::getShortReference() | Version::getShortCommitHash() |
Version::getVersionWithShortReference() | Version::getVersionWithShortCommit() |