Вход Регистрация
Файл: vendor/phpunit/php-code-coverage/src/Driver/Selector.php
Строк: 94
<?php declare(strict_types=1);
/*
 * This file is part of phpunit/php-code-coverage.
 *
 * (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 SebastianBergmannCodeCoverageDriver;

use function 
phpversion;
use function 
version_compare;
use 
SebastianBergmannCodeCoverageFilter;
use 
SebastianBergmannCodeCoverageNoCodeCoverageDriverAvailableException;
use 
SebastianBergmannCodeCoverageNoCodeCoverageDriverWithPathCoverageSupportAvailableException;
use 
SebastianBergmannEnvironmentRuntime;

final class 
Selector
{
    
/**
     * @throws NoCodeCoverageDriverAvailableException
     * @throws PcovNotAvailableException
     * @throws PhpdbgNotAvailableException
     * @throws Xdebug2NotEnabledException
     * @throws Xdebug3NotEnabledException
     * @throws XdebugNotAvailableException
     */
    
public function forLineCoverage(Filter $filter): Driver
    
{
        
$runtime = new Runtime;

        if (
$runtime->hasPHPDBGCodeCoverage()) {
            return new 
PhpdbgDriver;
        }

        if (
$runtime->hasPCOV()) {
            return new 
PcovDriver($filter);
        }

        if (
$runtime->hasXdebug()) {
            if (
version_compare(phpversion('xdebug'), '3''>=')) {
                
$driver = new Xdebug3Driver($filter);
            } else {
                
$driver = new Xdebug2Driver($filter);
            }

            
$driver->enableDeadCodeDetection();

            return 
$driver;
        }

        throw new 
NoCodeCoverageDriverAvailableException;
    }

    
/**
     * @throws NoCodeCoverageDriverWithPathCoverageSupportAvailableException
     * @throws Xdebug2NotEnabledException
     * @throws Xdebug3NotEnabledException
     * @throws XdebugNotAvailableException
     */
    
public function forLineAndPathCoverage(Filter $filter): Driver
    
{
        if ((new 
Runtime)->hasXdebug()) {
            if (
version_compare(phpversion('xdebug'), '3''>=')) {
                
$driver = new Xdebug3Driver($filter);
            } else {
                
$driver = new Xdebug2Driver($filter);
            }

            
$driver->enableDeadCodeDetection();
            
$driver->enableBranchAndPathCoverage();

            return 
$driver;
        }

        throw new 
NoCodeCoverageDriverWithPathCoverageSupportAvailableException;
    }
}
Онлайн: 0
Реклама