first commit - working
This commit is contained in:
2
vendor/phpunit/php-timer/.psalm/baseline.xml
vendored
Normal file
2
vendor/phpunit/php-timer/.psalm/baseline.xml
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<files psalm-version="4.0.1@b1e2e30026936ef8d5bf6a354d1c3959b6231f44"/>
|
16
vendor/phpunit/php-timer/.psalm/config.xml
vendored
Normal file
16
vendor/phpunit/php-timer/.psalm/config.xml
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0"?>
|
||||
<psalm
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="https://getpsalm.org/schema/config"
|
||||
xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
|
||||
resolveFromConfigFile="false"
|
||||
totallyTyped="true"
|
||||
errorBaseline=".psalm/baseline.xml"
|
||||
>
|
||||
<projectFiles>
|
||||
<directory name="src" />
|
||||
<ignoreFiles>
|
||||
<directory name="vendor" />
|
||||
</ignoreFiles>
|
||||
</projectFiles>
|
||||
</psalm>
|
138
vendor/phpunit/php-timer/ChangeLog.md
vendored
Normal file
138
vendor/phpunit/php-timer/ChangeLog.md
vendored
Normal file
@ -0,0 +1,138 @@
|
||||
# ChangeLog
|
||||
|
||||
All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
|
||||
|
||||
## [5.0.3] - 2020-10-26
|
||||
|
||||
### Fixed
|
||||
|
||||
* `SebastianBergmann\Timer\Exception` now correctly extends `\Throwable`
|
||||
|
||||
## [5.0.2] - 2020-09-28
|
||||
|
||||
### Changed
|
||||
|
||||
* Changed PHP version constraint in `composer.json` from `^7.3 || ^8.0` to `>=7.3`
|
||||
|
||||
## [5.0.1] - 2020-06-26
|
||||
|
||||
### Added
|
||||
|
||||
* This component is now supported on PHP 8
|
||||
|
||||
## [5.0.0] - 2020-06-07
|
||||
|
||||
### Changed
|
||||
|
||||
* Parameter type for `SebastianBergmann\Timer\Duration::fromMicroseconds()` was changed from `int` to `float`
|
||||
* Parameter type for `SebastianBergmann\Timer\Duration::fromNanoseconds()` was changed from `int` to `float`
|
||||
* Return type for `SebastianBergmann\Timer\Duration::asNanoseconds()` was changed from `int` to `float`
|
||||
|
||||
### Fixed
|
||||
|
||||
* [#31](https://github.com/sebastianbergmann/php-timer/issues/31): Type Error on 32-bit systems (where `hrtime()` returns `float` instead of `int`)
|
||||
|
||||
## [4.0.0] - 2020-06-01
|
||||
|
||||
### Added
|
||||
|
||||
* Introduced `Duration` value object for encapsulating a duration with nanosecond granularity
|
||||
* Introduced `ResourceUsageFormatter` object for formatting resource usage with option to explicitly pass a duration (instead of looking at the unreliable `$_SERVER['REQUEST_TIME_FLOAT']` variable)
|
||||
|
||||
### Changed
|
||||
|
||||
* The methods of `Timer` are no longer static
|
||||
* `Timer::stop()` now returns a `Duration` value object
|
||||
|
||||
### Removed
|
||||
|
||||
* Functionality that is now implemented in `Duration` and `ResourceUsageFormatter` has been removed from `Timer`
|
||||
|
||||
## [3.1.4] - 2020-04-20
|
||||
|
||||
### Changed
|
||||
|
||||
* `Timer::timeSinceStartOfRequest()` no longer tries `$_SERVER['REQUEST_TIME']` when `$_SERVER['REQUEST_TIME_FLOAT']` is not available (`$_SERVER['REQUEST_TIME_FLOAT']` was added in PHP 5.4 and this library requires PHP 7.3)
|
||||
* Improved exception messages when `$_SERVER['REQUEST_TIME_FLOAT']` is not set or is not of type `float`
|
||||
|
||||
### Changed
|
||||
|
||||
## [3.1.3] - 2020-04-20
|
||||
|
||||
### Changed
|
||||
|
||||
* `Timer::timeSinceStartOfRequest()` now raises an exception if `$_SERVER['REQUEST_TIME_FLOAT']` does not contain a `float` (or `$_SERVER['REQUEST_TIME']` does not contain an `int`)
|
||||
|
||||
## [3.1.2] - 2020-04-17
|
||||
|
||||
### Changed
|
||||
|
||||
* Improved the fix for [#30](https://github.com/sebastianbergmann/php-timer/issues/30) and restored usage of `hrtime()`
|
||||
|
||||
## [3.1.1] - 2020-04-17
|
||||
|
||||
### Fixed
|
||||
|
||||
* [#30](https://github.com/sebastianbergmann/php-timer/issues/30): Resolution of time returned by `Timer::stop()` is different than before (this reverts using `hrtime()` instead of `microtime()`)
|
||||
|
||||
## [3.1.0] - 2020-04-17
|
||||
|
||||
### Added
|
||||
|
||||
* `Timer::secondsToShortTimeString()` as alternative to `Timer::secondsToTimeString()`
|
||||
|
||||
### Changed
|
||||
|
||||
* `Timer::start()` and `Timer::stop()` now use `hrtime()` (high resolution monotonic timer) instead of `microtime()`
|
||||
* `Timer::timeSinceStartOfRequest()` now uses `Timer::secondsToShortTimeString()` for time formatting
|
||||
* Improved formatting of `Timer::secondsToTimeString()` result
|
||||
|
||||
## [3.0.0] - 2020-02-07
|
||||
|
||||
### Removed
|
||||
|
||||
* This component is no longer supported on PHP 7.1 and PHP 7.2
|
||||
|
||||
## [2.1.2] - 2019-06-07
|
||||
|
||||
### Fixed
|
||||
|
||||
* [#21](https://github.com/sebastianbergmann/php-timer/pull/21): Formatting of memory consumption does not work on 32bit systems
|
||||
|
||||
## [2.1.1] - 2019-02-20
|
||||
|
||||
### Changed
|
||||
|
||||
* Improved formatting of memory consumption for `resourceUsage()`
|
||||
|
||||
## [2.1.0] - 2019-02-20
|
||||
|
||||
### Changed
|
||||
|
||||
* Improved formatting of memory consumption for `resourceUsage()`
|
||||
|
||||
## [2.0.0] - 2018-02-01
|
||||
|
||||
### Changed
|
||||
|
||||
* This component now uses namespaces
|
||||
|
||||
### Removed
|
||||
|
||||
* This component is no longer supported on PHP 5.3, PHP 5.4, PHP 5.5, PHP 5.6, and PHP 7.0
|
||||
|
||||
[5.0.3]: https://github.com/sebastianbergmann/php-timer/compare/5.0.2...5.0.3
|
||||
[5.0.2]: https://github.com/sebastianbergmann/php-timer/compare/5.0.1...5.0.2
|
||||
[5.0.1]: https://github.com/sebastianbergmann/php-timer/compare/5.0.0...5.0.1
|
||||
[5.0.0]: https://github.com/sebastianbergmann/php-timer/compare/4.0.0...5.0.0
|
||||
[4.0.0]: https://github.com/sebastianbergmann/php-timer/compare/3.1.4...4.0.0
|
||||
[3.1.4]: https://github.com/sebastianbergmann/php-timer/compare/3.1.3...3.1.4
|
||||
[3.1.3]: https://github.com/sebastianbergmann/php-timer/compare/3.1.2...3.1.3
|
||||
[3.1.2]: https://github.com/sebastianbergmann/php-timer/compare/3.1.1...3.1.2
|
||||
[3.1.1]: https://github.com/sebastianbergmann/php-timer/compare/3.1.0...3.1.1
|
||||
[3.1.0]: https://github.com/sebastianbergmann/php-timer/compare/3.0.0...3.1.0
|
||||
[3.0.0]: https://github.com/sebastianbergmann/php-timer/compare/2.1.2...3.0.0
|
||||
[2.1.2]: https://github.com/sebastianbergmann/php-timer/compare/2.1.1...2.1.2
|
||||
[2.1.1]: https://github.com/sebastianbergmann/php-timer/compare/2.1.0...2.1.1
|
||||
[2.1.0]: https://github.com/sebastianbergmann/php-timer/compare/2.0.0...2.1.0
|
||||
[2.0.0]: https://github.com/sebastianbergmann/php-timer/compare/1.0.9...2.0.0
|
33
vendor/phpunit/php-timer/LICENSE
vendored
Normal file
33
vendor/phpunit/php-timer/LICENSE
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
phpunit/php-timer
|
||||
|
||||
Copyright (c) 2010-2020, Sebastian Bergmann <sebastian@phpunit.de>.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
|
||||
* Neither the name of Sebastian Bergmann nor the names of his
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
104
vendor/phpunit/php-timer/README.md
vendored
Normal file
104
vendor/phpunit/php-timer/README.md
vendored
Normal file
@ -0,0 +1,104 @@
|
||||
# phpunit/php-timer
|
||||
|
||||
[](https://github.com/sebastianbergmann/php-timer/actions)
|
||||
[](https://shepherd.dev/github/sebastianbergmann/php-timer)
|
||||
|
||||
Utility class for timing things, factored out of PHPUnit into a stand-alone component.
|
||||
|
||||
## Installation
|
||||
|
||||
You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/):
|
||||
|
||||
```
|
||||
composer require phpunit/php-timer
|
||||
```
|
||||
|
||||
If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency:
|
||||
|
||||
```
|
||||
composer require --dev phpunit/php-timer
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### Basic Timing
|
||||
|
||||
```php
|
||||
require __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
use SebastianBergmann\Timer\Timer;
|
||||
|
||||
$timer = new Timer;
|
||||
|
||||
$timer->start();
|
||||
|
||||
foreach (\range(0, 100000) as $i) {
|
||||
// ...
|
||||
}
|
||||
|
||||
$duration = $timer->stop();
|
||||
|
||||
var_dump(get_class($duration));
|
||||
var_dump($duration->asString());
|
||||
var_dump($duration->asSeconds());
|
||||
var_dump($duration->asMilliseconds());
|
||||
var_dump($duration->asMicroseconds());
|
||||
var_dump($duration->asNanoseconds());
|
||||
```
|
||||
|
||||
The code above yields the output below:
|
||||
|
||||
```
|
||||
string(32) "SebastianBergmann\Timer\Duration"
|
||||
string(9) "00:00.002"
|
||||
float(0.002851062)
|
||||
float(2.851062)
|
||||
float(2851.062)
|
||||
int(2851062)
|
||||
```
|
||||
|
||||
### Resource Consumption
|
||||
|
||||
#### Explicit duration
|
||||
|
||||
```php
|
||||
require __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
use SebastianBergmann\Timer\ResourceUsageFormatter;
|
||||
use SebastianBergmann\Timer\Timer;
|
||||
|
||||
$timer = new Timer;
|
||||
$timer->start();
|
||||
|
||||
foreach (\range(0, 100000) as $i) {
|
||||
// ...
|
||||
}
|
||||
|
||||
print (new ResourceUsageFormatter)->resourceUsage($timer->stop());
|
||||
```
|
||||
|
||||
The code above yields the output below:
|
||||
|
||||
```
|
||||
Time: 00:00.002, Memory: 6.00 MB
|
||||
```
|
||||
|
||||
#### Duration since PHP Startup (using unreliable `$_SERVER['REQUEST_TIME_FLOAT']`)
|
||||
|
||||
```php
|
||||
require __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
use SebastianBergmann\Timer\ResourceUsageFormatter;
|
||||
|
||||
foreach (\range(0, 100000) as $i) {
|
||||
// ...
|
||||
}
|
||||
|
||||
print (new ResourceUsageFormatter)->resourceUsageSinceStartOfRequest();
|
||||
```
|
||||
|
||||
The code above yields the output below:
|
||||
|
||||
```
|
||||
Time: 00:00.002, Memory: 6.00 MB
|
||||
```
|
45
vendor/phpunit/php-timer/composer.json
vendored
Normal file
45
vendor/phpunit/php-timer/composer.json
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
{
|
||||
"name": "phpunit/php-timer",
|
||||
"description": "Utility class for timing",
|
||||
"type": "library",
|
||||
"keywords": [
|
||||
"timer"
|
||||
],
|
||||
"homepage": "https://github.com/sebastianbergmann/php-timer/",
|
||||
"license": "BSD-3-Clause",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sebastian@phpunit.de",
|
||||
"role": "lead"
|
||||
}
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/php-timer/issues"
|
||||
},
|
||||
"prefer-stable": true,
|
||||
"require": {
|
||||
"php": ">=7.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^9.3"
|
||||
},
|
||||
"config": {
|
||||
"platform": {
|
||||
"php": "7.3.0"
|
||||
},
|
||||
"optimize-autoloader": true,
|
||||
"sort-packages": true
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"src/"
|
||||
]
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "5.0-dev"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
109
vendor/phpunit/php-timer/src/Duration.php
vendored
Normal file
109
vendor/phpunit/php-timer/src/Duration.php
vendored
Normal file
@ -0,0 +1,109 @@
|
||||
<?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 SebastianBergmann\Timer;
|
||||
|
||||
use function floor;
|
||||
use function sprintf;
|
||||
|
||||
/**
|
||||
* @psalm-immutable
|
||||
*/
|
||||
final class Duration
|
||||
{
|
||||
/**
|
||||
* @var float
|
||||
*/
|
||||
private $nanoseconds;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $hours;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $minutes;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $seconds;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $milliseconds;
|
||||
|
||||
public static function fromMicroseconds(float $microseconds): self
|
||||
{
|
||||
return new self($microseconds * 1000);
|
||||
}
|
||||
|
||||
public static function fromNanoseconds(float $nanoseconds): self
|
||||
{
|
||||
return new self($nanoseconds);
|
||||
}
|
||||
|
||||
private function __construct(float $nanoseconds)
|
||||
{
|
||||
$this->nanoseconds = $nanoseconds;
|
||||
$timeInMilliseconds = $nanoseconds / 1000000;
|
||||
$hours = floor($timeInMilliseconds / 60 / 60 / 1000);
|
||||
$hoursInMilliseconds = $hours * 60 * 60 * 1000;
|
||||
$minutes = floor($timeInMilliseconds / 60 / 1000) % 60;
|
||||
$minutesInMilliseconds = $minutes * 60 * 1000;
|
||||
$seconds = floor(($timeInMilliseconds - $hoursInMilliseconds - $minutesInMilliseconds) / 1000);
|
||||
$secondsInMilliseconds = $seconds * 1000;
|
||||
$milliseconds = $timeInMilliseconds - $hoursInMilliseconds - $minutesInMilliseconds - $secondsInMilliseconds;
|
||||
$this->hours = (int) $hours;
|
||||
$this->minutes = $minutes;
|
||||
$this->seconds = (int) $seconds;
|
||||
$this->milliseconds = (int) $milliseconds;
|
||||
}
|
||||
|
||||
public function asNanoseconds(): float
|
||||
{
|
||||
return $this->nanoseconds;
|
||||
}
|
||||
|
||||
public function asMicroseconds(): float
|
||||
{
|
||||
return $this->nanoseconds / 1000;
|
||||
}
|
||||
|
||||
public function asMilliseconds(): float
|
||||
{
|
||||
return $this->nanoseconds / 1000000;
|
||||
}
|
||||
|
||||
public function asSeconds(): float
|
||||
{
|
||||
return $this->nanoseconds / 1000000000;
|
||||
}
|
||||
|
||||
public function asString(): string
|
||||
{
|
||||
$result = '';
|
||||
|
||||
if ($this->hours > 0) {
|
||||
$result = sprintf('%02d', $this->hours) . ':';
|
||||
}
|
||||
|
||||
$result .= sprintf('%02d', $this->minutes) . ':';
|
||||
$result .= sprintf('%02d', $this->seconds);
|
||||
|
||||
if ($this->milliseconds > 0) {
|
||||
$result .= '.' . sprintf('%03d', $this->milliseconds);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
73
vendor/phpunit/php-timer/src/ResourceUsageFormatter.php
vendored
Normal file
73
vendor/phpunit/php-timer/src/ResourceUsageFormatter.php
vendored
Normal file
@ -0,0 +1,73 @@
|
||||
<?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 SebastianBergmann\Timer;
|
||||
|
||||
use function is_float;
|
||||
use function memory_get_peak_usage;
|
||||
use function microtime;
|
||||
use function sprintf;
|
||||
|
||||
final class ResourceUsageFormatter
|
||||
{
|
||||
/**
|
||||
* @psalm-var array<string,int>
|
||||
*/
|
||||
private const SIZES = [
|
||||
'GB' => 1073741824,
|
||||
'MB' => 1048576,
|
||||
'KB' => 1024,
|
||||
];
|
||||
|
||||
public function resourceUsage(Duration $duration): string
|
||||
{
|
||||
return sprintf(
|
||||
'Time: %s, Memory: %s',
|
||||
$duration->asString(),
|
||||
$this->bytesToString(memory_get_peak_usage(true))
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws TimeSinceStartOfRequestNotAvailableException
|
||||
*/
|
||||
public function resourceUsageSinceStartOfRequest(): string
|
||||
{
|
||||
if (!isset($_SERVER['REQUEST_TIME_FLOAT'])) {
|
||||
throw new TimeSinceStartOfRequestNotAvailableException(
|
||||
'Cannot determine time at which the request started because $_SERVER[\'REQUEST_TIME_FLOAT\'] is not available'
|
||||
);
|
||||
}
|
||||
|
||||
if (!is_float($_SERVER['REQUEST_TIME_FLOAT'])) {
|
||||
throw new TimeSinceStartOfRequestNotAvailableException(
|
||||
'Cannot determine time at which the request started because $_SERVER[\'REQUEST_TIME_FLOAT\'] is not of type float'
|
||||
);
|
||||
}
|
||||
|
||||
return $this->resourceUsage(
|
||||
Duration::fromMicroseconds(
|
||||
(1000000 * (microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']))
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
private function bytesToString(int $bytes): string
|
||||
{
|
||||
foreach (self::SIZES as $unit => $value) {
|
||||
if ($bytes >= $value) {
|
||||
return sprintf('%.2f %s', $bytes >= 1024 ? $bytes / $value : $bytes, $unit);
|
||||
}
|
||||
}
|
||||
|
||||
// @codeCoverageIgnoreStart
|
||||
return $bytes . ' byte' . ($bytes !== 1 ? 's' : '');
|
||||
// @codeCoverageIgnoreEnd
|
||||
}
|
||||
}
|
40
vendor/phpunit/php-timer/src/Timer.php
vendored
Normal file
40
vendor/phpunit/php-timer/src/Timer.php
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
<?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 SebastianBergmann\Timer;
|
||||
|
||||
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));
|
||||
}
|
||||
}
|
16
vendor/phpunit/php-timer/src/exceptions/Exception.php
vendored
Normal file
16
vendor/phpunit/php-timer/src/exceptions/Exception.php
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
<?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 SebastianBergmann\Timer;
|
||||
|
||||
use Throwable;
|
||||
|
||||
interface Exception extends Throwable
|
||||
{
|
||||
}
|
16
vendor/phpunit/php-timer/src/exceptions/NoActiveTimerException.php
vendored
Normal file
16
vendor/phpunit/php-timer/src/exceptions/NoActiveTimerException.php
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
<?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 SebastianBergmann\Timer;
|
||||
|
||||
use LogicException;
|
||||
|
||||
final class NoActiveTimerException extends LogicException implements Exception
|
||||
{
|
||||
}
|
16
vendor/phpunit/php-timer/src/exceptions/TimeSinceStartOfRequestNotAvailableException.php
vendored
Normal file
16
vendor/phpunit/php-timer/src/exceptions/TimeSinceStartOfRequestNotAvailableException.php
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
<?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 SebastianBergmann\Timer;
|
||||
|
||||
use RuntimeException;
|
||||
|
||||
final class TimeSinceStartOfRequestNotAvailableException extends RuntimeException implements Exception
|
||||
{
|
||||
}
|
Reference in New Issue
Block a user