function ArchiveManager::getPackageFilenameParts
@internal
Return value
array<string, string>
2 calls to ArchiveManager::getPackageFilenameParts()
- ArchiveManager::archive in vendor/
composer/ composer/ src/ Composer/ Package/ Archiver/ ArchiveManager.php - Create an archive of the specified package.
- ArchiveManager::getPackageFilename in vendor/
composer/ composer/ src/ Composer/ Package/ Archiver/ ArchiveManager.php - Generate a distinct filename for a particular version of a package.
File
-
vendor/
composer/ composer/ src/ Composer/ Package/ Archiver/ ArchiveManager.php, line 77
Class
- ArchiveManager
- @author Matthieu Moquet <matthieu@moquet.net> @author Till Klampaeckel <till@php.net>
Namespace
Composer\Package\ArchiverCode
public function getPackageFilenameParts(CompletePackageInterface $package) : array {
$baseName = $package->getArchiveName();
if (null === $baseName) {
$baseName = Preg::replace('#[^a-z0-9-_]#i', '-', $package->getName());
}
$parts = [
'base' => $baseName,
];
$distReference = $package->getDistReference();
if (null !== $distReference && Preg::isMatch('{^[a-f0-9]{40}$}', $distReference)) {
$parts['dist_reference'] = $distReference;
$parts['dist_type'] = $package->getDistType();
}
else {
$parts['version'] = $package->getPrettyVersion();
$parts['dist_reference'] = $distReference;
}
$sourceReference = $package->getSourceReference();
if (null !== $sourceReference) {
$parts['source_reference'] = substr(hash('sha1', $sourceReference), 0, 6);
}
$parts = array_filter($parts, function (?string $part) {
return $part !== null;
});
foreach ($parts as $key => $part) {
$parts[$key] = str_replace('/', '-', $part);
}
return $parts;
}