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

Breadcrumb

  1. Drupal Core 11.1.x

NoAbsoluteSymlinksExist.php

Namespace

PhpTuf\ComposerStager\Internal\Precondition\Service

File

vendor/php-tuf/composer-stager/src/Internal/Precondition/Service/NoAbsoluteSymlinksExist.php

View source
<?php

declare (strict_types=1);
namespace PhpTuf\ComposerStager\Internal\Precondition\Service;

use PhpTuf\ComposerStager\API\Exception\PreconditionException;
use PhpTuf\ComposerStager\API\Path\Value\PathInterface;
use PhpTuf\ComposerStager\API\Precondition\Service\NoAbsoluteSymlinksExistInterface;
use PhpTuf\ComposerStager\API\Translation\Value\TranslatableInterface;

/**
 * @package Precondition
 *
 * @internal Don't depend directly on this class. It may be changed or removed at any time without notice.
 */
final class NoAbsoluteSymlinksExist extends AbstractFileIteratingPrecondition implements NoAbsoluteSymlinksExistInterface {
    public function getName() : TranslatableInterface {
        return $this->t('No absolute links exist');
    }
    public function getDescription() : TranslatableInterface {
        return $this->t('The codebase cannot contain absolute links.');
    }
    protected function getFulfilledStatusMessage() : TranslatableInterface {
        return $this->t('There are no absolute links in the codebase.');
    }
    protected function assertIsSupportedFile(string $codebaseName, PathInterface $codebaseRoot, PathInterface $file) : void {
        if (!$this->filesystem
            ->isSymlink($file)) {
            return;
        }
        $target = $this->filesystem
            ->readLink($file);
        if ($target->isAbsolute()) {
            throw new PreconditionException($this, $this->t('The %codebase_name directory at %codebase_root contains absolute links, which is not supported. The first one is %file.', $this->p([
                '%codebase_name' => $codebaseName,
                '%codebase_root' => $codebaseRoot->absolute(),
                '%file' => $file->absolute(),
            ])));
        }
    }

}

Classes

Title Deprecated Summary
NoAbsoluteSymlinksExist @package Precondition
RSS feed
Powered by Drupal