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

use function 
array_pop;
use function 
hrtime;

final class 
Timer
{
    
/**
     * @psalm-var list<float>
     */
    
private $startTimes = [];

    public function 
start(): void
    
{
        
$this->startTimes[] = (float) hrtime(true);
    }

    
/**
     * @throws NoActiveTimerException
     */
    
public function stop(): Duration
    
{
        if (empty(
$this->startTimes)) {
            throw new 
NoActiveTimerException(
                
'Timer::start() has to be called before Timer::stop()'
            
);
        }

        return 
Duration::fromNanoseconds((float) hrtime(true) - array_pop($this->startTimes));
    }
}
Онлайн: 0
Реклама