caisse-bliss/vendor/doctrine/migrations/lib/Doctrine/Migrations/Metadata/AvailableMigrationsSet.php

65 lines
1.4 KiB
PHP
Raw Normal View History

2023-06-19 12:13:30 +02:00
<?php
declare(strict_types=1);
namespace Doctrine\Migrations\Metadata;
use Countable;
use Doctrine\Migrations\Exception\MigrationNotAvailable;
use Doctrine\Migrations\Version\Version;
use function array_values;
use function count;
/**
* Represents a non sorted list of migrations that may or may not be already executed.
*/
final class AvailableMigrationsSet implements Countable
{
/** @var AvailableMigration[] */
private array $items = [];
/**
* @param AvailableMigration[] $items
*/
public function __construct(array $items)
{
$this->items = array_values($items);
}
/**
* @return AvailableMigration[]
*/
public function getItems(): array
{
return $this->items;
}
public function count(): int
{
return count($this->items);
}
public function hasMigration(Version $version): bool
{
foreach ($this->items as $migration) {
if ($migration->getVersion()->equals($version)) {
return true;
}
}
return false;
}
public function getMigration(Version $version): AvailableMigration
{
foreach ($this->items as $migration) {
if ($migration->getVersion()->equals($version)) {
return $migration;
}
}
throw MigrationNotAvailable::forVersion($version);
}
}