Вход Регистрация
Файл: vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/MigrationBuilder.php
Строк: 62
<?php declare(strict_types=1);
/*
 * This file is part of PHPUnit.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace PHPUnitTextUIXmlConfiguration;

use function 
array_key_exists;
use function 
sprintf;
use function 
version_compare;

/**
 * @internal This class is not covered by the backward compatibility promise for PHPUnit
 */
final class MigrationBuilder
{
    private const 
AVAILABLE_MIGRATIONS = [
        
'8.5' => [
            
RemoveLogTypes::class,
        ],

        
'9.2' => [
            
RemoveCacheTokensAttribute::class,
            
IntroduceCoverageElement::class,
            
MoveAttributesFromRootToCoverage::class,
            
MoveAttributesFromFilterWhitelistToCoverage::class,
            
MoveWhitelistDirectoriesToCoverage::class,
            
MoveWhitelistExcludesToCoverage::class,
            
RemoveEmptyFilter::class,
            
CoverageCloverToReport::class,
            
CoverageCrap4jToReport::class,
            
CoverageHtmlToReport::class,
            
CoveragePhpToReport::class,
            
CoverageTextToReport::class,
            
CoverageXmlToReport::class,
            
ConvertLogTypes::class,
            
UpdateSchemaLocationTo93::class,
        ],
    ];

    
/**
     * @throws MigrationBuilderException
     */
    
public function build(string $fromVersion): array
    {
        if (!
array_key_exists($fromVersionself::AVAILABLE_MIGRATIONS)) {
            throw new 
MigrationBuilderException(
                
sprintf(
                    
'Migration from schema version %s is not supported',
                    
$fromVersion
                
)
            );
        }

        
$stack = [];

        foreach (
self::AVAILABLE_MIGRATIONS as $version => $migrations) {
            if (
version_compare($version$fromVersion'<')) {
                continue;
            }

            foreach (
$migrations as $migration) {
                
$stack[] = new $migration;
            }
        }

        return 
$stack;
    }
}
Онлайн: 1
Реклама