0 follower

Class Yiisoft\YiiDevTool\Infrastructure\Composer\Config\Dependency\ComposerConfigDependencyList

InheritanceYiisoft\YiiDevTool\Infrastructure\Composer\Config\Dependency\ComposerConfigDependencyList

Method Details

Hide inherited methods

__construct() public method

public mixed __construct ( array|null $dependenciesAsArray null )
$dependenciesAsArray array|null

                public function __construct(?array $dependenciesAsArray = null)
{
    if ($dependenciesAsArray !== null) {
        foreach ($dependenciesAsArray as $packageName => $constraint) {
            $this->dependencies[$packageName] = new ComposerConfigDependency($packageName, $constraint);
        }
    }
}

            
addDependency() public method

public self addDependency ( string $packageName, string $constraint )
$packageName string
$constraint string

                public function addDependency(string $packageName, string $constraint): self
{
    if ($this->hasDependency($packageName)) {
        throw new RuntimeException('A package with this name already exists in the list.');
    }
    $this->dependencies[$packageName] = new ComposerConfigDependency($packageName, $constraint);
    return $this;
}

            
asArray() public method

public array asArray ( )

                public function asArray(): array
{
    $result = [];
    foreach ($this->dependencies as $dependency) {
        $result[$dependency->getPackageName()] = $dependency->getConstraint();
    }
    return $result;
}

            
getDependencies() public method

public Yiisoft\YiiDevTool\Infrastructure\Composer\Config\Dependency\ComposerConfigDependency[] getDependencies ( )

                public function getDependencies(): array
{
    return $this->dependencies;
}

            
getDependency() public method

public Yiisoft\YiiDevTool\Infrastructure\Composer\Config\Dependency\ComposerConfigDependency getDependency ( string $packageName )
$packageName string

                public function getDependency(string $packageName): ComposerConfigDependency
{
    if (!$this->hasDependency($packageName)) {
        throw new RuntimeException('A package with this name does not exist in the list.');
    }
    return $this->dependencies[$packageName];
}

            
hasDependency() public method

public boolean hasDependency ( string $packageName )
$packageName string

                public function hasDependency(string $packageName): bool
{
    return array_key_exists($packageName, $this->dependencies);
}

            
isEmpty() public method

public mixed isEmpty ( )

                public function isEmpty()
{
    return count($this->dependencies) === 0;
}

            
isEqualTo() public method

public boolean isEqualTo ( self $otherList )
$otherList self

                public function isEqualTo(self $otherList): bool
{
    return $this->asArray() === $otherList->asArray();
}

            
removeDependencies() public method

public self removeDependencies ( array $packageNamesToRemove )
$packageNamesToRemove array

                public function removeDependencies(array $packageNamesToRemove): self
{
    foreach ($packageNamesToRemove as $packageNameToRemove) {
        if (!is_string($packageNameToRemove)) {
            throw new InvalidArgumentException('Package names must be strings.');
        }
    }
    foreach ($packageNamesToRemove as $packageNameToRemove) {
        $this->removeDependency($packageNameToRemove);
    }
    return $this;
}

            
removeDependency() public method

public self removeDependency ( string $packageNameToRemove )
$packageNameToRemove string

                public function removeDependency(string $packageNameToRemove): self
{
    unset($this->dependencies[$packageNameToRemove]);
    return $this;
}

            
sort() public method

public self sort ( )

                public function sort(): self
{
    uasort($this->dependencies, function ($a, $b) {
        /* @var $a ComposerConfigDependency */
        /* @var $b ComposerConfigDependency */
        if ($a->getPriority() === $b->getPriority()) {
            return strnatcmp($a->getPackageName(), $b->getPackageName());
        }
        return $a->getPriority() - $b->getPriority();
    });
    return $this;
}