mirror of
https://github.com/linuxserver/Heimdall.git
synced 2025-12-01 20:49:53 +09:00
upgrade to laravel 8.0
This commit is contained in:
committed by
Attila Jozsef Kerekes
parent
43f894b58d
commit
27f58c0866
1
vendor/phpunit/php-timer/.gitattributes
vendored
1
vendor/phpunit/php-timer/.gitattributes
vendored
@@ -1 +0,0 @@
|
||||
*.php diff=php
|
||||
4
vendor/phpunit/php-timer/.gitignore
vendored
4
vendor/phpunit/php-timer/.gitignore
vendored
@@ -1,4 +0,0 @@
|
||||
/.idea
|
||||
/vendor
|
||||
/composer.lock
|
||||
|
||||
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>
|
||||
27
vendor/phpunit/php-timer/.travis.yml
vendored
27
vendor/phpunit/php-timer/.travis.yml
vendored
@@ -1,27 +0,0 @@
|
||||
language: php
|
||||
|
||||
php:
|
||||
- 5.3
|
||||
- 5.4
|
||||
- 5.5
|
||||
- 5.6
|
||||
- 7.0
|
||||
- 7.0snapshot
|
||||
- 7.1
|
||||
- 7.1snapshot
|
||||
- master
|
||||
|
||||
sudo: false
|
||||
|
||||
before_install:
|
||||
- composer self-update
|
||||
- composer clear-cache
|
||||
|
||||
install:
|
||||
- travis_retry composer update --no-interaction --no-ansi --no-progress --no-suggest --optimize-autoloader --prefer-stable
|
||||
|
||||
script:
|
||||
- ./vendor/bin/phpunit
|
||||
|
||||
notifications:
|
||||
email: false
|
||||
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
|
||||
4
vendor/phpunit/php-timer/LICENSE
vendored
4
vendor/phpunit/php-timer/LICENSE
vendored
@@ -1,6 +1,6 @@
|
||||
PHP_Timer
|
||||
phpunit/php-timer
|
||||
|
||||
Copyright (c) 2010-2015, Sebastian Bergmann <sebastian@phpunit.de>.
|
||||
Copyright (c) 2010-2020, Sebastian Bergmann <sebastian@phpunit.de>.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
|
||||
87
vendor/phpunit/php-timer/README.md
vendored
87
vendor/phpunit/php-timer/README.md
vendored
@@ -1,6 +1,7 @@
|
||||
[](https://travis-ci.org/sebastianbergmann/php-timer)
|
||||
# phpunit/php-timer
|
||||
|
||||
# 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.
|
||||
|
||||
@@ -8,38 +9,96 @@ Utility class for timing things, factored out of PHPUnit into a stand-alone comp
|
||||
|
||||
You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/):
|
||||
|
||||
composer require phpunit/php-timer
|
||||
```
|
||||
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
|
||||
```
|
||||
composer require --dev phpunit/php-timer
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### Basic Timing
|
||||
|
||||
```php
|
||||
PHP_Timer::start();
|
||||
require __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
// ...
|
||||
use SebastianBergmann\Timer\Timer;
|
||||
|
||||
$time = PHP_Timer::stop();
|
||||
var_dump($time);
|
||||
$timer = new Timer;
|
||||
|
||||
print PHP_Timer::secondsToTimeString($time);
|
||||
$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:
|
||||
|
||||
double(1.0967254638672E-5)
|
||||
0 ms
|
||||
```
|
||||
string(32) "SebastianBergmann\Timer\Duration"
|
||||
string(9) "00:00.002"
|
||||
float(0.002851062)
|
||||
float(2.851062)
|
||||
float(2851.062)
|
||||
int(2851062)
|
||||
```
|
||||
|
||||
### Resource Consumption Since PHP Startup
|
||||
### Resource Consumption
|
||||
|
||||
#### Explicit duration
|
||||
|
||||
```php
|
||||
print PHP_Timer::resourceUsage();
|
||||
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: 0 ms, Memory: 0.50MB
|
||||
```
|
||||
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
|
||||
```
|
||||
|
||||
16
vendor/phpunit/php-timer/composer.json
vendored
16
vendor/phpunit/php-timer/composer.json
vendored
@@ -10,18 +10,26 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sb@sebastian-bergmann.de",
|
||||
"email": "sebastian@phpunit.de",
|
||||
"role": "lead"
|
||||
}
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/php-timer/issues"
|
||||
},
|
||||
"prefer-stable": true,
|
||||
"require": {
|
||||
"php": "^5.3.3 || ^7.0"
|
||||
"php": ">=7.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
|
||||
"phpunit/phpunit": "^9.3"
|
||||
},
|
||||
"config": {
|
||||
"platform": {
|
||||
"php": "7.3.0"
|
||||
},
|
||||
"optimize-autoloader": true,
|
||||
"sort-packages": true
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
@@ -30,7 +38,7 @@
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0-dev"
|
||||
"dev-master": "5.0-dev"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
19
vendor/phpunit/php-timer/phpunit.xml
vendored
19
vendor/phpunit/php-timer/phpunit.xml
vendored
@@ -1,19 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/6.0/phpunit.xsd"
|
||||
bootstrap="vendor/autoload.php"
|
||||
forceCoversAnnotation="true"
|
||||
beStrictAboutCoversAnnotation="true"
|
||||
beStrictAboutOutputDuringTests="true"
|
||||
beStrictAboutTodoAnnotatedTests="true"
|
||||
verbose="true">
|
||||
<testsuite>
|
||||
<directory suffix="Test.php">tests</directory>
|
||||
</testsuite>
|
||||
|
||||
<filter>
|
||||
<whitelist processUncoveredFilesFromWhitelist="true">
|
||||
<directory suffix=".php">src</directory>
|
||||
</whitelist>
|
||||
</filter>
|
||||
</phpunit>
|
||||
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
|
||||
}
|
||||
}
|
||||
101
vendor/phpunit/php-timer/src/Timer.php
vendored
101
vendor/phpunit/php-timer/src/Timer.php
vendored
@@ -1,105 +1,40 @@
|
||||
<?php
|
||||
<?php declare(strict_types=1);
|
||||
/*
|
||||
* This file is part of the PHP_Timer package.
|
||||
* 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;
|
||||
|
||||
/**
|
||||
* Utility class for timing.
|
||||
*/
|
||||
class PHP_Timer
|
||||
use function array_pop;
|
||||
use function hrtime;
|
||||
|
||||
final class Timer
|
||||
{
|
||||
/**
|
||||
* @var array
|
||||
* @psalm-var list<float>
|
||||
*/
|
||||
private static $times = array(
|
||||
'hour' => 3600000,
|
||||
'minute' => 60000,
|
||||
'second' => 1000
|
||||
);
|
||||
private $startTimes = [];
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
private static $startTimes = array();
|
||||
|
||||
/**
|
||||
* @var float
|
||||
*/
|
||||
public static $requestTime;
|
||||
|
||||
/**
|
||||
* Starts the timer.
|
||||
*/
|
||||
public static function start()
|
||||
public function start(): void
|
||||
{
|
||||
array_push(self::$startTimes, microtime(true));
|
||||
$this->startTimes[] = (float) hrtime(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Stops the timer and returns the elapsed time.
|
||||
*
|
||||
* @return float
|
||||
* @throws NoActiveTimerException
|
||||
*/
|
||||
public static function stop()
|
||||
public function stop(): Duration
|
||||
{
|
||||
return microtime(true) - array_pop(self::$startTimes);
|
||||
}
|
||||
|
||||
/**
|
||||
* Formats the elapsed time as a string.
|
||||
*
|
||||
* @param float $time
|
||||
* @return string
|
||||
*/
|
||||
public static function secondsToTimeString($time)
|
||||
{
|
||||
$ms = round($time * 1000);
|
||||
|
||||
foreach (self::$times as $unit => $value) {
|
||||
if ($ms >= $value) {
|
||||
$time = floor($ms / $value * 100.0) / 100.0;
|
||||
|
||||
return $time . ' ' . ($time == 1 ? $unit : $unit . 's');
|
||||
}
|
||||
if (empty($this->startTimes)) {
|
||||
throw new NoActiveTimerException(
|
||||
'Timer::start() has to be called before Timer::stop()'
|
||||
);
|
||||
}
|
||||
|
||||
return $ms . ' ms';
|
||||
}
|
||||
|
||||
/**
|
||||
* Formats the elapsed time since the start of the request as a string.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function timeSinceStartOfRequest()
|
||||
{
|
||||
return self::secondsToTimeString(microtime(true) - self::$requestTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the resources (time, memory) of the request as a string.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function resourceUsage()
|
||||
{
|
||||
return sprintf(
|
||||
'Time: %s, Memory: %4.2fMB',
|
||||
self::timeSinceStartOfRequest(),
|
||||
memory_get_peak_usage(true) / 1048576
|
||||
);
|
||||
return Duration::fromNanoseconds((float) hrtime(true) - array_pop($this->startTimes));
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($_SERVER['REQUEST_TIME_FLOAT'])) {
|
||||
PHP_Timer::$requestTime = $_SERVER['REQUEST_TIME_FLOAT'];
|
||||
} elseif (isset($_SERVER['REQUEST_TIME'])) {
|
||||
PHP_Timer::$requestTime = $_SERVER['REQUEST_TIME'];
|
||||
} else {
|
||||
PHP_Timer::$requestTime = microtime(true);
|
||||
}
|
||||
|
||||
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
|
||||
{
|
||||
}
|
||||
98
vendor/phpunit/php-timer/tests/TimerTest.php
vendored
98
vendor/phpunit/php-timer/tests/TimerTest.php
vendored
@@ -1,98 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of the PHP_Timer package.
|
||||
*
|
||||
* (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.
|
||||
*/
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class PHP_TimerTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* @covers PHP_Timer::start
|
||||
* @covers PHP_Timer::stop
|
||||
*/
|
||||
public function testStartStop()
|
||||
{
|
||||
$this->assertInternalType('float', PHP_Timer::stop());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers PHP_Timer::secondsToTimeString
|
||||
* @dataProvider secondsProvider
|
||||
*/
|
||||
public function testSecondsToTimeString($string, $seconds)
|
||||
{
|
||||
$this->assertEquals(
|
||||
$string,
|
||||
PHP_Timer::secondsToTimeString($seconds)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers PHP_Timer::timeSinceStartOfRequest
|
||||
*/
|
||||
public function testTimeSinceStartOfRequest()
|
||||
{
|
||||
$this->assertStringMatchesFormat(
|
||||
'%f %s',
|
||||
PHP_Timer::timeSinceStartOfRequest()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @covers PHP_Timer::resourceUsage
|
||||
*/
|
||||
public function testResourceUsage()
|
||||
{
|
||||
$this->assertStringMatchesFormat(
|
||||
'Time: %s, Memory: %fMB',
|
||||
PHP_Timer::resourceUsage()
|
||||
);
|
||||
}
|
||||
|
||||
public function secondsProvider()
|
||||
{
|
||||
return array(
|
||||
array('0 ms', 0),
|
||||
array('1 ms', .001),
|
||||
array('10 ms', .01),
|
||||
array('100 ms', .1),
|
||||
array('999 ms', .999),
|
||||
array('1 second', .9999),
|
||||
array('1 second', 1),
|
||||
array('2 seconds', 2),
|
||||
array('59.9 seconds', 59.9),
|
||||
array('59.99 seconds', 59.99),
|
||||
array('59.99 seconds', 59.999),
|
||||
array('1 minute', 59.9999),
|
||||
array('59 seconds', 59.001),
|
||||
array('59.01 seconds', 59.01),
|
||||
array('1 minute', 60),
|
||||
array('1.01 minutes', 61),
|
||||
array('2 minutes', 120),
|
||||
array('2.01 minutes', 121),
|
||||
array('59.99 minutes', 3599.9),
|
||||
array('59.99 minutes', 3599.99),
|
||||
array('59.99 minutes', 3599.999),
|
||||
array('1 hour', 3599.9999),
|
||||
array('59.98 minutes', 3599.001),
|
||||
array('59.98 minutes', 3599.01),
|
||||
array('1 hour', 3600),
|
||||
array('1 hour', 3601),
|
||||
array('1 hour', 3601.9),
|
||||
array('1 hour', 3601.99),
|
||||
array('1 hour', 3601.999),
|
||||
array('1 hour', 3601.9999),
|
||||
array('1.01 hours', 3659.9999),
|
||||
array('1.01 hours', 3659.001),
|
||||
array('1.01 hours', 3659.01),
|
||||
array('2 hours', 7199.9999),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user