Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. ArchiveManager.php

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\Archiver

Code

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;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal