Файловый менеджер - Редактировать - /home/avadvi5/calendar.aeronextgen.com/davis/vendor/doctrine/migrations/src/Version/DefaultAliasResolver.php
Ðазад
<?php declare(strict_types=1); namespace Doctrine\Migrations\Version; use Doctrine\Migrations\Exception\NoMigrationsFoundWithCriteria; use Doctrine\Migrations\Exception\NoMigrationsToExecute; use Doctrine\Migrations\Exception\UnknownMigrationVersion; use Doctrine\Migrations\Metadata\Storage\MetadataStorage; use function substr; /** * The DefaultAliasResolver class is responsible for resolving aliases like first, current, etc. to the actual version number. * * @internal */ final class DefaultAliasResolver implements AliasResolver { private const ALIAS_FIRST = 'first'; private const ALIAS_CURRENT = 'current'; private const ALIAS_PREV = 'prev'; private const ALIAS_NEXT = 'next'; private const ALIAS_LATEST = 'latest'; public function __construct( private readonly MigrationPlanCalculator $migrationPlanCalculator, private readonly MetadataStorage $metadataStorage, private readonly MigrationStatusCalculator $migrationStatusCalculator, ) { } /** * Returns the version number from an alias. * * Supported aliases are: * * - first: The very first version before any migrations have been run. * - current: The current version. * - prev: The version prior to the current version. * - next: The version following the current version. * - latest: The latest available version. * * If an existing version number is specified, it is returned verbatimly. * * @throws NoMigrationsToExecute * @throws UnknownMigrationVersion * @throws NoMigrationsFoundWithCriteria */ public function resolveVersionAlias(string $alias): Version { $availableMigrations = $this->migrationPlanCalculator->getMigrations(); $executedMigrations = $this->metadataStorage->getExecutedMigrations(); switch ($alias) { case self::ALIAS_FIRST: case '0': return new Version('0'); case self::ALIAS_CURRENT: try { return $executedMigrations->getLast()->getVersion(); } catch (NoMigrationsFoundWithCriteria) { return new Version('0'); } // no break because of return case self::ALIAS_PREV: try { return $executedMigrations->getLast(-1)->getVersion(); } catch (NoMigrationsFoundWithCriteria) { return new Version('0'); } // no break because of return case self::ALIAS_NEXT: $newMigrations = $this->migrationStatusCalculator->getNewMigrations(); try { return $newMigrations->getFirst()->getVersion(); } catch (NoMigrationsFoundWithCriteria $e) { throw NoMigrationsToExecute::new($e); } // no break because of return case self::ALIAS_LATEST: try { return $availableMigrations->getLast()->getVersion(); } catch (NoMigrationsFoundWithCriteria) { return $this->resolveVersionAlias(self::ALIAS_CURRENT); } // no break because of return default: if ($availableMigrations->hasMigration(new Version($alias))) { return $availableMigrations->getMigration(new Version($alias))->getVersion(); } if (substr($alias, 0, 7) === self::ALIAS_CURRENT) { $val = (int) substr($alias, 7); $targetMigration = null; if ($val > 0) { $newMigrations = $this->migrationStatusCalculator->getNewMigrations(); return $newMigrations->getFirst($val - 1)->getVersion(); } return $executedMigrations->getLast($val)->getVersion(); } } throw UnknownMigrationVersion::new($alias); } }
| ver. 1.1 | |
.
| PHP 8.3.30 | Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраницы: 0 |
proxy
|
phpinfo
|
ÐаÑтройка