Вход Регистрация
Файл: vendor/phpunit/php-code-coverage/src/Driver/PcovDriver.php
Строк: 74
<?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 const 
pcovinclusive;
use function 
array_intersect;
use function 
extension_loaded;
use function 
pcovclear;
use function 
pcovcollect;
use function 
pcovstart;
use function 
pcovstop;
use function 
pcovwaiting;
use function 
phpversion;
use 
SebastianBergmannCodeCoverageFilter;
use 
SebastianBergmannCodeCoverageRawCodeCoverageData;

/**
 * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage
 */
final class PcovDriver extends Driver
{
    
/**
     * @var Filter
     */
    
private $filter;

    
/**
     * @throws PcovNotAvailableException
     */
    
public function __construct(Filter $filter)
    {
        if (!
extension_loaded('pcov')) {
            throw new 
PcovNotAvailableException;
        }

        
$this->filter $filter;
    }

    public function 
start(): void
    
{
        
start();
    }

    public function 
stop(): RawCodeCoverageData
    
{
        
stop();

        
$filesToCollectCoverageFor waiting();
        
$collected                 = [];

        if (
$filesToCollectCoverageFor) {
            if (!
$this->filter->isEmpty()) {
                
$filesToCollectCoverageFor array_intersect($filesToCollectCoverageFor$this->filter->files());
            }

            
$collected collect(inclusive$filesToCollectCoverageFor);

            
clear();
        }

        return 
RawCodeCoverageData::fromXdebugWithoutPathCoverage($collected);
    }

    public function 
nameAndVersion(): string
    
{
        return 
'PCOV ' phpversion('pcov');
    }
}
Онлайн: 0
Реклама