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

Breadcrumb

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

class Tar

Same name in this branch
  1. 11.1.x core/lib/Drupal/Core/Archiver/Tar.php \Drupal\Core\Archiver\Tar
  2. 11.1.x core/modules/system/src/Plugin/Archiver/Tar.php \Drupal\system\Plugin\Archiver\Tar

@author Wissem Riahi <wissemr@gmail.com>

Hierarchy

  • class \Composer\Util\Tar

Expanded class hierarchy of Tar

1 file declares its use of Tar
ArtifactRepository.php in vendor/composer/composer/src/Composer/Repository/ArtifactRepository.php
6 string references to 'Tar'
ArchiveManager::getSupportedFormats in vendor/composer/composer/src/Composer/Package/Archiver/ArchiveManager.php
Archive_Tar::_openRead in vendor/pear/archive_tar/Archive/Tar.php
ArtifactRepository::getComposerInformation in vendor/composer/composer/src/Composer/Repository/ArtifactRepository.php
Factory::createDownloadManager in vendor/composer/composer/src/Composer/Factory.php
FileExtensionFormatter::viewValue in core/modules/file/src/Plugin/Field/FieldFormatter/FileExtensionFormatter.php
Generate the output appropriate for one field item.

... See full list

File

vendor/composer/composer/src/Composer/Util/Tar.php, line 18

Namespace

Composer\Util
View source
class Tar {
    public static function getComposerJson(string $pathToArchive) : ?string {
        $phar = new \PharData($pathToArchive);
        if (!$phar->valid()) {
            return null;
        }
        return self::extractComposerJsonFromFolder($phar);
    }
    
    /**
     * @throws \RuntimeException
     */
    private static function extractComposerJsonFromFolder(\PharData $phar) : string {
        if (isset($phar['composer.json'])) {
            return $phar['composer.json']->getContent();
        }
        $topLevelPaths = [];
        foreach ($phar as $folderFile) {
            $name = $folderFile->getBasename();
            if ($folderFile->isDir()) {
                $topLevelPaths[$name] = true;
                if (\count($topLevelPaths) > 1) {
                    throw new \RuntimeException('Archive has more than one top level directories, and no composer.json was found on the top level, so it\'s an invalid archive. Top level paths found were: ' . implode(',', array_keys($topLevelPaths)));
                }
            }
        }
        $composerJsonPath = key($topLevelPaths) . '/composer.json';
        if ($topLevelPaths && isset($phar[$composerJsonPath])) {
            return $phar[$composerJsonPath]->getContent();
        }
        throw new \RuntimeException('No composer.json found either at the top level or within the topmost directory');
    }

}

Members

Title Sort descending Modifiers Object type Summary
Tar::extractComposerJsonFromFolder private static function
Tar::getComposerJson public static function

API Navigation

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