Compare commits
28 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 33a48f47de | |||
| cf5ece0b5f | |||
| db8df612b4 | |||
| 75f4d0b10a | |||
| 7fed1c2a85 | |||
| 28a9e390cc | |||
| a565d2899b | |||
| 58b126ab83 | |||
| e9a6332ad0 | |||
| a79fd519ed | |||
| 04aa9fa019 | |||
| d86ad8c051 | |||
| 6f5cd028b9 | |||
| 3634c5bdfa | |||
|
|
37b4cbce40 | ||
| 54a4d9e4c3 | |||
| bd2a328956 | |||
| bcbf97b406 | |||
| 422fc66137 | |||
| 462d00cb42 | |||
| 96b24f9424 | |||
| d69781a709 | |||
| 4f072d2226 | |||
| 774e553d90 | |||
| d6382960bf | |||
| b26cc82055 | |||
| 42087a64fa | |||
| ab95e1c21b |
49
.github/workflows/ci.yml
vendored
Normal file
49
.github/workflows/ci.yml
vendored
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
name: CI
|
||||||
|
run-name: ${{ github.actor}} runs CI
|
||||||
|
|
||||||
|
on: [push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
ci-tests:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: php-actions/composer@v6
|
||||||
|
env:
|
||||||
|
COMPOSER_ROOT_VERSION: dev-master
|
||||||
|
- name: "Restore result cache"
|
||||||
|
uses: actions/cache/restore@v4
|
||||||
|
with:
|
||||||
|
path: ./tmp
|
||||||
|
key: "result-cache-v1-${{ matrix.php-version }}-${{ github.run_id }}"
|
||||||
|
restore-keys: |
|
||||||
|
result-cache-v1-${{ matrix.php-version }}-
|
||||||
|
- name: PHPStan Static Analysis
|
||||||
|
uses: php-actions/phpstan@v3
|
||||||
|
with:
|
||||||
|
path: src/
|
||||||
|
- name: "Save result cache"
|
||||||
|
uses: actions/cache/save@v4
|
||||||
|
if: always()
|
||||||
|
with:
|
||||||
|
path: ./tmp
|
||||||
|
key: "result-cache-v1-${{ matrix.php-version }}-${{ github.run_id }}"
|
||||||
|
# We need to use phpunit from the self install to get the class paths
|
||||||
|
# Skip auto tests here, there are too many problems with flooding of the AWS API from github
|
||||||
|
- name: PHPunit Tests Prepare
|
||||||
|
env:
|
||||||
|
AWS_GIFT_CARD_ENDPOINT: "${{ secrets.AWS_GIFT_CARD_ENDPOINT }}"
|
||||||
|
AWS_GIFT_CARD_KEY: "${{ secrets.AWS_GIFT_CARD_KEY }}"
|
||||||
|
AWS_GIFT_CARD_SECRET: "${{ secrets.AWS_GIFT_CARD_SECRET }}"
|
||||||
|
AWS_GIFT_CARD_PARTNER_ID: "${{ secrets.AWS_GIFT_CARD_PARTNER_ID }}"
|
||||||
|
AWS_GIFT_CARD_CURRENCY: "${{ secrets.AWS_GIFT_CARD_CURRENCY }}"
|
||||||
|
run: |
|
||||||
|
echo "AWS_GIFT_CARD_ENDPOINT=${AWS_GIFT_CARD_ENDPOINT}" > test/.env;
|
||||||
|
echo "AWS_GIFT_CARD_KEY=${AWS_GIFT_CARD_KEY}" >> test/.env;
|
||||||
|
echo "AWS_GIFT_CARD_SECRET=${AWS_GIFT_CARD_SECRET}" >> test/.env;
|
||||||
|
echo "AWS_GIFT_CARD_PARTNER_ID=${AWS_GIFT_CARD_PARTNER_ID}" >> test/.env;
|
||||||
|
echo "AWS_GIFT_CARD_CURRENCY=${AWS_GIFT_CARD_CURRENCY}" >> test/.env;
|
||||||
|
echo "AWS_DEBUG=1" >> test/.env;
|
||||||
|
- name: PHPunit Tests
|
||||||
|
run: |
|
||||||
|
vendor/bin/phpunit
|
||||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1 +1,3 @@
|
|||||||
|
vendor
|
||||||
.phpunit.result.cache
|
.phpunit.result.cache
|
||||||
|
composer.lock
|
||||||
|
|||||||
117
.phan/config.php
117
.phan/config.php
@@ -26,73 +26,74 @@
|
|||||||
// use Phan\Config;
|
// use Phan\Config;
|
||||||
|
|
||||||
return [
|
return [
|
||||||
// If true, missing properties will be created when
|
"minimum_target_php_version" => "7.4",
|
||||||
// they are first seen. If false, we'll report an
|
// If true, missing properties will be created when
|
||||||
// error message.
|
// they are first seen. If false, we'll report an
|
||||||
"allow_missing_properties" => false,
|
// error message.
|
||||||
|
"allow_missing_properties" => false,
|
||||||
|
|
||||||
// Allow null to be cast as any type and for any
|
// Allow null to be cast as any type and for any
|
||||||
// type to be cast to null.
|
// type to be cast to null.
|
||||||
"null_casts_as_any_type" => false,
|
"null_casts_as_any_type" => false,
|
||||||
|
|
||||||
// Backwards Compatibility Checking
|
// Backwards Compatibility Checking
|
||||||
'backward_compatibility_checks' => true,
|
'backward_compatibility_checks' => true,
|
||||||
|
|
||||||
// Run a quick version of checks that takes less
|
// Run a quick version of checks that takes less
|
||||||
// time
|
// time
|
||||||
"quick_mode" => false,
|
"quick_mode" => false,
|
||||||
|
|
||||||
// Only emit critical issues to start with
|
// Only emit critical issues to start with
|
||||||
// (0 is low severity, 5 is normal severity, 10 is critical)
|
// (0 is low severity, 5 is normal severity, 10 is critical)
|
||||||
"minimum_severity" => 10,
|
"minimum_severity" => 10,
|
||||||
|
|
||||||
// default false for include path check
|
// default false for include path check
|
||||||
"enable_include_path_checks" => true,
|
"enable_include_path_checks" => true,
|
||||||
"include_paths" => [
|
"include_paths" => [
|
||||||
],
|
],
|
||||||
'ignore_undeclared_variables_in_global_scope' => true,
|
'ignore_undeclared_variables_in_global_scope' => true,
|
||||||
|
|
||||||
"file_list" => [
|
"file_list" => [
|
||||||
],
|
],
|
||||||
|
|
||||||
// A list of directories that should be parsed for class and
|
// A list of directories that should be parsed for class and
|
||||||
// method information. After excluding the directories
|
// method information. After excluding the directories
|
||||||
// defined in exclude_analysis_directory_list, the remaining
|
// defined in exclude_analysis_directory_list, the remaining
|
||||||
// files will be statically analyzed for errors.
|
// files will be statically analyzed for errors.
|
||||||
//
|
//
|
||||||
// Thus, both first-party and third-party code being used by
|
// Thus, both first-party and third-party code being used by
|
||||||
// your application should be included in this list.
|
// your application should be included in this list.
|
||||||
'directory_list' => [
|
'directory_list' => [
|
||||||
// Change this to include the folders you wish to analyze
|
// Change this to include the folders you wish to analyze
|
||||||
// (and the folders of their dependencies)
|
// (and the folders of their dependencies)
|
||||||
'.'
|
'src/'
|
||||||
// 'www',
|
// 'www',
|
||||||
// To speed up analysis, we recommend going back later and
|
// To speed up analysis, we recommend going back later and
|
||||||
// limiting this to only the vendor/ subdirectories your
|
// limiting this to only the vendor/ subdirectories your
|
||||||
// project depends on.
|
// project depends on.
|
||||||
// `phan --init` will generate a list of folders for you
|
// `phan --init` will generate a list of folders for you
|
||||||
//'www/vendor',
|
//'www/vendor',
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
||||||
// A list of directories holding code that we want
|
// A list of directories holding code that we want
|
||||||
// to parse, but not analyze
|
// to parse, but not analyze
|
||||||
"exclude_analysis_directory_list" => [
|
"exclude_analysis_directory_list" => [
|
||||||
'vendor',
|
'vendor',
|
||||||
'test',
|
'test',
|
||||||
],
|
],
|
||||||
'exclude_file_list' => [
|
'exclude_file_list' => [
|
||||||
],
|
],
|
||||||
|
|
||||||
// what not to show as problem
|
// what not to show as problem
|
||||||
'suppress_issue_types' => [
|
'suppress_issue_types' => [
|
||||||
// 'PhanUndeclaredMethod',
|
// 'PhanUndeclaredMethod',
|
||||||
'PhanEmptyFile',
|
'PhanEmptyFile',
|
||||||
],
|
],
|
||||||
|
|
||||||
// Override to hardcode existence and types of (non-builtin) globals in the global scope.
|
// Override to hardcode existence and types of (non-builtin) globals in the global scope.
|
||||||
// Class names should be prefixed with `\`.
|
// Class names should be prefixed with `\`.
|
||||||
//
|
//
|
||||||
// (E.g. `['_FOO' => '\FooClass', 'page' => '\PageClass', 'userId' => 'int']`)
|
// (E.g. `['_FOO' => '\FooClass', 'page' => '\PageClass', 'userId' => 'int']`)
|
||||||
'globals_type_map' => [],
|
'globals_type_map' => [],
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ This is a abastract from [https://github.com/kamerk22/AmazonGiftCod](https://git
|
|||||||
|
|
||||||
Amazon Gift Codes On Demand (AGCOD). Integration for Amazon Incentive API.
|
Amazon Gift Codes On Demand (AGCOD). Integration for Amazon Incentive API.
|
||||||
|
|
||||||
|
[General Amazon Incentives Documentation](https://developer.amazon.com/docs/incentives-api/digital-gift-cards.html)
|
||||||
|
|
||||||
## How to install
|
## How to install
|
||||||
|
|
||||||
`composer require gullevek/amazon-incentives`
|
`composer require gullevek/amazon-incentives`
|
||||||
@@ -125,6 +127,11 @@ fif code is C001 curl failed to init
|
|||||||
|
|
||||||
if code is C002 a curl error has happened
|
if code is C002 a curl error has happened
|
||||||
|
|
||||||
|
### J-number
|
||||||
|
|
||||||
|
if a JSON error was encountered during some encoding this error will be found.
|
||||||
|
The number is the json error code.
|
||||||
|
|
||||||
### empty error code
|
### empty error code
|
||||||
|
|
||||||
any other NON amazon error will have only 'message' set if run through decode
|
any other NON amazon error will have only 'message' set if run through decode
|
||||||
|
|||||||
@@ -27,6 +27,8 @@
|
|||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpunit/phpunit": "^9",
|
"phpunit/phpunit": "^9",
|
||||||
"gullevek/dotenv": "dev-master",
|
"gullevek/dotenv": "dev-master",
|
||||||
"dg/bypass-finals": "dev-master"
|
"dg/bypass-finals": "dev-master",
|
||||||
|
"phpstan/phpstan": "2.1.x-dev",
|
||||||
|
"phpstan/phpstan-deprecation-rules": "2.0.x-dev"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
2157
composer.lock
generated
2157
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -1,10 +1,10 @@
|
|||||||
# PHP Stan Config
|
# PHP Stan Config
|
||||||
|
|
||||||
parameters:
|
parameters:
|
||||||
tmpDir: /tmp/phpstan-codeblocks-amazon-incentives
|
tmpDir: %currentWorkingDirectory%/tmp/phpstan-codeblocks-amazon-incentives
|
||||||
level: 8
|
level: 9
|
||||||
paths:
|
paths:
|
||||||
- %currentWorkingDirectory%
|
- %currentWorkingDirectory%/src
|
||||||
excludePaths:
|
excludePaths:
|
||||||
# ignore composer
|
# ignore composer
|
||||||
- vendor
|
- vendor
|
||||||
|
|||||||
@@ -1,9 +1,14 @@
|
|||||||
<phpunit
|
<phpunit
|
||||||
colors="true"
|
colors="true"
|
||||||
verbose="true"
|
verbose="false"
|
||||||
>
|
>
|
||||||
<!-- Below removes final from classes for mock tests -->
|
<!-- Below removes final from classes for mock tests -->
|
||||||
<extensions>
|
<extensions>
|
||||||
<extension class="test\phpUnit\Hook\BypassFinalHook" file="test/phpUnit/Hook/BypassFinalHook.php" />
|
<extension class="test\phpUnit\Hook\BypassFinalHook" file="test/phpUnit/Hook/BypassFinalHook.php" />
|
||||||
</extensions>
|
</extensions>
|
||||||
|
<testsuites>
|
||||||
|
<testsuite name="unit">
|
||||||
|
<directory>test/phpUnit/</directory>
|
||||||
|
</testsuite>
|
||||||
|
</testsuites>
|
||||||
</phpunit>
|
</phpunit>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<psalm
|
<psalm
|
||||||
errorLevel="3"
|
errorLevel="8"
|
||||||
resolveFromConfigFile="true"
|
resolveFromConfigFile="true"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xmlns="https://getpsalm.org/schema/config"
|
xmlns="https://getpsalm.org/schema/config"
|
||||||
|
|||||||
969
src/AWS/AWS.php
969
src/AWS/AWS.php
File diff suppressed because it is too large
Load Diff
@@ -14,158 +14,158 @@ use gullevek\AmazonIncentives\Debug\AmazonDebug;
|
|||||||
|
|
||||||
final class AmazonIncentives
|
final class AmazonIncentives
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @var Config
|
* @var Config
|
||||||
*/
|
*/
|
||||||
private $config;
|
private $config;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AmazonGiftCode constructor.
|
* AmazonGiftCode constructor.
|
||||||
*
|
*
|
||||||
* @param string|null $key Account key
|
* @param string|null $key Account key
|
||||||
* @param string|null $secret Secret key
|
* @param string|null $secret Secret key
|
||||||
* @param string|null $partner Partner ID
|
* @param string|null $partner Partner ID
|
||||||
* @param string|null $endpoint Endpoint URL including https://
|
* @param string|null $endpoint Endpoint URL including https://
|
||||||
* @param string|null $currency Currency type. Eg USD, JPY, etc
|
* @param string|null $currency Currency type. Eg USD, JPY, etc
|
||||||
* @param bool|null $debug Debug flag
|
* @param bool|null $debug Debug flag
|
||||||
*/
|
*/
|
||||||
public function __construct(
|
public function __construct(
|
||||||
string $key = null,
|
?string $key = null,
|
||||||
string $secret = null,
|
?string $secret = null,
|
||||||
string $partner = null,
|
?string $partner = null,
|
||||||
string $endpoint = null,
|
?string $endpoint = null,
|
||||||
string $currency = null,
|
?string $currency = null,
|
||||||
bool $debug = null
|
?bool $debug = null
|
||||||
) {
|
) {
|
||||||
// load AWS settings
|
// load AWS settings
|
||||||
// fail here if settings missing
|
// fail here if settings missing
|
||||||
$this->config = new Config($key, $secret, $partner, $endpoint, $currency, $debug);
|
$this->config = new Config($key, $secret, $partner, $endpoint, $currency, $debug);
|
||||||
// init debug
|
// init debug
|
||||||
AmazonDebug::setDebug($this->config->getDebug());
|
AmazonDebug::setDebug($this->config->getDebug());
|
||||||
}
|
}
|
||||||
|
|
||||||
// *********************************************************************
|
// *********************************************************************
|
||||||
// PRIVATE HELPER METHODS
|
// PRIVATE HELPER METHODS
|
||||||
// *********************************************************************
|
// *********************************************************************
|
||||||
|
|
||||||
// *********************************************************************
|
// *********************************************************************
|
||||||
// PUBLIC METHODS
|
// PUBLIC METHODS
|
||||||
// *********************************************************************
|
// *********************************************************************
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Buy a gift card
|
* Buy a gift card
|
||||||
*
|
*
|
||||||
* @param float $value Amount to purchase a gift card
|
* @param float $value Amount to purchase a gift card
|
||||||
* in currency value
|
* in currency value
|
||||||
* @param string|null $creation_request_id Override automatically created request id
|
* @param string|null $creation_request_id Override automatically created request id
|
||||||
* If not set will create a new one, or
|
* If not set will create a new one, or
|
||||||
* return data for created one
|
* return data for created one
|
||||||
* @return Response\CreateResponse Returns new created response object or
|
* @return Response\CreateResponse Returns new created response object or
|
||||||
* previous created if creation_request_id was used
|
* previous created if creation_request_id was used
|
||||||
*
|
*
|
||||||
* @throws AmazonErrors
|
* @throws AmazonErrors
|
||||||
*/
|
*/
|
||||||
public function buyGiftCard(float $value, string $creation_request_id = null): Response\CreateResponse
|
public function buyGiftCard(float $value, ?string $creation_request_id = null): Response\CreateResponse
|
||||||
{
|
{
|
||||||
return ($this->newAWS())->getCode($value, $creation_request_id);
|
return ($this->newAWS())->getCode($value, $creation_request_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cancel a previous created gift card, if within the time frame
|
* Cancel a previous created gift card, if within the time frame
|
||||||
*
|
*
|
||||||
* @param string $creation_request_id Previous created request id from buyGiftCard
|
* @param string $creation_request_id Previous created request id from buyGiftCard
|
||||||
* @param string $gift_card_id Previous gift card id from buyGiftCard (gcId)
|
* @param string $gift_card_id Previous gift card id from buyGiftCard (gcId)
|
||||||
* @return Response\CancelResponse Returns the cancled request object
|
* @return Response\CancelResponse Returns the cancled request object
|
||||||
*
|
*
|
||||||
* @throws AmazonErrors
|
* @throws AmazonErrors
|
||||||
*/
|
*/
|
||||||
public function cancelGiftCard(string $creation_request_id, string $gift_card_id): Response\CancelResponse
|
public function cancelGiftCard(string $creation_request_id, string $gift_card_id): Response\CancelResponse
|
||||||
{
|
{
|
||||||
return ($this->newAWS())->cancelCode($creation_request_id, $gift_card_id);
|
return ($this->newAWS())->cancelCode($creation_request_id, $gift_card_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the current funds in this account
|
* Gets the current funds in this account
|
||||||
*
|
*
|
||||||
* @return Response\CreateBalanceResponse Returns the account funds object
|
* @return Response\CreateBalanceResponse Returns the account funds object
|
||||||
*
|
*
|
||||||
* @throws AmazonErrors
|
* @throws AmazonErrors
|
||||||
*/
|
*/
|
||||||
public function getAvailableFunds(): Response\CreateBalanceResponse
|
public function getAvailableFunds(): Response\CreateBalanceResponse
|
||||||
{
|
{
|
||||||
return ($this->newAWS())->getBalance();
|
return ($this->newAWS())->getBalance();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AmazonIncentives creates own client and returns it as static object
|
* AmazonIncentives creates own client and returns it as static object
|
||||||
*
|
*
|
||||||
* @param string|null $key Account key
|
* @param string|null $key Account key
|
||||||
* @param string|null $secret Secret key
|
* @param string|null $secret Secret key
|
||||||
* @param string|null $partner Partner ID
|
* @param string|null $partner Partner ID
|
||||||
* @param string|null $endpoint Endpoint URL including https://
|
* @param string|null $endpoint Endpoint URL including https://
|
||||||
* @param string|null $currency Currency type. Eg USD, JPY, etc
|
* @param string|null $currency Currency type. Eg USD, JPY, etc
|
||||||
* @param bool|null $debug Debug flag
|
* @param bool|null $debug Debug flag
|
||||||
* @return AmazonIncentives self class
|
* @return AmazonIncentives self class
|
||||||
*/
|
*/
|
||||||
public static function make(
|
public static function make(
|
||||||
string $key = null,
|
?string $key = null,
|
||||||
string $secret = null,
|
?string $secret = null,
|
||||||
string $partner = null,
|
?string $partner = null,
|
||||||
string $endpoint = null,
|
?string $endpoint = null,
|
||||||
string $currency = null,
|
?string $currency = null,
|
||||||
bool $debug = null
|
?bool $debug = null
|
||||||
): AmazonIncentives {
|
): AmazonIncentives {
|
||||||
return new static($key, $secret, $partner, $endpoint, $currency, $debug);
|
return new static($key, $secret, $partner, $endpoint, $currency, $debug);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wrapper to create new AWS class.
|
* wrapper to create new AWS class.
|
||||||
* used in all buy/cancel/get calss
|
* used in all buy/cancel/get calss
|
||||||
*
|
*
|
||||||
* @return AWS Main AWS worker class
|
* @return AWS Main AWS worker class
|
||||||
*/
|
*/
|
||||||
public function newAWS(): AWS
|
public function newAWS(): AWS
|
||||||
{
|
{
|
||||||
return new AWS($this->config);
|
return new AWS($this->config);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Decodes the Exception message body
|
* Decodes the Exception message body
|
||||||
* Returns an array with code (Amazon error codes), type (Amazon error info)
|
* Returns an array with code (Amazon error codes), type (Amazon error info)
|
||||||
* message (Amazon returned error message string)
|
* message (Amazon returned error message string)
|
||||||
*
|
*
|
||||||
* @param string $message Exception message json string
|
* @param string $message Exception message json string
|
||||||
* @return array<mixed> Decoded with code, type, message fields
|
* @return array<mixed> Decoded with code, type, message fields
|
||||||
*
|
*
|
||||||
* @deprecated use \gullevek\AmazonIncentives\Exceptions\AmazonErrors::decodeExceptionMessage()
|
* @deprecated use \gullevek\AmazonIncentives\Exceptions\AmazonErrors::decodeExceptionMessage()
|
||||||
*/
|
*/
|
||||||
public static function decodeExceptionMessage(string $message): array
|
public static function decodeExceptionMessage(string $message): array
|
||||||
{
|
{
|
||||||
return AmazonErrors::decodeExceptionMessage($message);
|
return AmazonErrors::decodeExceptionMessage($message);
|
||||||
}
|
}
|
||||||
|
|
||||||
// *********************************************************************
|
// *********************************************************************
|
||||||
// PUBLIC TEST METHODS
|
// PUBLIC TEST METHODS
|
||||||
// *********************************************************************
|
// *********************************************************************
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prints out ENV, CONFIG and KEY data
|
* Prints out ENV, CONFIG and KEY data
|
||||||
* This is for debug only, this will print out secrets.
|
* This is for debug only, this will print out secrets.
|
||||||
* Use with care
|
* Use with care
|
||||||
*
|
*
|
||||||
* @return array<mixed>
|
* @return array<mixed>
|
||||||
*/
|
*/
|
||||||
public function checkMe(): array
|
public function checkMe(): array
|
||||||
{
|
{
|
||||||
$data = [];
|
$data = [];
|
||||||
|
|
||||||
$data['ENV'] = $_ENV;
|
$data['ENV'] = $_ENV;
|
||||||
$data['CONFIG'] = $this->config;
|
$data['CONFIG'] = $this->config;
|
||||||
$data['KEY'] = $this->config->getAccessKey();
|
$data['KEY'] = $this->config->getAccessKey();
|
||||||
|
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// __END__
|
// __END__
|
||||||
|
|||||||
@@ -1,119 +1,127 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace gullevek\AmazonIncentives\Client;
|
namespace gullevek\AmazonIncentives\Client;
|
||||||
|
|
||||||
use gullevek\AmazonIncentives\Exceptions\AmazonErrors;
|
use gullevek\AmazonIncentives\Exceptions\AmazonErrors;
|
||||||
use gullevek\AmazonIncentives\Debug\AmazonDebug;
|
use gullevek\AmazonIncentives\Debug\AmazonDebug;
|
||||||
|
use gullevek\AmazonIncentives\Handle\Json;
|
||||||
|
|
||||||
class Client implements ClientInterface
|
class Client implements ClientInterface
|
||||||
{
|
{
|
||||||
/** @var int instead of JsonResponse::HTTP_OK */
|
/** @var int instead of JsonResponse::HTTP_OK */
|
||||||
private const HTTP_OK = 200;
|
private const HTTP_OK = 200;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Makes an request to the target url via curl
|
* Makes an request to the target url via curl
|
||||||
* Returns result as string (json)
|
* Returns result as string (json)
|
||||||
*
|
*
|
||||||
* @param string $url The URL being requested,
|
* @param string $url The URL being requested,
|
||||||
* including domain and protocol
|
* including domain and protocol
|
||||||
* @param array<mixed> $headers Headers to be used in the request
|
* @param array<int,string> $headers Headers to be used in the request
|
||||||
* @param array<mixed>|string $params Can be nested for arrays and hashes
|
* @param array<mixed>|string $params Can be nested for arrays and hashes
|
||||||
* @return string Result as json string
|
* @return string Result as json string
|
||||||
*/
|
*/
|
||||||
public function request(string $url, array $headers, $params): string
|
public function request(string $url, array $headers, $params): string
|
||||||
{
|
{
|
||||||
$handle = curl_init($url);
|
$handle = curl_init($url);
|
||||||
if ($handle === false) {
|
if ($handle === false) {
|
||||||
// throw Error here with all codes
|
// throw Error here with all codes
|
||||||
throw AmazonErrors::getError(
|
throw AmazonErrors::getError(
|
||||||
'FAILURE',
|
'FAILURE',
|
||||||
'C001',
|
'C001',
|
||||||
'CurlInitError',
|
'CurlInitError',
|
||||||
'Failed to init curl with url: ' . $url,
|
'Failed to init curl with url: ' . $url,
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
curl_setopt($handle, CURLOPT_POST, true);
|
curl_setopt($handle, CURLOPT_POST, true);
|
||||||
curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
|
curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
|
||||||
// curl_setopt($handle, CURLOPT_FAILONERROR, true);
|
// curl_setopt($handle, CURLOPT_FAILONERROR, true);
|
||||||
curl_setopt($handle, CURLOPT_POSTFIELDS, $params);
|
curl_setopt($handle, CURLOPT_POSTFIELDS, $params);
|
||||||
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
|
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
|
||||||
$result = curl_exec($handle);
|
$result = curl_exec($handle);
|
||||||
|
|
||||||
if ($result === false) {
|
if ($result === false) {
|
||||||
$err = curl_errno($handle);
|
$err = curl_errno($handle);
|
||||||
$message = curl_error($handle);
|
$message = curl_error($handle);
|
||||||
$this->handleCurlError($url, $err, $message);
|
$this->handleCurlError($url, $err, $message);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (curl_getinfo($handle, CURLINFO_HTTP_CODE) !== self::HTTP_OK) {
|
if (curl_getinfo($handle, CURLINFO_HTTP_CODE) !== self::HTTP_OK) {
|
||||||
$err = curl_errno($handle);
|
$err = curl_errno($handle);
|
||||||
AmazonDebug::writeLog(['CURL_REQUEST_RESULT' => $result]);
|
AmazonDebug::writeLog(['CURL_REQUEST_RESULT' => $result]);
|
||||||
// extract all the error codes from Amazon
|
// extract all the error codes from Amazon
|
||||||
$result_ar = json_decode((string)$result, true);
|
// note we do not care about result errors here, if json decode fails, just set to empty
|
||||||
// if message is 'Rate exceeded', set different error
|
try {
|
||||||
if (($result_ar['message'] ?? '') == 'Rate exceeded') {
|
$result_ar = Json::jsonDecode((string)$result);
|
||||||
$error_status = 'RESEND';
|
} catch (AmazonErrors $e) {
|
||||||
$error_code = 'T001';
|
$result_ar = [];
|
||||||
$error_type = 'RateExceeded';
|
}
|
||||||
$message = $result_ar['message'] ?? 'Rate exceeded';
|
// if message is 'Rate exceeded', set different error
|
||||||
} else {
|
if (($result_ar['message'] ?? '') == 'Rate exceeded') {
|
||||||
// for all other error messages
|
$error_status = 'RESEND';
|
||||||
$error_status = $result_ar['agcodResponse']['status'] ?? 'FAILURE';
|
$error_code = 'T001';
|
||||||
$error_code = $result_ar['errorCode'] ?? 'E999';
|
$error_type = 'RateExceeded';
|
||||||
$error_type = $result_ar['errorType'] ?? 'OtherUnknownError';
|
$message = $result_ar['message'] ?? 'Rate exceeded';
|
||||||
$message = $result_ar['message'] ?? 'Unknown error occured';
|
} else {
|
||||||
}
|
// for all other error messages
|
||||||
// throw Error here with all codes
|
$error_status = $result_ar['agcodResponse']['status'] ?? 'FAILURE';
|
||||||
throw AmazonErrors::getError(
|
$error_code = $result_ar['errorCode'] ?? 'E999';
|
||||||
$error_status,
|
$error_type = $result_ar['errorType'] ?? 'OtherUnknownError';
|
||||||
$error_code,
|
$message = $result_ar['message'] ?? 'Unknown error occured';
|
||||||
$error_type,
|
}
|
||||||
$message,
|
// throw Error here with all codes
|
||||||
$err
|
throw AmazonErrors::getError(
|
||||||
);
|
$error_status,
|
||||||
}
|
$error_code,
|
||||||
return (string)$result;
|
$error_type,
|
||||||
}
|
$message,
|
||||||
|
$err
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return (string)$result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* handles any CURL errors and throws an error with the correct
|
* handles any CURL errors and throws an error with the correct
|
||||||
* error message
|
* error message
|
||||||
*
|
*
|
||||||
* @param string $url The url that was originaly used
|
* @param string $url The url that was originaly used
|
||||||
* @param int $errno Error number from curl handler
|
* @param int $errno Error number from curl handler
|
||||||
* @param string $message The error message string from curl
|
* @param string $message The error message string from curl
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
private function handleCurlError(string $url, int $errno, string $message): void
|
private function handleCurlError(string $url, int $errno, string $message): void
|
||||||
{
|
{
|
||||||
switch ($errno) {
|
switch ($errno) {
|
||||||
case CURLE_COULDNT_CONNECT:
|
case CURLE_COULDNT_CONNECT:
|
||||||
case CURLE_COULDNT_RESOLVE_HOST:
|
case CURLE_COULDNT_RESOLVE_HOST:
|
||||||
case CURLE_OPERATION_TIMEOUTED:
|
case CURLE_OPERATION_TIMEOUTED:
|
||||||
$message = 'Could not connect to AWS (' . $url . '). Please check your '
|
$message = 'Could not connect to AWS (' . $url . '). Please check your '
|
||||||
. 'internet connection and try again. [' . $message . ']';
|
. 'internet connection and try again. [' . $message . ']';
|
||||||
break;
|
break;
|
||||||
case CURLE_SSL_PEER_CERTIFICATE:
|
case CURLE_SSL_PEER_CERTIFICATE:
|
||||||
$message = 'Could not verify AWS SSL certificate. Please make sure '
|
$message = 'Could not verify AWS SSL certificate. Please make sure '
|
||||||
. 'that your network is not intercepting certificates. '
|
. 'that your network is not intercepting certificates. '
|
||||||
. '(Try going to ' . $url . 'in your browser.) '
|
. '(Try going to ' . $url . 'in your browser.) '
|
||||||
. '[' . $message . ']';
|
. '[' . $message . ']';
|
||||||
break;
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
default:
|
default:
|
||||||
$message = 'Unexpected error communicating with AWS: ' . $message;
|
$message = 'Unexpected error communicating with AWS: ' . $message;
|
||||||
}
|
}
|
||||||
|
|
||||||
// throw an error like in the normal reqeust, but set to CURL error
|
// throw an error like in the normal reqeust, but set to CURL error
|
||||||
throw AmazonErrors::getError(
|
throw AmazonErrors::getError(
|
||||||
'FAILURE',
|
'FAILURE',
|
||||||
'C002',
|
'C002',
|
||||||
'CurlError',
|
'CurlError',
|
||||||
$message,
|
$message,
|
||||||
$errno
|
$errno
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// __END__
|
// __END__
|
||||||
|
|||||||
@@ -1,18 +1,20 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace gullevek\AmazonIncentives\Client;
|
namespace gullevek\AmazonIncentives\Client;
|
||||||
|
|
||||||
interface ClientInterface
|
interface ClientInterface
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @param string $url The URL being requested,
|
* @param string $url The URL being requested,
|
||||||
* including domain and protocol
|
* including domain and protocol
|
||||||
* @param array<mixed> $headers Headers to be used in the request
|
* @param array<mixed> $headers Headers to be used in the request
|
||||||
* @param array<mixed>|string $params Can be nested for arrays and hashes
|
* @param array<mixed>|string $params Can be nested for arrays and hashes
|
||||||
*
|
*
|
||||||
* @return String
|
* @return String
|
||||||
*/
|
*/
|
||||||
public function request(string $url, array $headers, $params): string;
|
public function request(string $url, array $headers, $params): string;
|
||||||
}
|
}
|
||||||
|
|
||||||
// __END__
|
// __END__
|
||||||
|
|||||||
@@ -1,213 +1,216 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace gullevek\AmazonIncentives\Config;
|
namespace gullevek\AmazonIncentives\Config;
|
||||||
|
|
||||||
class Config implements ConfigInterface
|
class Config implements ConfigInterface
|
||||||
{
|
{
|
||||||
/** @var string Endpoint URL without https:// */
|
/** @var string Endpoint URL without https:// */
|
||||||
private $endpoint = '';
|
private $endpoint = '';
|
||||||
/** @var string Access Key */
|
/** @var string Access Key */
|
||||||
private $access_key = '';
|
private $access_key = '';
|
||||||
/** @var string Secret Key */
|
/** @var string Secret Key */
|
||||||
private $secret_key = '';
|
private $secret_key = '';
|
||||||
/** @var string Partner ID */
|
/** @var string Partner ID */
|
||||||
private $partner_id = '';
|
private $partner_id = '';
|
||||||
/** @var string Currency type as USD, JPY, etc */
|
/** @var string Currency type as USD, JPY, etc */
|
||||||
private $currency = '';
|
private $currency = '';
|
||||||
/** @var bool Debug flag on or off */
|
/** @var bool Debug flag on or off */
|
||||||
private $debug = false;
|
private $debug = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|null $key Access key
|
* @param string|null $key Access key
|
||||||
* @param string|null $secret Secret Key
|
* @param string|null $secret Secret Key
|
||||||
* @param string|null $partner Partner ID
|
* @param string|null $partner Partner ID
|
||||||
* @param string|null $endpoint Endpoing URL including https://
|
* @param string|null $endpoint Endpoing URL including https://
|
||||||
* @param string|null $currency Currency to use, see valid list on AWS documentation.
|
* @param string|null $currency Currency to use, see valid list on AWS documentation.
|
||||||
* valid names are like USD, JPY, etc
|
* valid names are like USD, JPY, etc
|
||||||
* @param bool|null $debug Debug flag
|
* @param bool|null $debug Debug flag
|
||||||
*/
|
*/
|
||||||
public function __construct(
|
public function __construct(
|
||||||
?string $key,
|
?string $key,
|
||||||
?string $secret,
|
?string $secret,
|
||||||
?string $partner,
|
?string $partner,
|
||||||
?string $endpoint,
|
?string $endpoint,
|
||||||
?string $currency,
|
?string $currency,
|
||||||
?bool $debug
|
?bool $debug
|
||||||
) {
|
) {
|
||||||
/**
|
/**
|
||||||
* @psalm-suppress InvalidScalarArgument
|
* @psalm-suppress InvalidScalarArgument
|
||||||
* @phpstan-ignore-next-line
|
* @phpstan-ignore-next-line
|
||||||
*/
|
*/
|
||||||
$this->setAccessKey(($key) ?: $this->parseEnv('AWS_GIFT_CARD_KEY'));
|
$this->setAccessKey(($key) ?: $this->parseEnv('AWS_GIFT_CARD_KEY'));
|
||||||
/**
|
/**
|
||||||
* @psalm-suppress InvalidScalarArgument
|
* @psalm-suppress InvalidScalarArgument
|
||||||
* @phpstan-ignore-next-line
|
* @phpstan-ignore-next-line
|
||||||
*/
|
*/
|
||||||
$this->setSecret(($secret) ?: $this->parseEnv('AWS_GIFT_CARD_SECRET'));
|
$this->setSecret(($secret) ?: $this->parseEnv('AWS_GIFT_CARD_SECRET'));
|
||||||
/**
|
/**
|
||||||
* @psalm-suppress InvalidScalarArgument
|
* @psalm-suppress InvalidScalarArgument
|
||||||
* @phpstan-ignore-next-line
|
* @phpstan-ignore-next-line
|
||||||
*/
|
*/
|
||||||
$this->setPartner(($partner) ?: $this->parseEnv('AWS_GIFT_CARD_PARTNER_ID'));
|
$this->setPartner(($partner) ?: $this->parseEnv('AWS_GIFT_CARD_PARTNER_ID'));
|
||||||
/**
|
/**
|
||||||
* @psalm-suppress InvalidScalarArgument
|
* @psalm-suppress InvalidScalarArgument
|
||||||
* @phpstan-ignore-next-line
|
* @phpstan-ignore-next-line
|
||||||
*/
|
*/
|
||||||
$this->setEndpoint(($endpoint) ?: $this->parseEnv('AWS_GIFT_CARD_ENDPOINT'));
|
$this->setEndpoint(($endpoint) ?: $this->parseEnv('AWS_GIFT_CARD_ENDPOINT'));
|
||||||
/**
|
/**
|
||||||
* @psalm-suppress InvalidScalarArgument
|
* @psalm-suppress InvalidScalarArgument
|
||||||
* @phpstan-ignore-next-line
|
* @phpstan-ignore-next-line
|
||||||
*/
|
*/
|
||||||
$this->setCurrency(($currency) ?: $this->parseEnv('AWS_GIFT_CARD_CURRENCY'));
|
$this->setCurrency(($currency) ?: $this->parseEnv('AWS_GIFT_CARD_CURRENCY'));
|
||||||
/**
|
/**
|
||||||
* @psalm-suppress InvalidScalarArgument
|
* @psalm-suppress InvalidScalarArgument
|
||||||
* @phpstan-ignore-next-line
|
* @phpstan-ignore-next-line
|
||||||
*/
|
*/
|
||||||
$this->setDebug(($debug) ?: $this->parseEnv('AWS_DEBUG'));
|
$this->setDebug(($debug) ?: $this->parseEnv('AWS_DEBUG'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* string key to search, returns entry from _ENV
|
* string key to search, returns entry from _ENV
|
||||||
* if not matchin key, returns empty
|
* if not matchin key, returns empty
|
||||||
*
|
*
|
||||||
* @param string $key To search in _ENV array
|
* @param string $key To search in _ENV array
|
||||||
* @return string|bool Returns either string or true/false (DEBUG flag)
|
* @return string|bool Returns either string or true/false (DEBUG flag)
|
||||||
*/
|
*/
|
||||||
private function parseEnv(string $key)
|
private function parseEnv(string $key)
|
||||||
{
|
{
|
||||||
$return = '';
|
$return = '';
|
||||||
switch ($key) {
|
switch ($key) {
|
||||||
case 'AWS_DEBUG':
|
case 'AWS_DEBUG':
|
||||||
$return = !empty($_ENV['AWS_DEBUG']) ? true : false;
|
$return = !empty($_ENV['AWS_DEBUG']) ? true : false;
|
||||||
break;
|
break;
|
||||||
case 'AWS_GIFT_CARD_KEY':
|
case 'AWS_GIFT_CARD_KEY':
|
||||||
case 'AWS_GIFT_CARD_SECRET':
|
case 'AWS_GIFT_CARD_SECRET':
|
||||||
case 'AWS_GIFT_CARD_PARTNER_ID':
|
case 'AWS_GIFT_CARD_PARTNER_ID':
|
||||||
case 'AWS_GIFT_CARD_ENDPOINT':
|
case 'AWS_GIFT_CARD_ENDPOINT':
|
||||||
case 'AWS_GIFT_CARD_CURRENCY':
|
case 'AWS_GIFT_CARD_CURRENCY':
|
||||||
$return = $_ENV[$key] ?? '';
|
$return = !empty($_ENV[$key]) && is_string($_ENV[$key]) ?
|
||||||
break;
|
$_ENV[$key] : '';
|
||||||
default:
|
break;
|
||||||
break;
|
default:
|
||||||
}
|
break;
|
||||||
return $return;
|
}
|
||||||
}
|
return $return;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string Returns current set endpoint, without https://
|
* @return string Returns current set endpoint, without https://
|
||||||
*/
|
*/
|
||||||
public function getEndpoint(): string
|
public function getEndpoint(): string
|
||||||
{
|
{
|
||||||
return $this->endpoint;
|
return $this->endpoint;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $endpoint Full endpoint url with https://
|
* @param string $endpoint Full endpoint url with https://
|
||||||
* @return ConfigInterface Class interface (self)
|
* @return ConfigInterface Class interface (self)
|
||||||
*/
|
*/
|
||||||
public function setEndpoint(string $endpoint): ConfigInterface
|
public function setEndpoint(string $endpoint): ConfigInterface
|
||||||
{
|
{
|
||||||
// TODO: check valid endpoint + set region
|
// TODO: check valid endpoint + set region
|
||||||
$this->endpoint = (parse_url($endpoint, PHP_URL_HOST)) ?: '';
|
$this->endpoint = (parse_url($endpoint, PHP_URL_HOST)) ?: '';
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string Current access key
|
* @return string Current access key
|
||||||
*/
|
*/
|
||||||
public function getAccessKey(): string
|
public function getAccessKey(): string
|
||||||
{
|
{
|
||||||
return $this->access_key;
|
return $this->access_key;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $key Access Key to set
|
* @param string $key Access Key to set
|
||||||
* @return ConfigInterface Class interface (self)
|
* @return ConfigInterface Class interface (self)
|
||||||
*/
|
*/
|
||||||
public function setAccessKey(string $key): ConfigInterface
|
public function setAccessKey(string $key): ConfigInterface
|
||||||
{
|
{
|
||||||
$this->access_key = $key;
|
$this->access_key = $key;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string Current secret key
|
* @return string Current secret key
|
||||||
*/
|
*/
|
||||||
public function getSecret(): string
|
public function getSecret(): string
|
||||||
{
|
{
|
||||||
return $this->secret_key;
|
return $this->secret_key;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $secret Secret key to set
|
* @param string $secret Secret key to set
|
||||||
* @return ConfigInterface Class interface (self)
|
* @return ConfigInterface Class interface (self)
|
||||||
*/
|
*/
|
||||||
public function setSecret(string $secret): ConfigInterface
|
public function setSecret(string $secret): ConfigInterface
|
||||||
{
|
{
|
||||||
$this->secret_key = $secret;
|
$this->secret_key = $secret;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string Current set currency
|
* @return string Current set currency
|
||||||
*/
|
*/
|
||||||
public function getCurrency(): string
|
public function getCurrency(): string
|
||||||
{
|
{
|
||||||
return $this->currency;
|
return $this->currency;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $currency Currency to set (eg USD, JPY, etc)
|
* @param string $currency Currency to set (eg USD, JPY, etc)
|
||||||
* @return ConfigInterface Class interface (self)
|
* @return ConfigInterface Class interface (self)
|
||||||
*/
|
*/
|
||||||
public function setCurrency(string $currency): ConfigInterface
|
public function setCurrency(string $currency): ConfigInterface
|
||||||
{
|
{
|
||||||
// TODO: check currency valid + currenc valid for region
|
// TODO: check currency valid + currenc valid for region
|
||||||
$this->currency = $currency;
|
$this->currency = $currency;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string Current set partner id
|
* @return string Current set partner id
|
||||||
*/
|
*/
|
||||||
public function getPartner(): string
|
public function getPartner(): string
|
||||||
{
|
{
|
||||||
return $this->partner_id;
|
return $this->partner_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $partner Partner id to set
|
* @param string $partner Partner id to set
|
||||||
* @return ConfigInterface Class interface (self)
|
* @return ConfigInterface Class interface (self)
|
||||||
*/
|
*/
|
||||||
public function setPartner(string $partner): ConfigInterface
|
public function setPartner(string $partner): ConfigInterface
|
||||||
{
|
{
|
||||||
$this->partner_id = $partner;
|
$this->partner_id = $partner;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return bool Current set debug flag as bool
|
* @return bool Current set debug flag as bool
|
||||||
*/
|
*/
|
||||||
public function getDebug(): bool
|
public function getDebug(): bool
|
||||||
{
|
{
|
||||||
return $this->debug;
|
return $this->debug;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param bool $debug Set debug flag as bool
|
* @param bool $debug Set debug flag as bool
|
||||||
* @return ConfigInterface Class interface (self)
|
* @return ConfigInterface Class interface (self)
|
||||||
*/
|
*/
|
||||||
public function setDebug(bool $debug): ConfigInterface
|
public function setDebug(bool $debug): ConfigInterface
|
||||||
{
|
{
|
||||||
$this->debug = $debug;
|
$this->debug = $debug;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// __END__
|
// __END__
|
||||||
|
|||||||
@@ -1,74 +1,76 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace gullevek\AmazonIncentives\Config;
|
namespace gullevek\AmazonIncentives\Config;
|
||||||
|
|
||||||
interface ConfigInterface
|
interface ConfigInterface
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @return string Returns current set endpoint, without https://
|
* @return string Returns current set endpoint, without https://
|
||||||
*/
|
*/
|
||||||
public function getEndpoint(): string;
|
public function getEndpoint(): string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $endpoint Full endpoint url with https://
|
* @param string $endpoint Full endpoint url with https://
|
||||||
* @return ConfigInterface Class interface (self)
|
* @return ConfigInterface Class interface (self)
|
||||||
*/
|
*/
|
||||||
public function setEndpoint(string $endpoint): ConfigInterface;
|
public function setEndpoint(string $endpoint): ConfigInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string Current access key
|
* @return string Current access key
|
||||||
*/
|
*/
|
||||||
public function getAccessKey(): string;
|
public function getAccessKey(): string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $key Access Key to set
|
* @param string $key Access Key to set
|
||||||
* @return ConfigInterface Class interface (self)
|
* @return ConfigInterface Class interface (self)
|
||||||
*/
|
*/
|
||||||
public function setAccessKey(string $key): ConfigInterface;
|
public function setAccessKey(string $key): ConfigInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string Current secret key
|
* @return string Current secret key
|
||||||
*/
|
*/
|
||||||
public function getSecret(): string;
|
public function getSecret(): string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $secret Secret key to set
|
* @param string $secret Secret key to set
|
||||||
* @return ConfigInterface Class interface (self)
|
* @return ConfigInterface Class interface (self)
|
||||||
*/
|
*/
|
||||||
public function setSecret(string $secret): ConfigInterface;
|
public function setSecret(string $secret): ConfigInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string Current set currency
|
* @return string Current set currency
|
||||||
*/
|
*/
|
||||||
public function getCurrency(): string;
|
public function getCurrency(): string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $currency Currency to set (eg USD, JPY, etc)
|
* @param string $currency Currency to set (eg USD, JPY, etc)
|
||||||
* @return ConfigInterface Class interface (self)
|
* @return ConfigInterface Class interface (self)
|
||||||
*/
|
*/
|
||||||
public function setCurrency(string $currency): ConfigInterface;
|
public function setCurrency(string $currency): ConfigInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string Current set partner id
|
* @return string Current set partner id
|
||||||
*/
|
*/
|
||||||
public function getPartner(): string;
|
public function getPartner(): string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $partner Partner id to set
|
* @param string $partner Partner id to set
|
||||||
* @return ConfigInterface Class interface (self)
|
* @return ConfigInterface Class interface (self)
|
||||||
*/
|
*/
|
||||||
public function setPartner(string $partner): ConfigInterface;
|
public function setPartner(string $partner): ConfigInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return bool Current set debug flag as bool
|
* @return bool Current set debug flag as bool
|
||||||
*/
|
*/
|
||||||
public function getDebug(): bool;
|
public function getDebug(): bool;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param bool $debug Set debug flag as bool
|
* @param bool $debug Set debug flag as bool
|
||||||
* @return ConfigInterface Class interface (self)
|
* @return ConfigInterface Class interface (self)
|
||||||
*/
|
*/
|
||||||
public function setDebug(bool $debug): ConfigInterface;
|
public function setDebug(bool $debug): ConfigInterface;
|
||||||
}
|
}
|
||||||
|
|
||||||
// __END__
|
// __END__
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
// simple write all into an array that we can poll in the return group
|
// simple write all into an array that we can poll in the return group
|
||||||
// to activate AmazonDebug::setDebug(true) must be called once
|
// to activate AmazonDebug::setDebug(true) must be called once
|
||||||
|
|
||||||
@@ -7,103 +9,103 @@ namespace gullevek\AmazonIncentives\Debug;
|
|||||||
|
|
||||||
class AmazonDebug
|
class AmazonDebug
|
||||||
{
|
{
|
||||||
/** @var array<mixed> Log data array log id -> array of log entries */
|
/** @var array<string,array<array<mixed>>> Log data array log id -> array of log entries */
|
||||||
private static $log = [];
|
private static $log = [];
|
||||||
/** @var bool debug flag */
|
/** @var bool debug flag */
|
||||||
private static $debug = false;
|
private static $debug = false;
|
||||||
/** @var string|null Last set internal log array id */
|
/** @var string|null Last set internal log array id */
|
||||||
private static $id = null;
|
private static $id = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* set the ID for current run
|
* set the ID for current run
|
||||||
* if debug is off, nothing will be set and id is null
|
* if debug is off, nothing will be set and id is null
|
||||||
* This is run on setFlag, if debug is true
|
* This is run on setFlag, if debug is true
|
||||||
*
|
*
|
||||||
* @param string|null $id If not set, will default to uniqid() call
|
* @param string|null $id If not set, will default to uniqid() call
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
private static function setId(?string $id = null): void
|
private static function setId(?string $id = null): void
|
||||||
{
|
{
|
||||||
if (self::$debug === false) {
|
if (self::$debug === false) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ($id === null) {
|
if ($id === null) {
|
||||||
$id = uniqid();
|
$id = uniqid();
|
||||||
}
|
}
|
||||||
self::$id = $id;
|
self::$id = $id;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* set the debug flag.
|
* set the debug flag.
|
||||||
* This is automatically run in gullevek\AmazonIncentives\AmazonIncentives::__construct
|
* This is automatically run in gullevek\AmazonIncentives\AmazonIncentives::__construct
|
||||||
* No need to run manuall
|
* No need to run manuall
|
||||||
*
|
*
|
||||||
* @param boolean $debug Can only be True or False
|
* @param boolean $debug Can only be True or False
|
||||||
* @param string|null $id If not set, will default to uniqid() call
|
* @param string|null $id If not set, will default to uniqid() call
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function setDebug(bool $debug, ?string $id = null): void
|
public static function setDebug(bool $debug, ?string $id = null): void
|
||||||
{
|
{
|
||||||
self::$debug = $debug;
|
self::$debug = $debug;
|
||||||
if (self::$debug === false) {
|
if (self::$debug === false) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
self::setId($id);
|
self::setId($id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* returns current debug flag status
|
* returns current debug flag status
|
||||||
*
|
*
|
||||||
* @return boolean True if debug is on, False if debug is off
|
* @return boolean True if debug is on, False if debug is off
|
||||||
*/
|
*/
|
||||||
public static function getDebug(): bool
|
public static function getDebug(): bool
|
||||||
{
|
{
|
||||||
return self::$debug;
|
return self::$debug;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get the current set ID, can return null if debug is off
|
* get the current set ID, can return null if debug is off
|
||||||
*
|
*
|
||||||
* @return string|null Current set ID for this log run
|
* @return string|null Current set ID for this log run
|
||||||
*/
|
*/
|
||||||
public static function getId(): ?string
|
public static function getId(): ?string
|
||||||
{
|
{
|
||||||
return self::$id;
|
return self::$id;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* write a log entry
|
* write a log entry
|
||||||
* Data is as array key -> value
|
* Data is as array key -> value
|
||||||
* Will be pushed as new array entry int log
|
* Will be pushed as new array entry int log
|
||||||
* Main key is the set Id for this run
|
* Main key is the set Id for this run
|
||||||
*
|
*
|
||||||
* @param array<mixed> $data Any array data to store in the log
|
* @param array<mixed> $data Any array data to store in the log
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function writeLog(array $data): void
|
public static function writeLog(array $data): void
|
||||||
{
|
{
|
||||||
if (self::$debug === false) {
|
if (self::$debug === false) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
self::$log[self::getId() ?? ''][] = $data;
|
self::$log[self::getId() ?? ''][] = $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get all logs written since first class run
|
* get all logs written since first class run
|
||||||
* or get all log entries for given ID
|
* or get all log entries for given ID
|
||||||
*
|
*
|
||||||
* @param string|null $id If set returns only this id logs
|
* @param string|null $id If set returns only this id logs
|
||||||
* or empty array if not found
|
* or empty array if not found
|
||||||
* @return array<mixed> Always array, empty if not data or not found
|
* @return array<mixed> Always array, empty if not data or not found
|
||||||
*/
|
*/
|
||||||
public static function getLog(?string $id = null): array
|
public static function getLog(?string $id = null): array
|
||||||
{
|
{
|
||||||
if ($id === null) {
|
if ($id === null) {
|
||||||
return self::$log;
|
return self::$log;
|
||||||
} else {
|
} else {
|
||||||
return self::$log[$id] ?? [];
|
return self::$log[$id] ?? [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// __END__
|
// __END__
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace gullevek\AmazonIncentives\Exceptions;
|
namespace gullevek\AmazonIncentives\Exceptions;
|
||||||
|
|
||||||
use RuntimeException;
|
use RuntimeException;
|
||||||
@@ -7,63 +9,63 @@ use gullevek\AmazonIncentives\Debug\AmazonDebug;
|
|||||||
|
|
||||||
final class AmazonErrors extends RuntimeException
|
final class AmazonErrors extends RuntimeException
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Returns an Runtime exception including a json encoded string with all
|
* Returns an Runtime exception including a json encoded string with all
|
||||||
* parameters including last log id and log
|
* parameters including last log id and log
|
||||||
*
|
*
|
||||||
* @param string $error_status agcodResponse->status from Amazon
|
* @param string $error_status agcodResponse->status from Amazon
|
||||||
* @param string $error_code errorCode from Amazon
|
* @param string $error_code errorCode from Amazon
|
||||||
* @param string $error_type errorType from Amazon
|
* @param string $error_type errorType from Amazon
|
||||||
* @param string $message Message string to ad
|
* @param string $message Message string to ad
|
||||||
* @param int $_error_code Error code to set
|
* @param int $_error_code Error code to set
|
||||||
* @return AmazonErrors Exception Class
|
* @return AmazonErrors Exception Class
|
||||||
*/
|
*/
|
||||||
public static function getError(
|
public static function getError(
|
||||||
string $error_status,
|
string $error_status,
|
||||||
string $error_code,
|
string $error_code,
|
||||||
string $error_type,
|
string $error_type,
|
||||||
string $message,
|
string $message,
|
||||||
int $_error_code
|
int $_error_code
|
||||||
): self {
|
): self {
|
||||||
// NOTE: if xdebug.show_exception_trace is set to 1 this will print ERRORS
|
// NOTE: if xdebug.show_exception_trace is set to 1 this will print ERRORS
|
||||||
return new static(
|
return new static(
|
||||||
(json_encode([
|
(json_encode([
|
||||||
'status' => $error_status,
|
'status' => $error_status,
|
||||||
'code' => $error_code,
|
'code' => $error_code,
|
||||||
'type' => $error_type,
|
'type' => $error_type,
|
||||||
'message' => $message,
|
'message' => $message,
|
||||||
// atach log data if exists
|
// attach log data if exists
|
||||||
'log_id' => AmazonDebug::getId(),
|
'log_id' => AmazonDebug::getId(),
|
||||||
'log' => AmazonDebug::getLog(),
|
'log' => AmazonDebug::getLog(),
|
||||||
])) ?: 'AmazonErrors: json encode problem: ' . $message,
|
])) ?: 'AmazonErrors: json encode problem: ' . $message,
|
||||||
$_error_code
|
$_error_code
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Decodes the Exception message body
|
* Decodes the Exception message body
|
||||||
* Returns an array with code (Amazon error codes), type (Amazon error info)
|
* Returns an array with code (Amazon error codes), type (Amazon error info)
|
||||||
* message (Amazon returned error message string)
|
* message (Amazon returned error message string)
|
||||||
*
|
*
|
||||||
* @param string $message Exception message json string
|
* @param string $message Exception message json string
|
||||||
* @return array<mixed> Decoded with code, type, message fields
|
* @return array<mixed> Decoded with code, type, message fields
|
||||||
*/
|
*/
|
||||||
public static function decodeExceptionMessage(string $message): array
|
public static function decodeExceptionMessage(string $message): array
|
||||||
{
|
{
|
||||||
$message_ar = json_decode($message, true);
|
$message_ar = json_decode($message, true);
|
||||||
// if we have an error, build empty block and only fill message
|
// if we have an error, build empty block and only fill message
|
||||||
if (json_last_error()) {
|
if (json_last_error() || $message_ar === null || !is_array($message_ar)) {
|
||||||
$message_ar = [
|
$message_ar = [
|
||||||
'status' => '',
|
'status' => '',
|
||||||
'code' => '',
|
'code' => '',
|
||||||
'type' => '',
|
'type' => '',
|
||||||
'message' => $message,
|
'message' => $message,
|
||||||
'log_id' => '',
|
'log_id' => '',
|
||||||
'log' => []
|
'log' => []
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
return $message_ar;
|
return $message_ar;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// __END__
|
// __END__
|
||||||
|
|||||||
42
src/Handle/Json.php
Normal file
42
src/Handle/Json.php
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle json conversions
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace gullevek\AmazonIncentives\Handle;
|
||||||
|
|
||||||
|
use gullevek\AmazonIncentives\Exceptions\AmazonErrors;
|
||||||
|
|
||||||
|
class Json
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* decode json string
|
||||||
|
*
|
||||||
|
* @param string $json
|
||||||
|
* @return array<mixed>
|
||||||
|
* @throws AmazonErrors
|
||||||
|
*/
|
||||||
|
public static function jsonDecode(string $json): array
|
||||||
|
{
|
||||||
|
$result = json_decode($json, true);
|
||||||
|
if (
|
||||||
|
($json_last_error = json_last_error()) ||
|
||||||
|
$result === null ||
|
||||||
|
!is_array($result)
|
||||||
|
) {
|
||||||
|
throw AmazonErrors::getError(
|
||||||
|
'FAILURE',
|
||||||
|
'J-' . $json_last_error,
|
||||||
|
'jsonDecoreError',
|
||||||
|
'Failed to decode json data',
|
||||||
|
0
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// __END__
|
||||||
@@ -1,103 +1,105 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace gullevek\AmazonIncentives\Response;
|
namespace gullevek\AmazonIncentives\Response;
|
||||||
|
|
||||||
use gullevek\AmazonIncentives\Debug\AmazonDebug;
|
use gullevek\AmazonIncentives\Debug\AmazonDebug;
|
||||||
|
|
||||||
class CancelResponse
|
class CancelResponse
|
||||||
{
|
{
|
||||||
/** @var string Amazon Gift Card gcId (gift card id). */
|
/** @var string Amazon Gift Card gcId (gift card id). */
|
||||||
protected $id = '';
|
protected $id = '';
|
||||||
/** @var string Amazon Gift Card creationRequestId (creation request id) */
|
/** @var string Amazon Gift Card creationRequestId (creation request id) */
|
||||||
protected $creation_request_id = '';
|
protected $creation_request_id = '';
|
||||||
/** @var string Amazon Gift Card status */
|
/** @var string Amazon Gift Card status */
|
||||||
protected $status = '';
|
protected $status = '';
|
||||||
/** @var array<mixed> Amazon Gift Card Raw JSON */
|
/** @var array<mixed> Amazon Gift Card Raw JSON */
|
||||||
protected $raw_json = [];
|
protected $raw_json = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Response constructor for canceling gitf cards
|
* Response constructor for canceling gitf cards
|
||||||
*
|
*
|
||||||
* @param array<mixed> $json_response JSON response from web request to AWS
|
* @param array<mixed> $json_response JSON response from web request to AWS
|
||||||
*/
|
*/
|
||||||
public function __construct(array $json_response)
|
public function __construct(array $json_response)
|
||||||
{
|
{
|
||||||
$this->raw_json = $json_response;
|
$this->raw_json = $json_response;
|
||||||
$this->parseJsonResponse($json_response);
|
$this->parseJsonResponse($json_response);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get log entry with current set log id
|
* Get log entry with current set log id
|
||||||
*
|
*
|
||||||
* @return array<mixed> Log array
|
* @return array<mixed> Log array
|
||||||
*/
|
*/
|
||||||
public function getLog(): array
|
public function getLog(): array
|
||||||
{
|
{
|
||||||
return AmazonDebug::getLog(AmazonDebug::getId());
|
return AmazonDebug::getLog(AmazonDebug::getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The gift card id as created by the previous get code call
|
* The gift card id as created by the previous get code call
|
||||||
*
|
*
|
||||||
* @return string Gift card id
|
* @return string Gift card id
|
||||||
*/
|
*/
|
||||||
public function getId(): string
|
public function getId(): string
|
||||||
{
|
{
|
||||||
return $this->id;
|
return $this->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creation Request id from original get code call
|
* Creation Request id from original get code call
|
||||||
*
|
*
|
||||||
* @return string Creation request id
|
* @return string Creation request id
|
||||||
*/
|
*/
|
||||||
public function getCreationRequestId(): string
|
public function getCreationRequestId(): string
|
||||||
{
|
{
|
||||||
return $this->creation_request_id;
|
return $this->creation_request_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Request status
|
* Request status
|
||||||
*
|
*
|
||||||
* @return string Request status as string: SUCCESS, FAILURE, RESEND
|
* @return string Request status as string: SUCCESS, FAILURE, RESEND
|
||||||
*/
|
*/
|
||||||
public function getStatus(): string
|
public function getStatus(): string
|
||||||
{
|
{
|
||||||
return $this->status;
|
return $this->status;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the request data as json string. This is a re-encode from decoded
|
* Returns the request data as json string. This is a re-encode from decoded
|
||||||
* makeRequest call
|
* makeRequest call
|
||||||
*
|
*
|
||||||
* @return string JSON encoded string from the return values
|
* @return string JSON encoded string from the return values
|
||||||
*/
|
*/
|
||||||
public function getRawJson(): string
|
public function getRawJson(): string
|
||||||
{
|
{
|
||||||
return (json_encode($this->raw_json)) ?: '';
|
return (json_encode($this->raw_json)) ?: '';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set class variables with response data from makeRequest and return self
|
* Set class variables with response data from makeRequest and return self
|
||||||
*
|
*
|
||||||
* @param array<mixed> $json_response JSON response as array
|
* @param array<mixed> $json_response JSON response as array
|
||||||
* @return CancelResponse Return self object
|
* @return CancelResponse Return self object
|
||||||
*/
|
*/
|
||||||
public function parseJsonResponse(array $json_response): self
|
public function parseJsonResponse(array $json_response): self
|
||||||
{
|
{
|
||||||
if (array_key_exists('gcId', $json_response)) {
|
if (array_key_exists('gcId', $json_response)) {
|
||||||
$this->id = $json_response['gcId'];
|
$this->id = $json_response['gcId'];
|
||||||
}
|
}
|
||||||
if (array_key_exists('creationRequestId', $json_response)) {
|
if (array_key_exists('creationRequestId', $json_response)) {
|
||||||
$this->creation_request_id = $json_response['creationRequestId'];
|
$this->creation_request_id = $json_response['creationRequestId'];
|
||||||
}
|
}
|
||||||
// SUCCESS, FAILURE, RESEND
|
// SUCCESS, FAILURE, RESEND
|
||||||
if (array_key_exists('status', $json_response)) {
|
if (array_key_exists('status', $json_response)) {
|
||||||
$this->status = $json_response['status'];
|
$this->status = $json_response['status'];
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// __END__
|
// __END__
|
||||||
|
|||||||
@@ -1,117 +1,127 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace gullevek\AmazonIncentives\Response;
|
namespace gullevek\AmazonIncentives\Response;
|
||||||
|
|
||||||
use gullevek\AmazonIncentives\Debug\AmazonDebug;
|
use gullevek\AmazonIncentives\Debug\AmazonDebug;
|
||||||
|
|
||||||
class CreateBalanceResponse
|
class CreateBalanceResponse
|
||||||
{
|
{
|
||||||
/** @var string Amazon Gift Card Balance Amount */
|
/** @var float Amazon Gift Card Balance Amount */
|
||||||
protected $amount = '';
|
protected $amount = 0;
|
||||||
/** @var string Amazon Gift Card Balance Currency */
|
/** @var string Amazon Gift Card Balance Currency */
|
||||||
protected $currency = '';
|
protected $currency = '';
|
||||||
/** @var string Amazon Gift Card Balance Status */
|
/** @var string Amazon Gift Card Balance Status */
|
||||||
protected $status = '';
|
protected $status = '';
|
||||||
/** @var string Amazon Gift Card Balance Timestamp */
|
/** @var string Amazon Gift Card Balance Timestamp */
|
||||||
protected $timestamp = '';
|
protected $timestamp = '';
|
||||||
/** @var array<mixed> Amazon Gift Card Raw JSON */
|
/** @var array<mixed> Amazon Gift Card Raw JSON */
|
||||||
protected $raw_json = [];
|
protected $raw_json = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Response constructor for requesting account funds status
|
* Response constructor for requesting account funds status
|
||||||
*
|
*
|
||||||
* @param array<mixed> $json_response JSON response from web request to AWS
|
* @param array<mixed> $json_response JSON response from web request to AWS
|
||||||
*/
|
*/
|
||||||
public function __construct(array $json_response)
|
public function __construct(array $json_response)
|
||||||
{
|
{
|
||||||
$this->raw_json = $json_response;
|
$this->raw_json = $json_response;
|
||||||
$this->parseJsonResponse($json_response);
|
$this->parseJsonResponse($json_response);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get log entry with current set log id
|
* Get log entry with current set log id
|
||||||
*
|
*
|
||||||
* @return array<mixed> Log array
|
* @return array<mixed> Log array
|
||||||
*/
|
*/
|
||||||
public function getLog(): array
|
public function getLog(): array
|
||||||
{
|
{
|
||||||
return AmazonDebug::getLog(AmazonDebug::getId());
|
return AmazonDebug::getLog(AmazonDebug::getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the current available funds amount
|
* Return the current available funds amount
|
||||||
*
|
*
|
||||||
* @return string Funds amount in set currency
|
* @return float Funds amount in set currency
|
||||||
*/
|
*/
|
||||||
public function getAmount(): string
|
public function getAmount(): float
|
||||||
{
|
{
|
||||||
return $this->amount;
|
return $this->amount;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the set currency type
|
* Get the set currency type
|
||||||
*
|
*
|
||||||
* @return string Currency type. Eg USD, JPY, etc
|
* @return string Currency type. Eg USD, JPY, etc
|
||||||
*/
|
*/
|
||||||
public function getCurrency(): string
|
public function getCurrency(): string
|
||||||
{
|
{
|
||||||
return $this->currency;
|
return $this->currency;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get timestamp as set.
|
* Get timestamp as set.
|
||||||
* eg 20220609T061446Z
|
* eg 20220609T061446Z
|
||||||
*
|
*
|
||||||
* @return string Timestamp string. Ymd\THis\Z
|
* @return string Timestamp string. Ymd\THis\Z
|
||||||
*/
|
*/
|
||||||
public function getTimestamp(): string
|
public function getTimestamp(): string
|
||||||
{
|
{
|
||||||
return $this->timestamp;
|
return $this->timestamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Request status
|
* Request status
|
||||||
*
|
*
|
||||||
* @return string Request status as string: SUCCESS, FAILURE, RESEND
|
* @return string Request status as string: SUCCESS, FAILURE, RESEND
|
||||||
*/
|
*/
|
||||||
public function getStatus(): string
|
public function getStatus(): string
|
||||||
{
|
{
|
||||||
return $this->status;
|
return $this->status;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the request data as json string. This is a re-encode from decoded
|
* Returns the request data as json string. This is a re-encode from decoded
|
||||||
* makeRequest call
|
* makeRequest call
|
||||||
*
|
*
|
||||||
* @return string JSON encoded string from the return values
|
* @return string JSON encoded string from the return values
|
||||||
*/
|
*/
|
||||||
public function getRawJson(): string
|
public function getRawJson(): string
|
||||||
{
|
{
|
||||||
return (json_encode($this->raw_json)) ?: '';
|
return (json_encode($this->raw_json)) ?: '';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set class variables with response data from makeRequest and return self
|
* Set class variables with response data from makeRequest and return self
|
||||||
*
|
*
|
||||||
* @param array<mixed> $json_response JSON response as array
|
* @param array<mixed> $json_response JSON response as array
|
||||||
* @return CreateBalanceResponse Return self object
|
* @return CreateBalanceResponse Return self object
|
||||||
*/
|
*/
|
||||||
public function parseJsonResponse(array $json_response): self
|
public function parseJsonResponse(array $json_response): self
|
||||||
{
|
{
|
||||||
if (array_key_exists('amount', $json_response['availableFunds'])) {
|
if (
|
||||||
$this->amount = $json_response['availableFunds']['amount'];
|
is_array($json_response['availableFunds']) &&
|
||||||
}
|
array_key_exists('amount', $json_response['availableFunds']) &&
|
||||||
if (array_key_exists('currencyCode', $json_response['availableFunds'])) {
|
is_numeric($json_response['availableFunds']['amount'])
|
||||||
$this->currency = $json_response['availableFunds']['currencyCode'];
|
) {
|
||||||
}
|
$this->amount = (float)$json_response['availableFunds']['amount'];
|
||||||
// SUCCESS, FAILURE, RESEND
|
}
|
||||||
if (array_key_exists('status', $json_response)) {
|
if (
|
||||||
$this->status = $json_response['status'];
|
is_array($json_response['availableFunds']) &&
|
||||||
}
|
array_key_exists('currencyCode', $json_response['availableFunds']) &&
|
||||||
if (array_key_exists('timestamp', $json_response)) {
|
is_string($json_response['availableFunds']['currencyCode'])
|
||||||
$this->timestamp = $json_response['timestamp'];
|
) {
|
||||||
}
|
$this->currency = $json_response['availableFunds']['currencyCode'];
|
||||||
|
}
|
||||||
|
// SUCCESS, FAILURE, RESEND
|
||||||
|
if (array_key_exists('status', $json_response)) {
|
||||||
|
$this->status = $json_response['status'];
|
||||||
|
}
|
||||||
|
if (array_key_exists('timestamp', $json_response)) {
|
||||||
|
$this->timestamp = $json_response['timestamp'];
|
||||||
|
}
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,182 +1,184 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace gullevek\AmazonIncentives\Response;
|
namespace gullevek\AmazonIncentives\Response;
|
||||||
|
|
||||||
use gullevek\AmazonIncentives\Debug\AmazonDebug;
|
use gullevek\AmazonIncentives\Debug\AmazonDebug;
|
||||||
|
|
||||||
class CreateResponse
|
class CreateResponse
|
||||||
{
|
{
|
||||||
/** @var string Amazon Gift Card gcId */
|
/** @var string Amazon Gift Card gcId */
|
||||||
protected $id = '';
|
protected $id = '';
|
||||||
/** @var string Amazon Gift Card creationRequestId */
|
/** @var string Amazon Gift Card creationRequestId */
|
||||||
protected $creation_request_id = '';
|
protected $creation_request_id = '';
|
||||||
/** @var string Amazon Gift Card gcClaimCode */
|
/** @var string Amazon Gift Card gcClaimCode */
|
||||||
protected $claim_code = '';
|
protected $claim_code = '';
|
||||||
/** @var float Amazon Gift Card amount */
|
/** @var float Amazon Gift Card amount */
|
||||||
protected $value = 0;
|
protected $value = 0;
|
||||||
/** @var string Amazon Gift Card currency */
|
/** @var string Amazon Gift Card currency */
|
||||||
protected $currency = '';
|
protected $currency = '';
|
||||||
/** @var string Amazon Gift Card status */
|
/** @var string Amazon Gift Card status */
|
||||||
protected $status = '';
|
protected $status = '';
|
||||||
/** @var string Amazon Gift Card Expiration Date */
|
/** @var string Amazon Gift Card Expiration Date */
|
||||||
protected $expiration_date = '';
|
protected $expiration_date = '';
|
||||||
/** @var string Amazon Gift Card Expiration Date */
|
/** @var string Amazon Gift Card Expiration Date */
|
||||||
protected $card_status = '';
|
protected $card_status = '';
|
||||||
/** @var array<mixed> Amazon Gift Card Raw JSON as array */
|
/** @var array<mixed> Amazon Gift Card Raw JSON as array */
|
||||||
protected $raw_json = [];
|
protected $raw_json = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Response constructor for creating gift cards
|
* Response constructor for creating gift cards
|
||||||
*
|
*
|
||||||
* @param array<mixed> $json_response JSON response from web request to AWS
|
* @param array<mixed> $json_response JSON response from web request to AWS
|
||||||
*/
|
*/
|
||||||
public function __construct(array $json_response)
|
public function __construct(array $json_response)
|
||||||
{
|
{
|
||||||
$this->raw_json = $json_response;
|
$this->raw_json = $json_response;
|
||||||
$this->parseJsonResponse($json_response);
|
$this->parseJsonResponse($json_response);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get log entry with current set log id
|
* Get log entry with current set log id
|
||||||
*
|
*
|
||||||
* @return array<mixed> Log array
|
* @return array<mixed> Log array
|
||||||
*/
|
*/
|
||||||
public function getLog(): array
|
public function getLog(): array
|
||||||
{
|
{
|
||||||
return AmazonDebug::getLog(AmazonDebug::getId());
|
return AmazonDebug::getLog(AmazonDebug::getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gift Card ID returned from AWS. Can be used in the cancel request
|
* Gift Card ID returned from AWS. Can be used in the cancel request
|
||||||
*
|
*
|
||||||
* @return string Gift card id
|
* @return string Gift card id
|
||||||
*/
|
*/
|
||||||
public function getId(): string
|
public function getId(): string
|
||||||
{
|
{
|
||||||
return $this->id;
|
return $this->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Either the one set with the method parameter, or automatically created
|
* Either the one set with the method parameter, or automatically created
|
||||||
* during get code request
|
* during get code request
|
||||||
*
|
*
|
||||||
* @return string Creation request id
|
* @return string Creation request id
|
||||||
*/
|
*/
|
||||||
public function getCreationRequestId(): string
|
public function getCreationRequestId(): string
|
||||||
{
|
{
|
||||||
return $this->creation_request_id;
|
return $this->creation_request_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The actual gift code, recommended not to be stored anywhere and only shown
|
* The actual gift code, recommended not to be stored anywhere and only shown
|
||||||
* to user
|
* to user
|
||||||
*
|
*
|
||||||
* @return string Gift order claim code on AWS
|
* @return string Gift order claim code on AWS
|
||||||
*/
|
*/
|
||||||
public function getClaimCode(): string
|
public function getClaimCode(): string
|
||||||
{
|
{
|
||||||
return $this->claim_code;
|
return $this->claim_code;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The ordered gift code value in given currency
|
* The ordered gift code value in given currency
|
||||||
*
|
*
|
||||||
* @return float Gift order value in currency
|
* @return float Gift order value in currency
|
||||||
*/
|
*/
|
||||||
public function getValue(): float
|
public function getValue(): float
|
||||||
{
|
{
|
||||||
return $this->value;
|
return $this->value;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The currently set currency
|
* The currently set currency
|
||||||
*
|
*
|
||||||
* @return string Currency type. Eg USD, JPY, etc
|
* @return string Currency type. Eg USD, JPY, etc
|
||||||
*/
|
*/
|
||||||
public function getCurrency(): string
|
public function getCurrency(): string
|
||||||
{
|
{
|
||||||
return $this->currency;
|
return $this->currency;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Expiration date for the ordered gift code.
|
* Expiration date for the ordered gift code.
|
||||||
* eg 20220609T061446Z
|
* eg 20220609T061446Z
|
||||||
*
|
*
|
||||||
* @return string Timestamp until when the gift code is valid. Ymd\THis\Z
|
* @return string Timestamp until when the gift code is valid. Ymd\THis\Z
|
||||||
*/
|
*/
|
||||||
public function getExpirationDate(): string
|
public function getExpirationDate(): string
|
||||||
{
|
{
|
||||||
return $this->expiration_date;
|
return $this->expiration_date;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gift card status. If the same creation request id is sent again and the
|
* Gift card status. If the same creation request id is sent again and the
|
||||||
* gift card got cancled, this is reflected here
|
* gift card got cancled, this is reflected here
|
||||||
*
|
*
|
||||||
* @return string Gift card status
|
* @return string Gift card status
|
||||||
*/
|
*/
|
||||||
public function getCardStatus(): string
|
public function getCardStatus(): string
|
||||||
{
|
{
|
||||||
return $this->card_status;
|
return $this->card_status;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Request status
|
* Request status
|
||||||
*
|
*
|
||||||
* @return string Request status as string: SUCCESS, FAILURE, RESEND
|
* @return string Request status as string: SUCCESS, FAILURE, RESEND
|
||||||
*/
|
*/
|
||||||
public function getStatus(): string
|
public function getStatus(): string
|
||||||
{
|
{
|
||||||
return $this->status;
|
return $this->status;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Returns the request data as json string. This is a re-encode from decoded
|
* @Returns the request data as json string. This is a re-encode from decoded
|
||||||
* makeRequest call
|
* makeRequest call
|
||||||
*
|
*
|
||||||
* @return string JSON encoded string from the return values
|
* @return string JSON encoded string from the return values
|
||||||
*/
|
*/
|
||||||
public function getRawJson(): string
|
public function getRawJson(): string
|
||||||
{
|
{
|
||||||
return (json_encode($this->raw_json)) ?: '';
|
return (json_encode($this->raw_json)) ?: '';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set class variables with response data from makeRequest and return self
|
* Set class variables with response data from makeRequest and return self
|
||||||
*
|
*
|
||||||
* @param array<mixed> $json_response JSON response as array
|
* @param array<mixed> $json_response JSON response as array
|
||||||
* @return CreateResponse Return self object
|
* @return CreateResponse Return self object
|
||||||
*/
|
*/
|
||||||
public function parseJsonResponse(array $json_response): self
|
public function parseJsonResponse(array $json_response): self
|
||||||
{
|
{
|
||||||
if (array_key_exists('gcId', $json_response)) {
|
if (array_key_exists('gcId', $json_response)) {
|
||||||
$this->id = $json_response['gcId'];
|
$this->id = $json_response['gcId'];
|
||||||
}
|
}
|
||||||
if (array_key_exists('creationRequestId', $json_response)) {
|
if (array_key_exists('creationRequestId', $json_response)) {
|
||||||
$this->creation_request_id = $json_response['creationRequestId'];
|
$this->creation_request_id = $json_response['creationRequestId'];
|
||||||
}
|
}
|
||||||
if (array_key_exists('gcClaimCode', $json_response)) {
|
if (array_key_exists('gcClaimCode', $json_response)) {
|
||||||
$this->claim_code = $json_response['gcClaimCode'];
|
$this->claim_code = $json_response['gcClaimCode'];
|
||||||
}
|
}
|
||||||
if (array_key_exists('amount', $json_response['cardInfo']['value'])) {
|
if (array_key_exists('amount', $json_response['cardInfo']['value'])) {
|
||||||
$this->value = $json_response['cardInfo']['value']['amount'];
|
$this->value = $json_response['cardInfo']['value']['amount'];
|
||||||
}
|
}
|
||||||
if (array_key_exists('currencyCode', $json_response['cardInfo']['value'])) {
|
if (array_key_exists('currencyCode', $json_response['cardInfo']['value'])) {
|
||||||
$this->currency = $json_response['cardInfo']['value']['currencyCode'];
|
$this->currency = $json_response['cardInfo']['value']['currencyCode'];
|
||||||
}
|
}
|
||||||
if (array_key_exists('gcExpirationDate', $json_response)) {
|
if (array_key_exists('gcExpirationDate', $json_response)) {
|
||||||
$this->expiration_date = $json_response['gcExpirationDate'];
|
$this->expiration_date = $json_response['gcExpirationDate'];
|
||||||
}
|
}
|
||||||
if (array_key_exists('cardStatus', $json_response['cardInfo'])) {
|
if (array_key_exists('cardStatus', $json_response['cardInfo'])) {
|
||||||
$this->card_status = $json_response['cardInfo']['cardStatus'];
|
$this->card_status = $json_response['cardInfo']['cardStatus'];
|
||||||
}
|
}
|
||||||
// SUCCESS, FAILURE, RESEND
|
// SUCCESS, FAILURE, RESEND
|
||||||
if (array_key_exists('status', $json_response)) {
|
if (array_key_exists('status', $json_response)) {
|
||||||
$this->status = $json_response['status'];
|
$this->status = $json_response['status'];
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// __END__
|
// __END__
|
||||||
|
|||||||
@@ -11,10 +11,10 @@
|
|||||||
*/
|
*/
|
||||||
function writeLog(array $data): string
|
function writeLog(array $data): string
|
||||||
{
|
{
|
||||||
return json_encode([
|
return json_encode([
|
||||||
'date' => date('Y-m-d H:i:s'),
|
'date' => date('Y-m-d H:i:s'),
|
||||||
'log' => $data
|
'log' => $data
|
||||||
]) . "\n";
|
]) . "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -25,7 +25,7 @@ function writeLog(array $data): string
|
|||||||
*/
|
*/
|
||||||
function dateTr(string $date): string
|
function dateTr(string $date): string
|
||||||
{
|
{
|
||||||
return date('Y-m-d H:i:s', (strtotime($date)) ?: null);
|
return date('Y-m-d H:i:s', (strtotime($date)) ?: null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -38,18 +38,18 @@ function dateTr(string $date): string
|
|||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function printException(
|
function printException(
|
||||||
string $call_request,
|
string $call_request,
|
||||||
int $error_code,
|
int $error_code,
|
||||||
array $error,
|
array $error,
|
||||||
bool $debug_print
|
bool $debug_print
|
||||||
): void {
|
): void {
|
||||||
print "AWS: " . $call_request . ": " . $error['status']
|
print "AWS: " . $call_request . ": " . $error['status']
|
||||||
. " [" . $error_code . "]: "
|
. " [" . $error_code . "]: "
|
||||||
. $error['code'] . " | " . $error['type']
|
. $error['code'] . " | " . $error['type']
|
||||||
. " | " . $error['message'];
|
. " | " . $error['message'];
|
||||||
if ($debug_print === true) {
|
if ($debug_print === true) {
|
||||||
print "<pre>" . print_r($error['log'][$error['log_id'] ?? ''] ?? [], true) . "</pre>";
|
print "<pre>" . print_r($error['log'][$error['log_id'] ?? ''] ?? [], true) . "</pre>";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// composer auto loader
|
// composer auto loader
|
||||||
@@ -95,234 +95,234 @@ $mock_debug = !empty($_GET['debug_mock']) ? true : false;
|
|||||||
$mock_wait = 2;
|
$mock_wait = 2;
|
||||||
|
|
||||||
if (empty($_GET)) {
|
if (empty($_GET)) {
|
||||||
print "<b>Use _GET parameters to start tests</b>";
|
print "<b>Use _GET parameters to start tests</b>";
|
||||||
}
|
}
|
||||||
|
|
||||||
// open debug file output
|
// open debug file output
|
||||||
$fp = fopen('log/debug.' . date('YmdHis') . '.log', 'w');
|
$fp = fopen('log/debug.' . date('YmdHis') . '.log', 'w');
|
||||||
if (!is_resource($fp)) {
|
if (!is_resource($fp)) {
|
||||||
die("Cannot open log debug file");
|
die("Cannot open log debug file");
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($run_info_test === true) {
|
if ($run_info_test === true) {
|
||||||
$aws = new AmazonIncentives();
|
$aws = new AmazonIncentives();
|
||||||
$aws_check_me = $aws->checkMe();
|
$aws_check_me = $aws->checkMe();
|
||||||
print "checkMe: <pre>" . print_r($aws_check_me, true) . "</pre>";
|
print "checkMe: <pre>" . print_r($aws_check_me, true) . "</pre>";
|
||||||
fwrite($fp, writeLog($aws_check_me));
|
fwrite($fp, writeLog($aws_check_me));
|
||||||
print "<hr>";
|
print "<hr>";
|
||||||
}
|
}
|
||||||
|
|
||||||
// check balance
|
// check balance
|
||||||
if ($run_fund_test === true) {
|
if ($run_fund_test === true) {
|
||||||
try {
|
try {
|
||||||
$aws_test = AmazonIncentives::make()->getAvailableFunds();
|
$aws_test = AmazonIncentives::make()->getAvailableFunds();
|
||||||
print "AWS: getAvailableFunds: " . $aws_test->getStatus() . ": "
|
print "AWS: getAvailableFunds: " . $aws_test->getStatus() . ": "
|
||||||
. "Amount: " . $aws_test->getAmount() . ", "
|
. "Amount: " . $aws_test->getAmount() . ", "
|
||||||
. "Currency: " . $aws_test->getCurrency() . ", "
|
. "Currency: " . $aws_test->getCurrency() . ", "
|
||||||
. "Timestamp: " . $aws_test->getTimestamp();
|
. "Timestamp: " . $aws_test->getTimestamp();
|
||||||
if ($debug_print === true) {
|
if ($debug_print === true) {
|
||||||
print "<pre>" . print_r($aws_test, true) . "</pre>";
|
print "<pre>" . print_r($aws_test, true) . "</pre>";
|
||||||
}
|
}
|
||||||
fwrite($fp, writeLog((array)$aws_test));
|
fwrite($fp, writeLog((array)$aws_test));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
$error = AmazonErrors::decodeExceptionMessage($e->getMessage());
|
$error = AmazonErrors::decodeExceptionMessage($e->getMessage());
|
||||||
printException('getAvailableFunds', $e->getCode(), $error, $debug_print);
|
printException('getAvailableFunds', $e->getCode(), $error, $debug_print);
|
||||||
fwrite($fp, writeLog($error));
|
fwrite($fp, writeLog($error));
|
||||||
};
|
};
|
||||||
print "<br>";
|
print "<br>";
|
||||||
sleep($debug_wait);
|
sleep($debug_wait);
|
||||||
// print "LOG: <pre>" . print_r($aws_test->getLog(), true) . "</pre><br>";
|
// print "LOG: <pre>" . print_r($aws_test->getLog(), true) . "</pre><br>";
|
||||||
print "<hr>";
|
print "<hr>";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($run_gift_tests === true) {
|
if ($run_gift_tests === true) {
|
||||||
// create card
|
// create card
|
||||||
$value = 1000;
|
$value = 1000;
|
||||||
$creation_request_id = '';
|
$creation_request_id = '';
|
||||||
$gift_card_id = '';
|
$gift_card_id = '';
|
||||||
try {
|
try {
|
||||||
// we must be sure we pass FLOAT there
|
// we must be sure we pass FLOAT there
|
||||||
$aws_test = AmazonIncentives::make()->buyGiftCard((float)$value);
|
$aws_test = AmazonIncentives::make()->buyGiftCard((float)$value);
|
||||||
$creation_request_id = $aws_test->getCreationRequestId();
|
$creation_request_id = $aws_test->getCreationRequestId();
|
||||||
$gift_card_id = $aws_test->getId();
|
$gift_card_id = $aws_test->getId();
|
||||||
$claim_code = $aws_test->getClaimCode();
|
$claim_code = $aws_test->getClaimCode();
|
||||||
$expiration_date = $aws_test->getExpirationDate();
|
$expiration_date = $aws_test->getExpirationDate();
|
||||||
$request_status = $aws_test->getStatus();
|
$request_status = $aws_test->getStatus();
|
||||||
print "AWS: buyGiftCard: " . $request_status . ": "
|
print "AWS: buyGiftCard: " . $request_status . ": "
|
||||||
. "creationRequestId: " . $creation_request_id . ", gcId: " . $gift_card_id . ", "
|
. "creationRequestId: " . $creation_request_id . ", gcId: " . $gift_card_id . ", "
|
||||||
. "EXPIRE DATE: <b>" . dateTr($expiration_date) . "</b>, "
|
. "EXPIRE DATE: <b>" . dateTr($expiration_date) . "</b>, "
|
||||||
. "CLAIM CODE: <b>" . $claim_code . "</b>";
|
. "CLAIM CODE: <b>" . $claim_code . "</b>";
|
||||||
if ($debug_print === true) {
|
if ($debug_print === true) {
|
||||||
print "<pre>" . print_r($aws_test, true) . "</pre>";
|
print "<pre>" . print_r($aws_test, true) . "</pre>";
|
||||||
}
|
}
|
||||||
fwrite($fp, writeLog((array)$aws_test));
|
fwrite($fp, writeLog((array)$aws_test));
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$error = AmazonErrors::decodeExceptionMessage($e->getMessage());
|
$error = AmazonErrors::decodeExceptionMessage($e->getMessage());
|
||||||
printException('buyGiftCard', $e->getCode(), $error, $debug_print);
|
printException('buyGiftCard', $e->getCode(), $error, $debug_print);
|
||||||
fwrite($fp, writeLog($error));
|
fwrite($fp, writeLog($error));
|
||||||
}
|
}
|
||||||
print "<br>";
|
print "<br>";
|
||||||
sleep($debug_wait);
|
sleep($debug_wait);
|
||||||
try {
|
try {
|
||||||
// cancel above created card card
|
// cancel above created card card
|
||||||
$aws_test = AmazonIncentives::make()->cancelGiftCard($creation_request_id, $gift_card_id);
|
$aws_test = AmazonIncentives::make()->cancelGiftCard($creation_request_id, $gift_card_id);
|
||||||
$request_status = $aws_test->getStatus();
|
$request_status = $aws_test->getStatus();
|
||||||
print "AWS: cancelGiftCard: " . $request_status . ": "
|
print "AWS: cancelGiftCard: " . $request_status . ": "
|
||||||
. "creationRequestId: " . $creation_request_id . ", gcId: " . $gift_card_id;
|
. "creationRequestId: " . $creation_request_id . ", gcId: " . $gift_card_id;
|
||||||
if ($debug_print === true) {
|
if ($debug_print === true) {
|
||||||
print "<pre>" . print_r($aws_test, true) . "</pre>";
|
print "<pre>" . print_r($aws_test, true) . "</pre>";
|
||||||
}
|
}
|
||||||
fwrite($fp, writeLog((array)$aws_test));
|
fwrite($fp, writeLog((array)$aws_test));
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$error = AmazonErrors::decodeExceptionMessage($e->getMessage());
|
$error = AmazonErrors::decodeExceptionMessage($e->getMessage());
|
||||||
print "AWS: cancelGiftCard: " . $error['status']
|
print "AWS: cancelGiftCard: " . $error['status']
|
||||||
. " [" . $e->getCode() . "]: "
|
. " [" . $e->getCode() . "]: "
|
||||||
. $error['code'] . " | " . $error['type']
|
. $error['code'] . " | " . $error['type']
|
||||||
. " | " . $error['message'];
|
. " | " . $error['message'];
|
||||||
if ($debug_print === true) {
|
if ($debug_print === true) {
|
||||||
print "<pre>" . print_r($error['log'][$error['log_id'] ?? ''] ?? [], true) . "</pre>";
|
print "<pre>" . print_r($error['log'][$error['log_id'] ?? ''] ?? [], true) . "</pre>";
|
||||||
}
|
}
|
||||||
fwrite($fp, writeLog($error));
|
fwrite($fp, writeLog($error));
|
||||||
}
|
}
|
||||||
print "<br>";
|
print "<br>";
|
||||||
sleep($debug_wait);
|
sleep($debug_wait);
|
||||||
// request same card again and get error
|
// request same card again and get error
|
||||||
try {
|
try {
|
||||||
$aws_test = AmazonIncentives::make()->buyGiftCard((float)$value, $creation_request_id);
|
$aws_test = AmazonIncentives::make()->buyGiftCard((float)$value, $creation_request_id);
|
||||||
$request_status = $aws_test->getStatus();
|
$request_status = $aws_test->getStatus();
|
||||||
// same?
|
// same?
|
||||||
$claim_code = $aws_test->getClaimCode();
|
$claim_code = $aws_test->getClaimCode();
|
||||||
$expiration_date = $aws_test->getExpirationDate();
|
$expiration_date = $aws_test->getExpirationDate();
|
||||||
print "AWS: buyGiftCard: CANCLED SAME CODE AGAIN: " . $request_status . ": "
|
print "AWS: buyGiftCard: CANCLED SAME CODE AGAIN: " . $request_status . ": "
|
||||||
. "creationRequestId: " . $creation_request_id . ", gcId: " . $gift_card_id . ", "
|
. "creationRequestId: " . $creation_request_id . ", gcId: " . $gift_card_id . ", "
|
||||||
. "EXPIRE DATE: <b>" . dateTr($expiration_date) . "</b>, "
|
. "EXPIRE DATE: <b>" . dateTr($expiration_date) . "</b>, "
|
||||||
. "CLAIM CODE: <b>" . $claim_code . "</b>";
|
. "CLAIM CODE: <b>" . $claim_code . "</b>";
|
||||||
if ($debug_print === true) {
|
if ($debug_print === true) {
|
||||||
print "<pre>" . print_r($aws_test, true) . "</pre>";
|
print "<pre>" . print_r($aws_test, true) . "</pre>";
|
||||||
}
|
}
|
||||||
fwrite($fp, writeLog((array)$aws_test));
|
fwrite($fp, writeLog((array)$aws_test));
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$error = AmazonErrors::decodeExceptionMessage($e->getMessage());
|
$error = AmazonErrors::decodeExceptionMessage($e->getMessage());
|
||||||
printException('buyGiftCard', $e->getCode(), $error, $debug_print);
|
printException('buyGiftCard', $e->getCode(), $error, $debug_print);
|
||||||
fwrite($fp, writeLog($error));
|
fwrite($fp, writeLog($error));
|
||||||
}
|
}
|
||||||
print "<br>";
|
print "<br>";
|
||||||
sleep($debug_wait);
|
sleep($debug_wait);
|
||||||
|
|
||||||
// set same request ID twice to get same response test
|
// set same request ID twice to get same response test
|
||||||
try {
|
try {
|
||||||
$aws_test = AmazonIncentives::make()->buyGiftCard((float)$value);
|
$aws_test = AmazonIncentives::make()->buyGiftCard((float)$value);
|
||||||
$creation_request_id = $aws_test->getCreationRequestId();
|
$creation_request_id = $aws_test->getCreationRequestId();
|
||||||
$gift_card_id = $aws_test->getId();
|
$gift_card_id = $aws_test->getId();
|
||||||
$claim_code = $aws_test->getClaimCode();
|
$claim_code = $aws_test->getClaimCode();
|
||||||
$expiration_date = $aws_test->getExpirationDate();
|
$expiration_date = $aws_test->getExpirationDate();
|
||||||
$request_status = $aws_test->getStatus();
|
$request_status = $aws_test->getStatus();
|
||||||
print "AWS: buyGiftCard: CODE A: " . $request_status . ": "
|
print "AWS: buyGiftCard: CODE A: " . $request_status . ": "
|
||||||
. "creationRequestId: " . $creation_request_id . ", gcId: " . $gift_card_id . ", "
|
. "creationRequestId: " . $creation_request_id . ", gcId: " . $gift_card_id . ", "
|
||||||
. "EXPIRE DATE: <b>" . dateTr($expiration_date) . "</b>, "
|
. "EXPIRE DATE: <b>" . dateTr($expiration_date) . "</b>, "
|
||||||
. "CLAIM CODE: <b>" . $claim_code . "</b>";
|
. "CLAIM CODE: <b>" . $claim_code . "</b>";
|
||||||
if ($debug_print === true) {
|
if ($debug_print === true) {
|
||||||
print "<pre>" . print_r($aws_test, true) . "</pre>";
|
print "<pre>" . print_r($aws_test, true) . "</pre>";
|
||||||
}
|
}
|
||||||
fwrite($fp, writeLog((array)$aws_test));
|
fwrite($fp, writeLog((array)$aws_test));
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$error = AmazonErrors::decodeExceptionMessage($e->getMessage());
|
$error = AmazonErrors::decodeExceptionMessage($e->getMessage());
|
||||||
printException('cancelGiftCard', $e->getCode(), $error, $debug_print);
|
printException('cancelGiftCard', $e->getCode(), $error, $debug_print);
|
||||||
fwrite($fp, writeLog($error));
|
fwrite($fp, writeLog($error));
|
||||||
}
|
}
|
||||||
print "<br>";
|
print "<br>";
|
||||||
sleep($debug_wait);
|
sleep($debug_wait);
|
||||||
try {
|
try {
|
||||||
$aws_test = AmazonIncentives::make()->buyGiftCard((float)$value, $creation_request_id);
|
$aws_test = AmazonIncentives::make()->buyGiftCard((float)$value, $creation_request_id);
|
||||||
$request_status = $aws_test->getStatus();
|
$request_status = $aws_test->getStatus();
|
||||||
// same?
|
// same?
|
||||||
$claim_code = $aws_test->getClaimCode();
|
$claim_code = $aws_test->getClaimCode();
|
||||||
$expiration_date = $aws_test->getExpirationDate();
|
$expiration_date = $aws_test->getExpirationDate();
|
||||||
print "AWS: buyGiftCard: SAME CODE A AGAIN: " . $request_status . ": "
|
print "AWS: buyGiftCard: SAME CODE A AGAIN: " . $request_status . ": "
|
||||||
. "creationRequestId: " . $creation_request_id . ", gcId: " . $gift_card_id . ", "
|
. "creationRequestId: " . $creation_request_id . ", gcId: " . $gift_card_id . ", "
|
||||||
. "EXPIRE DATE: <b>" . dateTr($expiration_date) . "</b>, "
|
. "EXPIRE DATE: <b>" . dateTr($expiration_date) . "</b>, "
|
||||||
. "CLAIM CODE: <b>" . $claim_code . "</b>";
|
. "CLAIM CODE: <b>" . $claim_code . "</b>";
|
||||||
if ($debug_print === true) {
|
if ($debug_print === true) {
|
||||||
print "<pre>" . print_r($aws_test, true) . "</pre>";
|
print "<pre>" . print_r($aws_test, true) . "</pre>";
|
||||||
}
|
}
|
||||||
fwrite($fp, writeLog((array)$aws_test));
|
fwrite($fp, writeLog((array)$aws_test));
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$error = AmazonErrors::decodeExceptionMessage($e->getMessage());
|
$error = AmazonErrors::decodeExceptionMessage($e->getMessage());
|
||||||
printException('buyGiftCard', $e->getCode(), $error, $debug_print);
|
printException('buyGiftCard', $e->getCode(), $error, $debug_print);
|
||||||
fwrite($fp, writeLog($error));
|
fwrite($fp, writeLog($error));
|
||||||
}
|
}
|
||||||
print "<br>";
|
print "<br>";
|
||||||
print "<hr>";
|
print "<hr>";
|
||||||
sleep($debug_wait);
|
sleep($debug_wait);
|
||||||
}
|
}
|
||||||
|
|
||||||
// MOCK TEST
|
// MOCK TEST
|
||||||
if ($run_mocks === true) {
|
if ($run_mocks === true) {
|
||||||
$mock_ok = '<span style="color:green;">MOCK OK</span>';
|
$mock_ok = '<span style="color:green;">MOCK OK</span>';
|
||||||
$mock_failure = '<span style="color:red;">MOCK FAILURE</span>';
|
$mock_failure = '<span style="color:red;">MOCK FAILURE</span>';
|
||||||
$mock_value = 500;
|
$mock_value = 500;
|
||||||
$mock = [];
|
$mock = [];
|
||||||
|
|
||||||
$mock['F0000'] = [ 'ret' => '', 'st' => 'SUCCESS']; // success mock
|
$mock['F0000'] = [ 'ret' => '', 'st' => 'SUCCESS']; // success mock
|
||||||
$mock['F1000'] = [ 'ret' => 'F100', 'st' => 'FAILURE']; // SimpleAmountIsNull, etc
|
$mock['F1000'] = [ 'ret' => 'F100', 'st' => 'FAILURE']; // SimpleAmountIsNull, etc
|
||||||
$mock['F2003'] = [ 'ret' => 'F200', 'st' => 'FAILURE']; // InvalidAmountInput
|
$mock['F2003'] = [ 'ret' => 'F200', 'st' => 'FAILURE']; // InvalidAmountInput
|
||||||
$mock['F2004'] = [ 'ret' => 'F200', 'st' => 'FAILURE']; // InvalidAmountValue
|
$mock['F2004'] = [ 'ret' => 'F200', 'st' => 'FAILURE']; // InvalidAmountValue
|
||||||
$mock['F2005'] = [ 'ret' => 'F200', 'st' => 'FAILURE']; // InvalidCurrencyCodeInput
|
$mock['F2005'] = [ 'ret' => 'F200', 'st' => 'FAILURE']; // InvalidCurrencyCodeInput
|
||||||
$mock['F2010'] = [ 'ret' => 'F200', 'st' => 'FAILURE']; // CardActivatedWithDifferentRequestId
|
$mock['F2010'] = [ 'ret' => 'F200', 'st' => 'FAILURE']; // CardActivatedWithDifferentRequestId
|
||||||
$mock['F2015'] = [ 'ret' => 'F200', 'st' => 'FAILURE']; // MaxAmountExceeded
|
$mock['F2015'] = [ 'ret' => 'F200', 'st' => 'FAILURE']; // MaxAmountExceeded
|
||||||
$mock['F2016'] = [ 'ret' => 'F200', 'st' => 'FAILURE']; // CurrencyCodeMismatch
|
$mock['F2016'] = [ 'ret' => 'F200', 'st' => 'FAILURE']; // CurrencyCodeMismatch
|
||||||
$mock['F2017'] = [ 'ret' => 'F200', 'st' => 'FAILURE']; // FractionalAmountNotAllowed
|
$mock['F2017'] = [ 'ret' => 'F200', 'st' => 'FAILURE']; // FractionalAmountNotAllowed
|
||||||
$mock['F2047'] = [ 'ret' => 'F200', 'st' => 'FAILURE']; // CancelRequestArrivedAfterTimeLimit
|
$mock['F2047'] = [ 'ret' => 'F200', 'st' => 'FAILURE']; // CancelRequestArrivedAfterTimeLimit
|
||||||
$mock['F3003'] = [ 'ret' => 'F300', 'st' => 'FAILURE']; // InsufficientFunds
|
$mock['F3003'] = [ 'ret' => 'F300', 'st' => 'FAILURE']; // InsufficientFunds
|
||||||
$mock['F3005'] = [ 'ret' => 'F300', 'st' => 'FAILURE']; // AccountHasProblems
|
$mock['F3005'] = [ 'ret' => 'F300', 'st' => 'FAILURE']; // AccountHasProblems
|
||||||
$mock['F3010'] = [ 'ret' => 'F300', 'st' => 'FAILURE']; // CustomerSurpassedDailyVelocityLimit
|
$mock['F3010'] = [ 'ret' => 'F300', 'st' => 'FAILURE']; // CustomerSurpassedDailyVelocityLimit
|
||||||
$mock['F4000'] = [ 'ret' => 'F400', 'st' => 'RESEND']; // SystemTemporarilyUnavailable
|
$mock['F4000'] = [ 'ret' => 'F400', 'st' => 'RESEND']; // SystemTemporarilyUnavailable
|
||||||
$mock['F5000'] = [ 'ret' => 'F500', 'st' => 'FAILURE']; // UnknownError
|
$mock['F5000'] = [ 'ret' => 'F500', 'st' => 'FAILURE']; // UnknownError
|
||||||
|
|
||||||
foreach ($mock as $creation_id => $mock_return) {
|
foreach ($mock as $creation_id => $mock_return) {
|
||||||
print "<b>TS: " . microtime() . "</b>: ";
|
print "<b>TS: " . microtime() . "</b>: ";
|
||||||
try {
|
try {
|
||||||
$aws_test = AmazonIncentives::make()->buyGiftCard((float)$mock_value, $creation_id);
|
$aws_test = AmazonIncentives::make()->buyGiftCard((float)$mock_value, $creation_id);
|
||||||
$creation_request_id = $aws_test->getCreationRequestId();
|
$creation_request_id = $aws_test->getCreationRequestId();
|
||||||
$gift_card_id = $aws_test->getId();
|
$gift_card_id = $aws_test->getId();
|
||||||
$claim_code = $aws_test->getClaimCode();
|
$claim_code = $aws_test->getClaimCode();
|
||||||
$request_status = $aws_test->getStatus();
|
$request_status = $aws_test->getStatus();
|
||||||
print "AWS: MOCK: " . $creation_id . ": buyGiftCard: <b>" . $request_status . "</b>: "
|
print "AWS: MOCK: " . $creation_id . ": buyGiftCard: <b>" . $request_status . "</b>: "
|
||||||
. "creationRequestId: " . $creation_request_id . ", gcId: " . $gift_card_id . ", "
|
. "creationRequestId: " . $creation_request_id . ", gcId: " . $gift_card_id . ", "
|
||||||
. "CLAIM CODE: <b>" . $claim_code . "</b>: ";
|
. "CLAIM CODE: <b>" . $claim_code . "</b>: ";
|
||||||
if ($mock_return['st'] == $request_status) {
|
if ($mock_return['st'] == $request_status) {
|
||||||
print $mock_ok;
|
print $mock_ok;
|
||||||
} else {
|
} else {
|
||||||
print $mock_failure;
|
print $mock_failure;
|
||||||
}
|
}
|
||||||
if ($mock_debug === true) {
|
if ($mock_debug === true) {
|
||||||
print "<pre>" . print_r($aws_test, true) . "</pre>";
|
print "<pre>" . print_r($aws_test, true) . "</pre>";
|
||||||
}
|
}
|
||||||
fwrite($fp, writeLog((array)$aws_test));
|
fwrite($fp, writeLog((array)$aws_test));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
$error = AmazonErrors::decodeExceptionMessage($e->getMessage());
|
$error = AmazonErrors::decodeExceptionMessage($e->getMessage());
|
||||||
print "AWS: MOCK: " . $creation_id . ": buyGiftCard: " . $error['status']
|
print "AWS: MOCK: " . $creation_id . ": buyGiftCard: " . $error['status']
|
||||||
. " [" . $e->getCode() . "]: "
|
. " [" . $e->getCode() . "]: "
|
||||||
. $error['code'] . " | " . $error['type']
|
. $error['code'] . " | " . $error['type']
|
||||||
. " | " . $error['message'] . ": ";
|
. " | " . $error['message'] . ": ";
|
||||||
if (
|
if (
|
||||||
$mock_return['ret'] == $error['code'] &&
|
$mock_return['ret'] == $error['code'] &&
|
||||||
$mock_return['st'] == $error['status']
|
$mock_return['st'] == $error['status']
|
||||||
) {
|
) {
|
||||||
print $mock_ok;
|
print $mock_ok;
|
||||||
} else {
|
} else {
|
||||||
print $mock_failure;
|
print $mock_failure;
|
||||||
}
|
}
|
||||||
if ($mock_debug === true) {
|
if ($mock_debug === true) {
|
||||||
print "<pre>" . print_r($error['log'][$error['log_id'] ?? ''] ?? [], true) . "</pre>";
|
print "<pre>" . print_r($error['log'][$error['log_id'] ?? ''] ?? [], true) . "</pre>";
|
||||||
}
|
}
|
||||||
fwrite($fp, writeLog($error));
|
fwrite($fp, writeLog($error));
|
||||||
}
|
}
|
||||||
print "<br>";
|
print "<br>";
|
||||||
// Waiting a moment, so we don't flood
|
// Waiting a moment, so we don't flood
|
||||||
sleep($mock_wait);
|
sleep($mock_wait);
|
||||||
}
|
}
|
||||||
print "<hr>";
|
print "<hr>";
|
||||||
}
|
}
|
||||||
|
|
||||||
fclose($fp);
|
fclose($fp);
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -12,10 +12,10 @@ use PHPUnit\Runner\BeforeFirstTestHook;
|
|||||||
// only works if it is the FIRST load and not before EACH test
|
// only works if it is the FIRST load and not before EACH test
|
||||||
final class BypassFinalHook implements BeforeFirstTestHook
|
final class BypassFinalHook implements BeforeFirstTestHook
|
||||||
{
|
{
|
||||||
public function executeBeforeFirstTest(): void
|
public function executeBeforeFirstTest(): void
|
||||||
{
|
{
|
||||||
BypassFinals::enable();
|
BypassFinals::enable();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// __END__
|
// __END__
|
||||||
|
|||||||
2
tmp/.gitignore
vendored
Normal file
2
tmp/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
*
|
||||||
|
!.gitignore
|
||||||
7
vendor/autoload.php
vendored
7
vendor/autoload.php
vendored
@@ -1,7 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// autoload.php @generated by Composer
|
|
||||||
|
|
||||||
require_once __DIR__ . '/composer/autoload_real.php';
|
|
||||||
|
|
||||||
return ComposerAutoloaderInit0c8f6bec90a6d60040a922f19a1f0e64::getLoader();
|
|
||||||
1
vendor/bin/php-parse
vendored
1
vendor/bin/php-parse
vendored
@@ -1 +0,0 @@
|
|||||||
../nikic/php-parser/bin/php-parse
|
|
||||||
1
vendor/bin/phpunit
vendored
1
vendor/bin/phpunit
vendored
@@ -1 +0,0 @@
|
|||||||
../phpunit/phpunit/phpunit
|
|
||||||
572
vendor/composer/ClassLoader.php
vendored
572
vendor/composer/ClassLoader.php
vendored
@@ -1,572 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This file is part of Composer.
|
|
||||||
*
|
|
||||||
* (c) Nils Adermann <naderman@naderman.de>
|
|
||||||
* Jordi Boggiano <j.boggiano@seld.be>
|
|
||||||
*
|
|
||||||
* For the full copyright and license information, please view the LICENSE
|
|
||||||
* file that was distributed with this source code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Composer\Autoload;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
|
|
||||||
*
|
|
||||||
* $loader = new \Composer\Autoload\ClassLoader();
|
|
||||||
*
|
|
||||||
* // register classes with namespaces
|
|
||||||
* $loader->add('Symfony\Component', __DIR__.'/component');
|
|
||||||
* $loader->add('Symfony', __DIR__.'/framework');
|
|
||||||
*
|
|
||||||
* // activate the autoloader
|
|
||||||
* $loader->register();
|
|
||||||
*
|
|
||||||
* // to enable searching the include path (eg. for PEAR packages)
|
|
||||||
* $loader->setUseIncludePath(true);
|
|
||||||
*
|
|
||||||
* In this example, if you try to use a class in the Symfony\Component
|
|
||||||
* namespace or one of its children (Symfony\Component\Console for instance),
|
|
||||||
* the autoloader will first look for the class under the component/
|
|
||||||
* directory, and it will then fallback to the framework/ directory if not
|
|
||||||
* found before giving up.
|
|
||||||
*
|
|
||||||
* This class is loosely based on the Symfony UniversalClassLoader.
|
|
||||||
*
|
|
||||||
* @author Fabien Potencier <fabien@symfony.com>
|
|
||||||
* @author Jordi Boggiano <j.boggiano@seld.be>
|
|
||||||
* @see https://www.php-fig.org/psr/psr-0/
|
|
||||||
* @see https://www.php-fig.org/psr/psr-4/
|
|
||||||
*/
|
|
||||||
class ClassLoader
|
|
||||||
{
|
|
||||||
/** @var ?string */
|
|
||||||
private $vendorDir;
|
|
||||||
|
|
||||||
// PSR-4
|
|
||||||
/**
|
|
||||||
* @var array[]
|
|
||||||
* @psalm-var array<string, array<string, int>>
|
|
||||||
*/
|
|
||||||
private $prefixLengthsPsr4 = array();
|
|
||||||
/**
|
|
||||||
* @var array[]
|
|
||||||
* @psalm-var array<string, array<int, string>>
|
|
||||||
*/
|
|
||||||
private $prefixDirsPsr4 = array();
|
|
||||||
/**
|
|
||||||
* @var array[]
|
|
||||||
* @psalm-var array<string, string>
|
|
||||||
*/
|
|
||||||
private $fallbackDirsPsr4 = array();
|
|
||||||
|
|
||||||
// PSR-0
|
|
||||||
/**
|
|
||||||
* @var array[]
|
|
||||||
* @psalm-var array<string, array<string, string[]>>
|
|
||||||
*/
|
|
||||||
private $prefixesPsr0 = array();
|
|
||||||
/**
|
|
||||||
* @var array[]
|
|
||||||
* @psalm-var array<string, string>
|
|
||||||
*/
|
|
||||||
private $fallbackDirsPsr0 = array();
|
|
||||||
|
|
||||||
/** @var bool */
|
|
||||||
private $useIncludePath = false;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var string[]
|
|
||||||
* @psalm-var array<string, string>
|
|
||||||
*/
|
|
||||||
private $classMap = array();
|
|
||||||
|
|
||||||
/** @var bool */
|
|
||||||
private $classMapAuthoritative = false;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var bool[]
|
|
||||||
* @psalm-var array<string, bool>
|
|
||||||
*/
|
|
||||||
private $missingClasses = array();
|
|
||||||
|
|
||||||
/** @var ?string */
|
|
||||||
private $apcuPrefix;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var self[]
|
|
||||||
*/
|
|
||||||
private static $registeredLoaders = array();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param ?string $vendorDir
|
|
||||||
*/
|
|
||||||
public function __construct($vendorDir = null)
|
|
||||||
{
|
|
||||||
$this->vendorDir = $vendorDir;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return string[]
|
|
||||||
*/
|
|
||||||
public function getPrefixes()
|
|
||||||
{
|
|
||||||
if (!empty($this->prefixesPsr0)) {
|
|
||||||
return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
|
|
||||||
}
|
|
||||||
|
|
||||||
return array();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return array[]
|
|
||||||
* @psalm-return array<string, array<int, string>>
|
|
||||||
*/
|
|
||||||
public function getPrefixesPsr4()
|
|
||||||
{
|
|
||||||
return $this->prefixDirsPsr4;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return array[]
|
|
||||||
* @psalm-return array<string, string>
|
|
||||||
*/
|
|
||||||
public function getFallbackDirs()
|
|
||||||
{
|
|
||||||
return $this->fallbackDirsPsr0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return array[]
|
|
||||||
* @psalm-return array<string, string>
|
|
||||||
*/
|
|
||||||
public function getFallbackDirsPsr4()
|
|
||||||
{
|
|
||||||
return $this->fallbackDirsPsr4;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return string[] Array of classname => path
|
|
||||||
* @psalm-var array<string, string>
|
|
||||||
*/
|
|
||||||
public function getClassMap()
|
|
||||||
{
|
|
||||||
return $this->classMap;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string[] $classMap Class to filename map
|
|
||||||
* @psalm-param array<string, string> $classMap
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function addClassMap(array $classMap)
|
|
||||||
{
|
|
||||||
if ($this->classMap) {
|
|
||||||
$this->classMap = array_merge($this->classMap, $classMap);
|
|
||||||
} else {
|
|
||||||
$this->classMap = $classMap;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Registers a set of PSR-0 directories for a given prefix, either
|
|
||||||
* appending or prepending to the ones previously set for this prefix.
|
|
||||||
*
|
|
||||||
* @param string $prefix The prefix
|
|
||||||
* @param string[]|string $paths The PSR-0 root directories
|
|
||||||
* @param bool $prepend Whether to prepend the directories
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function add($prefix, $paths, $prepend = false)
|
|
||||||
{
|
|
||||||
if (!$prefix) {
|
|
||||||
if ($prepend) {
|
|
||||||
$this->fallbackDirsPsr0 = array_merge(
|
|
||||||
(array) $paths,
|
|
||||||
$this->fallbackDirsPsr0
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$this->fallbackDirsPsr0 = array_merge(
|
|
||||||
$this->fallbackDirsPsr0,
|
|
||||||
(array) $paths
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$first = $prefix[0];
|
|
||||||
if (!isset($this->prefixesPsr0[$first][$prefix])) {
|
|
||||||
$this->prefixesPsr0[$first][$prefix] = (array) $paths;
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if ($prepend) {
|
|
||||||
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
|
||||||
(array) $paths,
|
|
||||||
$this->prefixesPsr0[$first][$prefix]
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
|
||||||
$this->prefixesPsr0[$first][$prefix],
|
|
||||||
(array) $paths
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Registers a set of PSR-4 directories for a given namespace, either
|
|
||||||
* appending or prepending to the ones previously set for this namespace.
|
|
||||||
*
|
|
||||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
|
||||||
* @param string[]|string $paths The PSR-4 base directories
|
|
||||||
* @param bool $prepend Whether to prepend the directories
|
|
||||||
*
|
|
||||||
* @throws \InvalidArgumentException
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function addPsr4($prefix, $paths, $prepend = false)
|
|
||||||
{
|
|
||||||
if (!$prefix) {
|
|
||||||
// Register directories for the root namespace.
|
|
||||||
if ($prepend) {
|
|
||||||
$this->fallbackDirsPsr4 = array_merge(
|
|
||||||
(array) $paths,
|
|
||||||
$this->fallbackDirsPsr4
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$this->fallbackDirsPsr4 = array_merge(
|
|
||||||
$this->fallbackDirsPsr4,
|
|
||||||
(array) $paths
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
|
|
||||||
// Register directories for a new namespace.
|
|
||||||
$length = strlen($prefix);
|
|
||||||
if ('\\' !== $prefix[$length - 1]) {
|
|
||||||
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
|
||||||
}
|
|
||||||
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
|
||||||
$this->prefixDirsPsr4[$prefix] = (array) $paths;
|
|
||||||
} elseif ($prepend) {
|
|
||||||
// Prepend directories for an already registered namespace.
|
|
||||||
$this->prefixDirsPsr4[$prefix] = array_merge(
|
|
||||||
(array) $paths,
|
|
||||||
$this->prefixDirsPsr4[$prefix]
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
// Append directories for an already registered namespace.
|
|
||||||
$this->prefixDirsPsr4[$prefix] = array_merge(
|
|
||||||
$this->prefixDirsPsr4[$prefix],
|
|
||||||
(array) $paths
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Registers a set of PSR-0 directories for a given prefix,
|
|
||||||
* replacing any others previously set for this prefix.
|
|
||||||
*
|
|
||||||
* @param string $prefix The prefix
|
|
||||||
* @param string[]|string $paths The PSR-0 base directories
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function set($prefix, $paths)
|
|
||||||
{
|
|
||||||
if (!$prefix) {
|
|
||||||
$this->fallbackDirsPsr0 = (array) $paths;
|
|
||||||
} else {
|
|
||||||
$this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Registers a set of PSR-4 directories for a given namespace,
|
|
||||||
* replacing any others previously set for this namespace.
|
|
||||||
*
|
|
||||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
|
||||||
* @param string[]|string $paths The PSR-4 base directories
|
|
||||||
*
|
|
||||||
* @throws \InvalidArgumentException
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function setPsr4($prefix, $paths)
|
|
||||||
{
|
|
||||||
if (!$prefix) {
|
|
||||||
$this->fallbackDirsPsr4 = (array) $paths;
|
|
||||||
} else {
|
|
||||||
$length = strlen($prefix);
|
|
||||||
if ('\\' !== $prefix[$length - 1]) {
|
|
||||||
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
|
||||||
}
|
|
||||||
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
|
||||||
$this->prefixDirsPsr4[$prefix] = (array) $paths;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Turns on searching the include path for class files.
|
|
||||||
*
|
|
||||||
* @param bool $useIncludePath
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function setUseIncludePath($useIncludePath)
|
|
||||||
{
|
|
||||||
$this->useIncludePath = $useIncludePath;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Can be used to check if the autoloader uses the include path to check
|
|
||||||
* for classes.
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function getUseIncludePath()
|
|
||||||
{
|
|
||||||
return $this->useIncludePath;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Turns off searching the prefix and fallback directories for classes
|
|
||||||
* that have not been registered with the class map.
|
|
||||||
*
|
|
||||||
* @param bool $classMapAuthoritative
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function setClassMapAuthoritative($classMapAuthoritative)
|
|
||||||
{
|
|
||||||
$this->classMapAuthoritative = $classMapAuthoritative;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Should class lookup fail if not found in the current class map?
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function isClassMapAuthoritative()
|
|
||||||
{
|
|
||||||
return $this->classMapAuthoritative;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
|
|
||||||
*
|
|
||||||
* @param string|null $apcuPrefix
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function setApcuPrefix($apcuPrefix)
|
|
||||||
{
|
|
||||||
$this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The APCu prefix in use, or null if APCu caching is not enabled.
|
|
||||||
*
|
|
||||||
* @return string|null
|
|
||||||
*/
|
|
||||||
public function getApcuPrefix()
|
|
||||||
{
|
|
||||||
return $this->apcuPrefix;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Registers this instance as an autoloader.
|
|
||||||
*
|
|
||||||
* @param bool $prepend Whether to prepend the autoloader or not
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function register($prepend = false)
|
|
||||||
{
|
|
||||||
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
|
||||||
|
|
||||||
if (null === $this->vendorDir) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($prepend) {
|
|
||||||
self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
|
|
||||||
} else {
|
|
||||||
unset(self::$registeredLoaders[$this->vendorDir]);
|
|
||||||
self::$registeredLoaders[$this->vendorDir] = $this;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Unregisters this instance as an autoloader.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function unregister()
|
|
||||||
{
|
|
||||||
spl_autoload_unregister(array($this, 'loadClass'));
|
|
||||||
|
|
||||||
if (null !== $this->vendorDir) {
|
|
||||||
unset(self::$registeredLoaders[$this->vendorDir]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Loads the given class or interface.
|
|
||||||
*
|
|
||||||
* @param string $class The name of the class
|
|
||||||
* @return true|null True if loaded, null otherwise
|
|
||||||
*/
|
|
||||||
public function loadClass($class)
|
|
||||||
{
|
|
||||||
if ($file = $this->findFile($class)) {
|
|
||||||
includeFile($file);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Finds the path to the file where the class is defined.
|
|
||||||
*
|
|
||||||
* @param string $class The name of the class
|
|
||||||
*
|
|
||||||
* @return string|false The path if found, false otherwise
|
|
||||||
*/
|
|
||||||
public function findFile($class)
|
|
||||||
{
|
|
||||||
// class map lookup
|
|
||||||
if (isset($this->classMap[$class])) {
|
|
||||||
return $this->classMap[$class];
|
|
||||||
}
|
|
||||||
if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (null !== $this->apcuPrefix) {
|
|
||||||
$file = apcu_fetch($this->apcuPrefix.$class, $hit);
|
|
||||||
if ($hit) {
|
|
||||||
return $file;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$file = $this->findFileWithExtension($class, '.php');
|
|
||||||
|
|
||||||
// Search for Hack files if we are running on HHVM
|
|
||||||
if (false === $file && defined('HHVM_VERSION')) {
|
|
||||||
$file = $this->findFileWithExtension($class, '.hh');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (null !== $this->apcuPrefix) {
|
|
||||||
apcu_add($this->apcuPrefix.$class, $file);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (false === $file) {
|
|
||||||
// Remember that this class does not exist.
|
|
||||||
$this->missingClasses[$class] = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $file;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the currently registered loaders indexed by their corresponding vendor directories.
|
|
||||||
*
|
|
||||||
* @return self[]
|
|
||||||
*/
|
|
||||||
public static function getRegisteredLoaders()
|
|
||||||
{
|
|
||||||
return self::$registeredLoaders;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $class
|
|
||||||
* @param string $ext
|
|
||||||
* @return string|false
|
|
||||||
*/
|
|
||||||
private function findFileWithExtension($class, $ext)
|
|
||||||
{
|
|
||||||
// PSR-4 lookup
|
|
||||||
$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
|
|
||||||
|
|
||||||
$first = $class[0];
|
|
||||||
if (isset($this->prefixLengthsPsr4[$first])) {
|
|
||||||
$subPath = $class;
|
|
||||||
while (false !== $lastPos = strrpos($subPath, '\\')) {
|
|
||||||
$subPath = substr($subPath, 0, $lastPos);
|
|
||||||
$search = $subPath . '\\';
|
|
||||||
if (isset($this->prefixDirsPsr4[$search])) {
|
|
||||||
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
|
|
||||||
foreach ($this->prefixDirsPsr4[$search] as $dir) {
|
|
||||||
if (file_exists($file = $dir . $pathEnd)) {
|
|
||||||
return $file;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// PSR-4 fallback dirs
|
|
||||||
foreach ($this->fallbackDirsPsr4 as $dir) {
|
|
||||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
|
|
||||||
return $file;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// PSR-0 lookup
|
|
||||||
if (false !== $pos = strrpos($class, '\\')) {
|
|
||||||
// namespaced class name
|
|
||||||
$logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
|
|
||||||
. strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
|
|
||||||
} else {
|
|
||||||
// PEAR-like class name
|
|
||||||
$logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($this->prefixesPsr0[$first])) {
|
|
||||||
foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
|
|
||||||
if (0 === strpos($class, $prefix)) {
|
|
||||||
foreach ($dirs as $dir) {
|
|
||||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
|
|
||||||
return $file;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// PSR-0 fallback dirs
|
|
||||||
foreach ($this->fallbackDirsPsr0 as $dir) {
|
|
||||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
|
|
||||||
return $file;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// PSR-0 include paths.
|
|
||||||
if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
|
|
||||||
return $file;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Scope isolated include.
|
|
||||||
*
|
|
||||||
* Prevents access to $this/self from included files.
|
|
||||||
*
|
|
||||||
* @param string $file
|
|
||||||
* @return void
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
function includeFile($file)
|
|
||||||
{
|
|
||||||
include $file;
|
|
||||||
}
|
|
||||||
350
vendor/composer/InstalledVersions.php
vendored
350
vendor/composer/InstalledVersions.php
vendored
@@ -1,350 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This file is part of Composer.
|
|
||||||
*
|
|
||||||
* (c) Nils Adermann <naderman@naderman.de>
|
|
||||||
* Jordi Boggiano <j.boggiano@seld.be>
|
|
||||||
*
|
|
||||||
* For the full copyright and license information, please view the LICENSE
|
|
||||||
* file that was distributed with this source code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Composer;
|
|
||||||
|
|
||||||
use Composer\Autoload\ClassLoader;
|
|
||||||
use Composer\Semver\VersionParser;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This class is copied in every Composer installed project and available to all
|
|
||||||
*
|
|
||||||
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
|
||||||
*
|
|
||||||
* To require its presence, you can require `composer-runtime-api ^2.0`
|
|
||||||
*/
|
|
||||||
class InstalledVersions
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var mixed[]|null
|
|
||||||
* @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}|array{}|null
|
|
||||||
*/
|
|
||||||
private static $installed;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var bool|null
|
|
||||||
*/
|
|
||||||
private static $canGetVendors;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var array[]
|
|
||||||
* @psalm-var array<string, array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
|
|
||||||
*/
|
|
||||||
private static $installedByVendor = array();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a list of all package names which are present, either by being installed, replaced or provided
|
|
||||||
*
|
|
||||||
* @return string[]
|
|
||||||
* @psalm-return list<string>
|
|
||||||
*/
|
|
||||||
public static function getInstalledPackages()
|
|
||||||
{
|
|
||||||
$packages = array();
|
|
||||||
foreach (self::getInstalled() as $installed) {
|
|
||||||
$packages[] = array_keys($installed['versions']);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (1 === \count($packages)) {
|
|
||||||
return $packages[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a list of all package names with a specific type e.g. 'library'
|
|
||||||
*
|
|
||||||
* @param string $type
|
|
||||||
* @return string[]
|
|
||||||
* @psalm-return list<string>
|
|
||||||
*/
|
|
||||||
public static function getInstalledPackagesByType($type)
|
|
||||||
{
|
|
||||||
$packagesByType = array();
|
|
||||||
|
|
||||||
foreach (self::getInstalled() as $installed) {
|
|
||||||
foreach ($installed['versions'] as $name => $package) {
|
|
||||||
if (isset($package['type']) && $package['type'] === $type) {
|
|
||||||
$packagesByType[] = $name;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $packagesByType;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks whether the given package is installed
|
|
||||||
*
|
|
||||||
* This also returns true if the package name is provided or replaced by another package
|
|
||||||
*
|
|
||||||
* @param string $packageName
|
|
||||||
* @param bool $includeDevRequirements
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public static function isInstalled($packageName, $includeDevRequirements = true)
|
|
||||||
{
|
|
||||||
foreach (self::getInstalled() as $installed) {
|
|
||||||
if (isset($installed['versions'][$packageName])) {
|
|
||||||
return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks whether the given package satisfies a version constraint
|
|
||||||
*
|
|
||||||
* e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
|
|
||||||
*
|
|
||||||
* Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
|
|
||||||
*
|
|
||||||
* @param VersionParser $parser Install composer/semver to have access to this class and functionality
|
|
||||||
* @param string $packageName
|
|
||||||
* @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public static function satisfies(VersionParser $parser, $packageName, $constraint)
|
|
||||||
{
|
|
||||||
$constraint = $parser->parseConstraints($constraint);
|
|
||||||
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
|
|
||||||
|
|
||||||
return $provided->matches($constraint);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a version constraint representing all the range(s) which are installed for a given package
|
|
||||||
*
|
|
||||||
* It is easier to use this via isInstalled() with the $constraint argument if you need to check
|
|
||||||
* whether a given version of a package is installed, and not just whether it exists
|
|
||||||
*
|
|
||||||
* @param string $packageName
|
|
||||||
* @return string Version constraint usable with composer/semver
|
|
||||||
*/
|
|
||||||
public static function getVersionRanges($packageName)
|
|
||||||
{
|
|
||||||
foreach (self::getInstalled() as $installed) {
|
|
||||||
if (!isset($installed['versions'][$packageName])) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$ranges = array();
|
|
||||||
if (isset($installed['versions'][$packageName]['pretty_version'])) {
|
|
||||||
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
|
|
||||||
}
|
|
||||||
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
|
|
||||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
|
|
||||||
}
|
|
||||||
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
|
|
||||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
|
|
||||||
}
|
|
||||||
if (array_key_exists('provided', $installed['versions'][$packageName])) {
|
|
||||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
|
|
||||||
}
|
|
||||||
|
|
||||||
return implode(' || ', $ranges);
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $packageName
|
|
||||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
|
||||||
*/
|
|
||||||
public static function getVersion($packageName)
|
|
||||||
{
|
|
||||||
foreach (self::getInstalled() as $installed) {
|
|
||||||
if (!isset($installed['versions'][$packageName])) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isset($installed['versions'][$packageName]['version'])) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $installed['versions'][$packageName]['version'];
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $packageName
|
|
||||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
|
||||||
*/
|
|
||||||
public static function getPrettyVersion($packageName)
|
|
||||||
{
|
|
||||||
foreach (self::getInstalled() as $installed) {
|
|
||||||
if (!isset($installed['versions'][$packageName])) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $installed['versions'][$packageName]['pretty_version'];
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $packageName
|
|
||||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
|
|
||||||
*/
|
|
||||||
public static function getReference($packageName)
|
|
||||||
{
|
|
||||||
foreach (self::getInstalled() as $installed) {
|
|
||||||
if (!isset($installed['versions'][$packageName])) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isset($installed['versions'][$packageName]['reference'])) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $installed['versions'][$packageName]['reference'];
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $packageName
|
|
||||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
|
|
||||||
*/
|
|
||||||
public static function getInstallPath($packageName)
|
|
||||||
{
|
|
||||||
foreach (self::getInstalled() as $installed) {
|
|
||||||
if (!isset($installed['versions'][$packageName])) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return array
|
|
||||||
* @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}
|
|
||||||
*/
|
|
||||||
public static function getRootPackage()
|
|
||||||
{
|
|
||||||
$installed = self::getInstalled();
|
|
||||||
|
|
||||||
return $installed[0]['root'];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the raw installed.php data for custom implementations
|
|
||||||
*
|
|
||||||
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
|
||||||
* @return array[]
|
|
||||||
* @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}
|
|
||||||
*/
|
|
||||||
public static function getRawData()
|
|
||||||
{
|
|
||||||
@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
|
|
||||||
|
|
||||||
if (null === self::$installed) {
|
|
||||||
// only require the installed.php file if this file is loaded from its dumped location,
|
|
||||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
|
||||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
|
||||||
self::$installed = include __DIR__ . '/installed.php';
|
|
||||||
} else {
|
|
||||||
self::$installed = array();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return self::$installed;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
|
||||||
*
|
|
||||||
* @return array[]
|
|
||||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
|
|
||||||
*/
|
|
||||||
public static function getAllRawData()
|
|
||||||
{
|
|
||||||
return self::getInstalled();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Lets you reload the static array from another file
|
|
||||||
*
|
|
||||||
* This is only useful for complex integrations in which a project needs to use
|
|
||||||
* this class but then also needs to execute another project's autoloader in process,
|
|
||||||
* and wants to ensure both projects have access to their version of installed.php.
|
|
||||||
*
|
|
||||||
* A typical case would be PHPUnit, where it would need to make sure it reads all
|
|
||||||
* the data it needs from this class, then call reload() with
|
|
||||||
* `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
|
|
||||||
* the project in which it runs can then also use this class safely, without
|
|
||||||
* interference between PHPUnit's dependencies and the project's dependencies.
|
|
||||||
*
|
|
||||||
* @param array[] $data A vendor/composer/installed.php data set
|
|
||||||
* @return void
|
|
||||||
*
|
|
||||||
* @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>} $data
|
|
||||||
*/
|
|
||||||
public static function reload($data)
|
|
||||||
{
|
|
||||||
self::$installed = $data;
|
|
||||||
self::$installedByVendor = array();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return array[]
|
|
||||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
|
|
||||||
*/
|
|
||||||
private static function getInstalled()
|
|
||||||
{
|
|
||||||
if (null === self::$canGetVendors) {
|
|
||||||
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
|
|
||||||
}
|
|
||||||
|
|
||||||
$installed = array();
|
|
||||||
|
|
||||||
if (self::$canGetVendors) {
|
|
||||||
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
|
||||||
if (isset(self::$installedByVendor[$vendorDir])) {
|
|
||||||
$installed[] = self::$installedByVendor[$vendorDir];
|
|
||||||
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
|
||||||
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
|
|
||||||
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
|
|
||||||
self::$installed = $installed[count($installed) - 1];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (null === self::$installed) {
|
|
||||||
// only require the installed.php file if this file is loaded from its dumped location,
|
|
||||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
|
||||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
|
||||||
self::$installed = require __DIR__ . '/installed.php';
|
|
||||||
} else {
|
|
||||||
self::$installed = array();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$installed[] = self::$installed;
|
|
||||||
|
|
||||||
return $installed;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
21
vendor/composer/LICENSE
vendored
21
vendor/composer/LICENSE
vendored
@@ -1,21 +0,0 @@
|
|||||||
|
|
||||||
Copyright (c) Nils Adermann, Jordi Boggiano
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is furnished
|
|
||||||
to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
|
|
||||||
635
vendor/composer/autoload_classmap.php
vendored
635
vendor/composer/autoload_classmap.php
vendored
@@ -1,635 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// autoload_classmap.php @generated by Composer
|
|
||||||
|
|
||||||
$vendorDir = dirname(dirname(__FILE__));
|
|
||||||
$baseDir = dirname($vendorDir);
|
|
||||||
|
|
||||||
return array(
|
|
||||||
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
|
|
||||||
'DG\\BypassFinals' => $vendorDir . '/dg/bypass-finals/src/BypassFinals.php',
|
|
||||||
'PHPUnit\\Exception' => $vendorDir . '/phpunit/phpunit/src/Exception.php',
|
|
||||||
'PHPUnit\\Framework\\ActualValueIsNotAnObjectException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/ActualValueIsNotAnObjectException.php',
|
|
||||||
'PHPUnit\\Framework\\Assert' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert.php',
|
|
||||||
'PHPUnit\\Framework\\AssertionFailedError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/AssertionFailedError.php',
|
|
||||||
'PHPUnit\\Framework\\CodeCoverageException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/CodeCoverageException.php',
|
|
||||||
'PHPUnit\\Framework\\ComparisonMethodDoesNotAcceptParameterTypeException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotAcceptParameterTypeException.php',
|
|
||||||
'PHPUnit\\Framework\\ComparisonMethodDoesNotDeclareBoolReturnTypeException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotDeclareBoolReturnTypeException.php',
|
|
||||||
'PHPUnit\\Framework\\ComparisonMethodDoesNotDeclareExactlyOneParameterException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotDeclareExactlyOneParameterException.php',
|
|
||||||
'PHPUnit\\Framework\\ComparisonMethodDoesNotDeclareParameterTypeException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotDeclareParameterTypeException.php',
|
|
||||||
'PHPUnit\\Framework\\ComparisonMethodDoesNotExistException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotExistException.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\ArrayHasKey' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Traversable/ArrayHasKey.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\BinaryOperator' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Operator/BinaryOperator.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\Callback' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Callback.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\ClassHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Object/ClassHasAttribute.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\ClassHasStaticAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Object/ClassHasStaticAttribute.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\Constraint' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Constraint.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\Count' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/Count.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\DirectoryExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Filesystem/DirectoryExists.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Exception/Exception.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\ExceptionCode' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Exception/ExceptionCode.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\ExceptionMessage' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Exception/ExceptionMessage.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\ExceptionMessageRegularExpression' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Exception/ExceptionMessageRegularExpression.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\FileExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Filesystem/FileExists.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\GreaterThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/GreaterThan.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsAnything' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsEmpty' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/IsEmpty.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsEqual' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqual.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsEqualCanonicalizing' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqualCanonicalizing.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsEqualIgnoringCase' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqualIgnoringCase.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsEqualWithDelta' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqualWithDelta.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsFalse' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Boolean/IsFalse.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsFinite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Math/IsFinite.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsIdentical' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsInfinite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Math/IsInfinite.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsInstanceOf' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Type/IsInstanceOf.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsJson' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/String/IsJson.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsNan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Math/IsNan.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsNull' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Type/IsNull.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsReadable' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Filesystem/IsReadable.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsTrue' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Boolean/IsTrue.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsType' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Type/IsType.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsWritable' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Filesystem/IsWritable.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\JsonMatches' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\JsonMatchesErrorMessageProvider' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\LessThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/LessThan.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\LogicalAnd' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalAnd.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\LogicalNot' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalNot.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\LogicalOr' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalOr.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\LogicalXor' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalXor.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\ObjectEquals' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectEquals.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\ObjectHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectHasAttribute.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\Operator' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Operator/Operator.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\RegularExpression' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/String/RegularExpression.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\SameSize' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/SameSize.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\StringContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/String/StringContains.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\StringEndsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/String/StringEndsWith.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\StringMatchesFormatDescription' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/String/StringMatchesFormatDescription.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\StringStartsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/String/StringStartsWith.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\TraversableContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContains.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\TraversableContainsEqual' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContainsEqual.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\TraversableContainsIdentical' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContainsIdentical.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\TraversableContainsOnly' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContainsOnly.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\UnaryOperator' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Operator/UnaryOperator.php',
|
|
||||||
'PHPUnit\\Framework\\CoveredCodeNotExecutedException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/CoveredCodeNotExecutedException.php',
|
|
||||||
'PHPUnit\\Framework\\DataProviderTestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/DataProviderTestSuite.php',
|
|
||||||
'PHPUnit\\Framework\\Error' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/Error.php',
|
|
||||||
'PHPUnit\\Framework\\ErrorTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/ErrorTestCase.php',
|
|
||||||
'PHPUnit\\Framework\\Error\\Deprecated' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Deprecated.php',
|
|
||||||
'PHPUnit\\Framework\\Error\\Error' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Error.php',
|
|
||||||
'PHPUnit\\Framework\\Error\\Notice' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Notice.php',
|
|
||||||
'PHPUnit\\Framework\\Error\\Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Warning.php',
|
|
||||||
'PHPUnit\\Framework\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/Exception.php',
|
|
||||||
'PHPUnit\\Framework\\ExceptionWrapper' => $vendorDir . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php',
|
|
||||||
'PHPUnit\\Framework\\ExecutionOrderDependency' => $vendorDir . '/phpunit/phpunit/src/Framework/ExecutionOrderDependency.php',
|
|
||||||
'PHPUnit\\Framework\\ExpectationFailedException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/ExpectationFailedException.php',
|
|
||||||
'PHPUnit\\Framework\\IncompleteTest' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTest.php',
|
|
||||||
'PHPUnit\\Framework\\IncompleteTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php',
|
|
||||||
'PHPUnit\\Framework\\IncompleteTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/IncompleteTestError.php',
|
|
||||||
'PHPUnit\\Framework\\InvalidArgumentException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/InvalidArgumentException.php',
|
|
||||||
'PHPUnit\\Framework\\InvalidCoversTargetException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/InvalidCoversTargetException.php',
|
|
||||||
'PHPUnit\\Framework\\InvalidDataProviderException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/InvalidDataProviderException.php',
|
|
||||||
'PHPUnit\\Framework\\InvalidParameterGroupException' => $vendorDir . '/phpunit/phpunit/src/Framework/InvalidParameterGroupException.php',
|
|
||||||
'PHPUnit\\Framework\\MissingCoversAnnotationException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/MissingCoversAnnotationException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Api' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Api/Api.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\BadMethodCallException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/BadMethodCallException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Builder\\Identity' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/Identity.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Builder\\InvocationStubber' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationStubber.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/MethodNameMatch.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/ParametersMatch.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/Stub.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\CannotUseAddMethodsException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/CannotUseAddMethodsException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\CannotUseOnlyMethodsException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/CannotUseOnlyMethodsException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\ClassAlreadyExistsException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/ClassAlreadyExistsException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\ClassIsFinalException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/ClassIsFinalException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\ConfigurableMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/ConfigurableMethod.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\ConfigurableMethodsAlreadyInitializedException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/ConfigurableMethodsAlreadyInitializedException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\DuplicateMethodException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/DuplicateMethodException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Generator' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\IncompatibleReturnValueException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/IncompatibleReturnValueException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\InvalidMethodNameException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/InvalidMethodNameException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Invocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Invocation.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\InvocationHandler' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/InvocationHandler.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MatchBuilderNotFoundException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/MatchBuilderNotFoundException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Matcher' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MatcherAlreadyRegisteredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/MatcherAlreadyRegisteredException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Method' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Api/Method.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MethodCannotBeConfiguredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/MethodCannotBeConfiguredException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MethodNameAlreadyConfiguredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/MethodNameAlreadyConfiguredException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MethodNameConstraint' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MethodNameConstraint.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MethodNameNotConfiguredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/MethodNameNotConfiguredException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MethodParametersAlreadyConfiguredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/MethodParametersAlreadyConfiguredException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MockBuilder' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MockClass' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockClass.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MockMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockMethod.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MockMethodSet' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockMethodSet.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MockObject' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockObject.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MockTrait' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockTrait.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MockType' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockType.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\OriginalConstructorInvocationRequiredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/OriginalConstructorInvocationRequiredException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\ReflectionException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/ReflectionException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\ReturnValueNotConfiguredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/ReturnValueNotConfiguredException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Rule\\AnyInvokedCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/AnyInvokedCount.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Rule\\AnyParameters' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/AnyParameters.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Rule\\ConsecutiveParameters' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/ConsecutiveParameters.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Rule\\InvocationOrder' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvocationOrder.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Rule\\InvokedAtIndex' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtIndex.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Rule\\InvokedAtLeastCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtLeastCount.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Rule\\InvokedAtLeastOnce' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtLeastOnce.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Rule\\InvokedAtMostCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtMostCount.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Rule\\InvokedCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedCount.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Rule\\MethodName' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/MethodName.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Rule\\Parameters' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/Parameters.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Rule\\ParametersRule' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Rule/ParametersRule.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\RuntimeException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/RuntimeException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\SoapExtensionNotAvailableException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/SoapExtensionNotAvailableException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Stub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Stub\\ConsecutiveCalls' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ConsecutiveCalls.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Stub\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/Exception.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnArgument' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnArgument.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnCallback' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnReference' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnReference.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnSelf' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnSelf.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnStub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnStub.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnValueMap' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnValueMap.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Stub\\Stub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/Stub.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\UnknownClassException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownClassException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\UnknownTraitException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTraitException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\UnknownTypeException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTypeException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Verifiable' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Verifiable.php',
|
|
||||||
'PHPUnit\\Framework\\NoChildTestSuiteException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/NoChildTestSuiteException.php',
|
|
||||||
'PHPUnit\\Framework\\OutputError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/OutputError.php',
|
|
||||||
'PHPUnit\\Framework\\PHPTAssertionFailedError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/PHPTAssertionFailedError.php',
|
|
||||||
'PHPUnit\\Framework\\Reorderable' => $vendorDir . '/phpunit/phpunit/src/Framework/Reorderable.php',
|
|
||||||
'PHPUnit\\Framework\\RiskyTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/RiskyTestError.php',
|
|
||||||
'PHPUnit\\Framework\\SelfDescribing' => $vendorDir . '/phpunit/phpunit/src/Framework/SelfDescribing.php',
|
|
||||||
'PHPUnit\\Framework\\SkippedTest' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTest.php',
|
|
||||||
'PHPUnit\\Framework\\SkippedTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestCase.php',
|
|
||||||
'PHPUnit\\Framework\\SkippedTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/SkippedTestError.php',
|
|
||||||
'PHPUnit\\Framework\\SkippedTestSuiteError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/SkippedTestSuiteError.php',
|
|
||||||
'PHPUnit\\Framework\\SyntheticError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/SyntheticError.php',
|
|
||||||
'PHPUnit\\Framework\\SyntheticSkippedError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/SyntheticSkippedError.php',
|
|
||||||
'PHPUnit\\Framework\\Test' => $vendorDir . '/phpunit/phpunit/src/Framework/Test.php',
|
|
||||||
'PHPUnit\\Framework\\TestBuilder' => $vendorDir . '/phpunit/phpunit/src/Framework/TestBuilder.php',
|
|
||||||
'PHPUnit\\Framework\\TestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/TestCase.php',
|
|
||||||
'PHPUnit\\Framework\\TestFailure' => $vendorDir . '/phpunit/phpunit/src/Framework/TestFailure.php',
|
|
||||||
'PHPUnit\\Framework\\TestListener' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListener.php',
|
|
||||||
'PHPUnit\\Framework\\TestListenerDefaultImplementation' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php',
|
|
||||||
'PHPUnit\\Framework\\TestResult' => $vendorDir . '/phpunit/phpunit/src/Framework/TestResult.php',
|
|
||||||
'PHPUnit\\Framework\\TestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuite.php',
|
|
||||||
'PHPUnit\\Framework\\TestSuiteIterator' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuiteIterator.php',
|
|
||||||
'PHPUnit\\Framework\\UnintentionallyCoveredCodeError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/UnintentionallyCoveredCodeError.php',
|
|
||||||
'PHPUnit\\Framework\\Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/Warning.php',
|
|
||||||
'PHPUnit\\Framework\\WarningTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/WarningTestCase.php',
|
|
||||||
'PHPUnit\\Runner\\AfterIncompleteTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterIncompleteTestHook.php',
|
|
||||||
'PHPUnit\\Runner\\AfterLastTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterLastTestHook.php',
|
|
||||||
'PHPUnit\\Runner\\AfterRiskyTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterRiskyTestHook.php',
|
|
||||||
'PHPUnit\\Runner\\AfterSkippedTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterSkippedTestHook.php',
|
|
||||||
'PHPUnit\\Runner\\AfterSuccessfulTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterSuccessfulTestHook.php',
|
|
||||||
'PHPUnit\\Runner\\AfterTestErrorHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestErrorHook.php',
|
|
||||||
'PHPUnit\\Runner\\AfterTestFailureHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestFailureHook.php',
|
|
||||||
'PHPUnit\\Runner\\AfterTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestHook.php',
|
|
||||||
'PHPUnit\\Runner\\AfterTestWarningHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestWarningHook.php',
|
|
||||||
'PHPUnit\\Runner\\BaseTestRunner' => $vendorDir . '/phpunit/phpunit/src/Runner/BaseTestRunner.php',
|
|
||||||
'PHPUnit\\Runner\\BeforeFirstTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/BeforeFirstTestHook.php',
|
|
||||||
'PHPUnit\\Runner\\BeforeTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/BeforeTestHook.php',
|
|
||||||
'PHPUnit\\Runner\\DefaultTestResultCache' => $vendorDir . '/phpunit/phpunit/src/Runner/DefaultTestResultCache.php',
|
|
||||||
'PHPUnit\\Runner\\Exception' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception.php',
|
|
||||||
'PHPUnit\\Runner\\Extension\\ExtensionHandler' => $vendorDir . '/phpunit/phpunit/src/Runner/Extension/ExtensionHandler.php',
|
|
||||||
'PHPUnit\\Runner\\Extension\\PharLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/Extension/PharLoader.php',
|
|
||||||
'PHPUnit\\Runner\\Filter\\ExcludeGroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php',
|
|
||||||
'PHPUnit\\Runner\\Filter\\Factory' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Factory.php',
|
|
||||||
'PHPUnit\\Runner\\Filter\\GroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php',
|
|
||||||
'PHPUnit\\Runner\\Filter\\IncludeGroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php',
|
|
||||||
'PHPUnit\\Runner\\Filter\\NameFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php',
|
|
||||||
'PHPUnit\\Runner\\Hook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/Hook.php',
|
|
||||||
'PHPUnit\\Runner\\NullTestResultCache' => $vendorDir . '/phpunit/phpunit/src/Runner/NullTestResultCache.php',
|
|
||||||
'PHPUnit\\Runner\\PhptTestCase' => $vendorDir . '/phpunit/phpunit/src/Runner/PhptTestCase.php',
|
|
||||||
'PHPUnit\\Runner\\ResultCacheExtension' => $vendorDir . '/phpunit/phpunit/src/Runner/ResultCacheExtension.php',
|
|
||||||
'PHPUnit\\Runner\\StandardTestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php',
|
|
||||||
'PHPUnit\\Runner\\TestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/TestHook.php',
|
|
||||||
'PHPUnit\\Runner\\TestListenerAdapter' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/TestListenerAdapter.php',
|
|
||||||
'PHPUnit\\Runner\\TestResultCache' => $vendorDir . '/phpunit/phpunit/src/Runner/TestResultCache.php',
|
|
||||||
'PHPUnit\\Runner\\TestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php',
|
|
||||||
'PHPUnit\\Runner\\TestSuiteSorter' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteSorter.php',
|
|
||||||
'PHPUnit\\Runner\\Version' => $vendorDir . '/phpunit/phpunit/src/Runner/Version.php',
|
|
||||||
'PHPUnit\\TextUI\\CliArguments\\Builder' => $vendorDir . '/phpunit/phpunit/src/TextUI/CliArguments/Builder.php',
|
|
||||||
'PHPUnit\\TextUI\\CliArguments\\Configuration' => $vendorDir . '/phpunit/phpunit/src/TextUI/CliArguments/Configuration.php',
|
|
||||||
'PHPUnit\\TextUI\\CliArguments\\Exception' => $vendorDir . '/phpunit/phpunit/src/TextUI/CliArguments/Exception.php',
|
|
||||||
'PHPUnit\\TextUI\\CliArguments\\Mapper' => $vendorDir . '/phpunit/phpunit/src/TextUI/CliArguments/Mapper.php',
|
|
||||||
'PHPUnit\\TextUI\\Command' => $vendorDir . '/phpunit/phpunit/src/TextUI/Command.php',
|
|
||||||
'PHPUnit\\TextUI\\DefaultResultPrinter' => $vendorDir . '/phpunit/phpunit/src/TextUI/DefaultResultPrinter.php',
|
|
||||||
'PHPUnit\\TextUI\\Exception' => $vendorDir . '/phpunit/phpunit/src/TextUI/Exception/Exception.php',
|
|
||||||
'PHPUnit\\TextUI\\Help' => $vendorDir . '/phpunit/phpunit/src/TextUI/Help.php',
|
|
||||||
'PHPUnit\\TextUI\\ReflectionException' => $vendorDir . '/phpunit/phpunit/src/TextUI/Exception/ReflectionException.php',
|
|
||||||
'PHPUnit\\TextUI\\ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/TextUI/ResultPrinter.php',
|
|
||||||
'PHPUnit\\TextUI\\RuntimeException' => $vendorDir . '/phpunit/phpunit/src/TextUI/Exception/RuntimeException.php',
|
|
||||||
'PHPUnit\\TextUI\\TestDirectoryNotFoundException' => $vendorDir . '/phpunit/phpunit/src/TextUI/Exception/TestDirectoryNotFoundException.php',
|
|
||||||
'PHPUnit\\TextUI\\TestFileNotFoundException' => $vendorDir . '/phpunit/phpunit/src/TextUI/Exception/TestFileNotFoundException.php',
|
|
||||||
'PHPUnit\\TextUI\\TestRunner' => $vendorDir . '/phpunit/phpunit/src/TextUI/TestRunner.php',
|
|
||||||
'PHPUnit\\TextUI\\TestSuiteMapper' => $vendorDir . '/phpunit/phpunit/src/TextUI/TestSuiteMapper.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\CodeCoverage' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/CodeCoverage.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\FilterMapper' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/FilterMapper.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Filter\\Directory' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Filter/Directory.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Filter\\DirectoryCollection' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Filter/DirectoryCollection.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Filter\\DirectoryCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Filter/DirectoryCollectionIterator.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Clover' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Clover.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Cobertura' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Cobertura.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Crap4j' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Crap4j.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Html' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Html.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Php' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Php.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Text' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Text.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Xml' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Xml.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Configuration' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Configuration.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Constant' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/Constant.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\ConstantCollection' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/ConstantCollection.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\ConstantCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/ConstantCollectionIterator.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\ConvertLogTypes' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/ConvertLogTypes.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CoverageCloverToReport' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/CoverageCloverToReport.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CoverageCrap4jToReport' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/CoverageCrap4jToReport.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CoverageHtmlToReport' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/CoverageHtmlToReport.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CoveragePhpToReport' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/CoveragePhpToReport.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CoverageTextToReport' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/CoverageTextToReport.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CoverageXmlToReport' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/CoverageXmlToReport.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Directory' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Filesystem/Directory.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\DirectoryCollection' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Filesystem/DirectoryCollection.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\DirectoryCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Filesystem/DirectoryCollectionIterator.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Exception' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Exception.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Extension' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHPUnit/Extension.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\ExtensionCollection' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHPUnit/ExtensionCollection.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\ExtensionCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHPUnit/ExtensionCollectionIterator.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\File' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Filesystem/File.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\FileCollection' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Filesystem/FileCollection.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\FileCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Filesystem/FileCollectionIterator.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Generator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Generator.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Group' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Group/Group.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\GroupCollection' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Group/GroupCollection.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\GroupCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Group/GroupCollectionIterator.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Groups' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Group/Groups.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\IniSetting' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/IniSetting.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\IniSettingCollection' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/IniSettingCollection.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\IniSettingCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/IniSettingCollectionIterator.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\IntroduceCoverageElement' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/IntroduceCoverageElement.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Loader' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Loader.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\LogToReportMigration' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/LogToReportMigration.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\Junit' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/Junit.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\Logging' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/Logging.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\TeamCity' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/TeamCity.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\TestDox\\Html' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/TestDox/Html.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\TestDox\\Text' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/TestDox/Text.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\TestDox\\Xml' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/TestDox/Xml.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\Text' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/Text.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Migration' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/Migration.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\MigrationBuilder' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/MigrationBuilder.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\MigrationBuilderException' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/MigrationBuilderException.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\MigrationException' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/MigrationException.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Migrator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrator.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\MoveAttributesFromFilterWhitelistToCoverage' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveAttributesFromFilterWhitelistToCoverage.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\MoveAttributesFromRootToCoverage' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveAttributesFromRootToCoverage.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\MoveWhitelistDirectoriesToCoverage' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistDirectoriesToCoverage.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\MoveWhitelistExcludesToCoverage' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistExcludesToCoverage.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\PHPUnit' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHPUnit/PHPUnit.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Php' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/Php.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\PhpHandler' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/PhpHandler.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\RemoveCacheTokensAttribute' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/RemoveCacheTokensAttribute.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\RemoveEmptyFilter' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/RemoveEmptyFilter.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\RemoveLogTypes' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/RemoveLogTypes.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\TestDirectory' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestDirectory.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\TestDirectoryCollection' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestDirectoryCollection.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\TestDirectoryCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestDirectoryCollectionIterator.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\TestFile' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestFile.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\TestFileCollection' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestFileCollection.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\TestFileCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestFileCollectionIterator.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\TestSuite' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestSuite.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\TestSuiteCollection' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestSuiteCollection.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\TestSuiteCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestSuiteCollectionIterator.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\UpdateSchemaLocationTo93' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/UpdateSchemaLocationTo93.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Variable' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/Variable.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\VariableCollection' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/VariableCollection.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\VariableCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/VariableCollectionIterator.php',
|
|
||||||
'PHPUnit\\Util\\Annotation\\DocBlock' => $vendorDir . '/phpunit/phpunit/src/Util/Annotation/DocBlock.php',
|
|
||||||
'PHPUnit\\Util\\Annotation\\Registry' => $vendorDir . '/phpunit/phpunit/src/Util/Annotation/Registry.php',
|
|
||||||
'PHPUnit\\Util\\Blacklist' => $vendorDir . '/phpunit/phpunit/src/Util/Blacklist.php',
|
|
||||||
'PHPUnit\\Util\\Color' => $vendorDir . '/phpunit/phpunit/src/Util/Color.php',
|
|
||||||
'PHPUnit\\Util\\ErrorHandler' => $vendorDir . '/phpunit/phpunit/src/Util/ErrorHandler.php',
|
|
||||||
'PHPUnit\\Util\\Exception' => $vendorDir . '/phpunit/phpunit/src/Util/Exception.php',
|
|
||||||
'PHPUnit\\Util\\ExcludeList' => $vendorDir . '/phpunit/phpunit/src/Util/ExcludeList.php',
|
|
||||||
'PHPUnit\\Util\\FileLoader' => $vendorDir . '/phpunit/phpunit/src/Util/FileLoader.php',
|
|
||||||
'PHPUnit\\Util\\Filesystem' => $vendorDir . '/phpunit/phpunit/src/Util/Filesystem.php',
|
|
||||||
'PHPUnit\\Util\\Filter' => $vendorDir . '/phpunit/phpunit/src/Util/Filter.php',
|
|
||||||
'PHPUnit\\Util\\GlobalState' => $vendorDir . '/phpunit/phpunit/src/Util/GlobalState.php',
|
|
||||||
'PHPUnit\\Util\\InvalidDataSetException' => $vendorDir . '/phpunit/phpunit/src/Util/InvalidDataSetException.php',
|
|
||||||
'PHPUnit\\Util\\Json' => $vendorDir . '/phpunit/phpunit/src/Util/Json.php',
|
|
||||||
'PHPUnit\\Util\\Log\\JUnit' => $vendorDir . '/phpunit/phpunit/src/Util/Log/JUnit.php',
|
|
||||||
'PHPUnit\\Util\\Log\\TeamCity' => $vendorDir . '/phpunit/phpunit/src/Util/Log/TeamCity.php',
|
|
||||||
'PHPUnit\\Util\\PHP\\AbstractPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php',
|
|
||||||
'PHPUnit\\Util\\PHP\\DefaultPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php',
|
|
||||||
'PHPUnit\\Util\\PHP\\WindowsPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php',
|
|
||||||
'PHPUnit\\Util\\Printer' => $vendorDir . '/phpunit/phpunit/src/Util/Printer.php',
|
|
||||||
'PHPUnit\\Util\\Reflection' => $vendorDir . '/phpunit/phpunit/src/Util/Reflection.php',
|
|
||||||
'PHPUnit\\Util\\RegularExpression' => $vendorDir . '/phpunit/phpunit/src/Util/RegularExpression.php',
|
|
||||||
'PHPUnit\\Util\\Test' => $vendorDir . '/phpunit/phpunit/src/Util/Test.php',
|
|
||||||
'PHPUnit\\Util\\TestDox\\CliTestDoxPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php',
|
|
||||||
'PHPUnit\\Util\\TestDox\\HtmlResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php',
|
|
||||||
'PHPUnit\\Util\\TestDox\\NamePrettifier' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php',
|
|
||||||
'PHPUnit\\Util\\TestDox\\ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php',
|
|
||||||
'PHPUnit\\Util\\TestDox\\TestDoxPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/TestDoxPrinter.php',
|
|
||||||
'PHPUnit\\Util\\TestDox\\TextResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/TextResultPrinter.php',
|
|
||||||
'PHPUnit\\Util\\TestDox\\XmlResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php',
|
|
||||||
'PHPUnit\\Util\\TextTestListRenderer' => $vendorDir . '/phpunit/phpunit/src/Util/TextTestListRenderer.php',
|
|
||||||
'PHPUnit\\Util\\Type' => $vendorDir . '/phpunit/phpunit/src/Util/Type.php',
|
|
||||||
'PHPUnit\\Util\\VersionComparisonOperator' => $vendorDir . '/phpunit/phpunit/src/Util/VersionComparisonOperator.php',
|
|
||||||
'PHPUnit\\Util\\XdebugFilterScriptGenerator' => $vendorDir . '/phpunit/phpunit/src/Util/XdebugFilterScriptGenerator.php',
|
|
||||||
'PHPUnit\\Util\\Xml' => $vendorDir . '/phpunit/phpunit/src/Util/Xml.php',
|
|
||||||
'PHPUnit\\Util\\XmlTestListRenderer' => $vendorDir . '/phpunit/phpunit/src/Util/XmlTestListRenderer.php',
|
|
||||||
'PHPUnit\\Util\\Xml\\Exception' => $vendorDir . '/phpunit/phpunit/src/Util/Xml/Exception.php',
|
|
||||||
'PHPUnit\\Util\\Xml\\FailedSchemaDetectionResult' => $vendorDir . '/phpunit/phpunit/src/Util/Xml/FailedSchemaDetectionResult.php',
|
|
||||||
'PHPUnit\\Util\\Xml\\Loader' => $vendorDir . '/phpunit/phpunit/src/Util/Xml/Loader.php',
|
|
||||||
'PHPUnit\\Util\\Xml\\SchemaDetectionResult' => $vendorDir . '/phpunit/phpunit/src/Util/Xml/SchemaDetectionResult.php',
|
|
||||||
'PHPUnit\\Util\\Xml\\SchemaDetector' => $vendorDir . '/phpunit/phpunit/src/Util/Xml/SchemaDetector.php',
|
|
||||||
'PHPUnit\\Util\\Xml\\SchemaFinder' => $vendorDir . '/phpunit/phpunit/src/Util/Xml/SchemaFinder.php',
|
|
||||||
'PHPUnit\\Util\\Xml\\SnapshotNodeList' => $vendorDir . '/phpunit/phpunit/src/Util/Xml/SnapshotNodeList.php',
|
|
||||||
'PHPUnit\\Util\\Xml\\SuccessfulSchemaDetectionResult' => $vendorDir . '/phpunit/phpunit/src/Util/Xml/SuccessfulSchemaDetectionResult.php',
|
|
||||||
'PHPUnit\\Util\\Xml\\ValidationResult' => $vendorDir . '/phpunit/phpunit/src/Util/Xml/ValidationResult.php',
|
|
||||||
'PHPUnit\\Util\\Xml\\Validator' => $vendorDir . '/phpunit/phpunit/src/Util/Xml/Validator.php',
|
|
||||||
'PharIo\\Manifest\\Application' => $vendorDir . '/phar-io/manifest/src/values/Application.php',
|
|
||||||
'PharIo\\Manifest\\ApplicationName' => $vendorDir . '/phar-io/manifest/src/values/ApplicationName.php',
|
|
||||||
'PharIo\\Manifest\\Author' => $vendorDir . '/phar-io/manifest/src/values/Author.php',
|
|
||||||
'PharIo\\Manifest\\AuthorCollection' => $vendorDir . '/phar-io/manifest/src/values/AuthorCollection.php',
|
|
||||||
'PharIo\\Manifest\\AuthorCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/AuthorCollectionIterator.php',
|
|
||||||
'PharIo\\Manifest\\AuthorElement' => $vendorDir . '/phar-io/manifest/src/xml/AuthorElement.php',
|
|
||||||
'PharIo\\Manifest\\AuthorElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/AuthorElementCollection.php',
|
|
||||||
'PharIo\\Manifest\\BundledComponent' => $vendorDir . '/phar-io/manifest/src/values/BundledComponent.php',
|
|
||||||
'PharIo\\Manifest\\BundledComponentCollection' => $vendorDir . '/phar-io/manifest/src/values/BundledComponentCollection.php',
|
|
||||||
'PharIo\\Manifest\\BundledComponentCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/BundledComponentCollectionIterator.php',
|
|
||||||
'PharIo\\Manifest\\BundlesElement' => $vendorDir . '/phar-io/manifest/src/xml/BundlesElement.php',
|
|
||||||
'PharIo\\Manifest\\ComponentElement' => $vendorDir . '/phar-io/manifest/src/xml/ComponentElement.php',
|
|
||||||
'PharIo\\Manifest\\ComponentElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ComponentElementCollection.php',
|
|
||||||
'PharIo\\Manifest\\ContainsElement' => $vendorDir . '/phar-io/manifest/src/xml/ContainsElement.php',
|
|
||||||
'PharIo\\Manifest\\CopyrightElement' => $vendorDir . '/phar-io/manifest/src/xml/CopyrightElement.php',
|
|
||||||
'PharIo\\Manifest\\CopyrightInformation' => $vendorDir . '/phar-io/manifest/src/values/CopyrightInformation.php',
|
|
||||||
'PharIo\\Manifest\\ElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ElementCollection.php',
|
|
||||||
'PharIo\\Manifest\\ElementCollectionException' => $vendorDir . '/phar-io/manifest/src/exceptions/ElementCollectionException.php',
|
|
||||||
'PharIo\\Manifest\\Email' => $vendorDir . '/phar-io/manifest/src/values/Email.php',
|
|
||||||
'PharIo\\Manifest\\Exception' => $vendorDir . '/phar-io/manifest/src/exceptions/Exception.php',
|
|
||||||
'PharIo\\Manifest\\ExtElement' => $vendorDir . '/phar-io/manifest/src/xml/ExtElement.php',
|
|
||||||
'PharIo\\Manifest\\ExtElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ExtElementCollection.php',
|
|
||||||
'PharIo\\Manifest\\Extension' => $vendorDir . '/phar-io/manifest/src/values/Extension.php',
|
|
||||||
'PharIo\\Manifest\\ExtensionElement' => $vendorDir . '/phar-io/manifest/src/xml/ExtensionElement.php',
|
|
||||||
'PharIo\\Manifest\\InvalidApplicationNameException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php',
|
|
||||||
'PharIo\\Manifest\\InvalidEmailException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidEmailException.php',
|
|
||||||
'PharIo\\Manifest\\InvalidUrlException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidUrlException.php',
|
|
||||||
'PharIo\\Manifest\\Library' => $vendorDir . '/phar-io/manifest/src/values/Library.php',
|
|
||||||
'PharIo\\Manifest\\License' => $vendorDir . '/phar-io/manifest/src/values/License.php',
|
|
||||||
'PharIo\\Manifest\\LicenseElement' => $vendorDir . '/phar-io/manifest/src/xml/LicenseElement.php',
|
|
||||||
'PharIo\\Manifest\\Manifest' => $vendorDir . '/phar-io/manifest/src/values/Manifest.php',
|
|
||||||
'PharIo\\Manifest\\ManifestDocument' => $vendorDir . '/phar-io/manifest/src/xml/ManifestDocument.php',
|
|
||||||
'PharIo\\Manifest\\ManifestDocumentException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestDocumentException.php',
|
|
||||||
'PharIo\\Manifest\\ManifestDocumentLoadingException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestDocumentLoadingException.php',
|
|
||||||
'PharIo\\Manifest\\ManifestDocumentMapper' => $vendorDir . '/phar-io/manifest/src/ManifestDocumentMapper.php',
|
|
||||||
'PharIo\\Manifest\\ManifestDocumentMapperException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php',
|
|
||||||
'PharIo\\Manifest\\ManifestElement' => $vendorDir . '/phar-io/manifest/src/xml/ManifestElement.php',
|
|
||||||
'PharIo\\Manifest\\ManifestElementException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestElementException.php',
|
|
||||||
'PharIo\\Manifest\\ManifestLoader' => $vendorDir . '/phar-io/manifest/src/ManifestLoader.php',
|
|
||||||
'PharIo\\Manifest\\ManifestLoaderException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestLoaderException.php',
|
|
||||||
'PharIo\\Manifest\\ManifestSerializer' => $vendorDir . '/phar-io/manifest/src/ManifestSerializer.php',
|
|
||||||
'PharIo\\Manifest\\NoEmailAddressException' => $vendorDir . '/phar-io/manifest/src/exceptions/NoEmailAdressException.php',
|
|
||||||
'PharIo\\Manifest\\PhpElement' => $vendorDir . '/phar-io/manifest/src/xml/PhpElement.php',
|
|
||||||
'PharIo\\Manifest\\PhpExtensionRequirement' => $vendorDir . '/phar-io/manifest/src/values/PhpExtensionRequirement.php',
|
|
||||||
'PharIo\\Manifest\\PhpVersionRequirement' => $vendorDir . '/phar-io/manifest/src/values/PhpVersionRequirement.php',
|
|
||||||
'PharIo\\Manifest\\Requirement' => $vendorDir . '/phar-io/manifest/src/values/Requirement.php',
|
|
||||||
'PharIo\\Manifest\\RequirementCollection' => $vendorDir . '/phar-io/manifest/src/values/RequirementCollection.php',
|
|
||||||
'PharIo\\Manifest\\RequirementCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/RequirementCollectionIterator.php',
|
|
||||||
'PharIo\\Manifest\\RequiresElement' => $vendorDir . '/phar-io/manifest/src/xml/RequiresElement.php',
|
|
||||||
'PharIo\\Manifest\\Type' => $vendorDir . '/phar-io/manifest/src/values/Type.php',
|
|
||||||
'PharIo\\Manifest\\Url' => $vendorDir . '/phar-io/manifest/src/values/Url.php',
|
|
||||||
'PharIo\\Version\\AbstractVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/AbstractVersionConstraint.php',
|
|
||||||
'PharIo\\Version\\AndVersionConstraintGroup' => $vendorDir . '/phar-io/version/src/constraints/AndVersionConstraintGroup.php',
|
|
||||||
'PharIo\\Version\\AnyVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/AnyVersionConstraint.php',
|
|
||||||
'PharIo\\Version\\BuildMetaData' => $vendorDir . '/phar-io/version/src/BuildMetaData.php',
|
|
||||||
'PharIo\\Version\\ExactVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/ExactVersionConstraint.php',
|
|
||||||
'PharIo\\Version\\Exception' => $vendorDir . '/phar-io/version/src/exceptions/Exception.php',
|
|
||||||
'PharIo\\Version\\GreaterThanOrEqualToVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php',
|
|
||||||
'PharIo\\Version\\InvalidPreReleaseSuffixException' => $vendorDir . '/phar-io/version/src/exceptions/InvalidPreReleaseSuffixException.php',
|
|
||||||
'PharIo\\Version\\InvalidVersionException' => $vendorDir . '/phar-io/version/src/exceptions/InvalidVersionException.php',
|
|
||||||
'PharIo\\Version\\NoBuildMetaDataException' => $vendorDir . '/phar-io/version/src/exceptions/NoBuildMetaDataException.php',
|
|
||||||
'PharIo\\Version\\NoPreReleaseSuffixException' => $vendorDir . '/phar-io/version/src/exceptions/NoPreReleaseSuffixException.php',
|
|
||||||
'PharIo\\Version\\OrVersionConstraintGroup' => $vendorDir . '/phar-io/version/src/constraints/OrVersionConstraintGroup.php',
|
|
||||||
'PharIo\\Version\\PreReleaseSuffix' => $vendorDir . '/phar-io/version/src/PreReleaseSuffix.php',
|
|
||||||
'PharIo\\Version\\SpecificMajorAndMinorVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/SpecificMajorAndMinorVersionConstraint.php',
|
|
||||||
'PharIo\\Version\\SpecificMajorVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/SpecificMajorVersionConstraint.php',
|
|
||||||
'PharIo\\Version\\UnsupportedVersionConstraintException' => $vendorDir . '/phar-io/version/src/exceptions/UnsupportedVersionConstraintException.php',
|
|
||||||
'PharIo\\Version\\Version' => $vendorDir . '/phar-io/version/src/Version.php',
|
|
||||||
'PharIo\\Version\\VersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/VersionConstraint.php',
|
|
||||||
'PharIo\\Version\\VersionConstraintParser' => $vendorDir . '/phar-io/version/src/VersionConstraintParser.php',
|
|
||||||
'PharIo\\Version\\VersionConstraintValue' => $vendorDir . '/phar-io/version/src/VersionConstraintValue.php',
|
|
||||||
'PharIo\\Version\\VersionNumber' => $vendorDir . '/phar-io/version/src/VersionNumber.php',
|
|
||||||
'SebastianBergmann\\CliParser\\AmbiguousOptionException' => $vendorDir . '/sebastian/cli-parser/src/exceptions/AmbiguousOptionException.php',
|
|
||||||
'SebastianBergmann\\CliParser\\Exception' => $vendorDir . '/sebastian/cli-parser/src/exceptions/Exception.php',
|
|
||||||
'SebastianBergmann\\CliParser\\OptionDoesNotAllowArgumentException' => $vendorDir . '/sebastian/cli-parser/src/exceptions/OptionDoesNotAllowArgumentException.php',
|
|
||||||
'SebastianBergmann\\CliParser\\Parser' => $vendorDir . '/sebastian/cli-parser/src/Parser.php',
|
|
||||||
'SebastianBergmann\\CliParser\\RequiredOptionArgumentMissingException' => $vendorDir . '/sebastian/cli-parser/src/exceptions/RequiredOptionArgumentMissingException.php',
|
|
||||||
'SebastianBergmann\\CliParser\\UnknownOptionException' => $vendorDir . '/sebastian/cli-parser/src/exceptions/UnknownOptionException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\BranchAndPathCoverageNotSupportedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/BranchAndPathCoverageNotSupportedException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\CodeCoverage' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\DeadCodeDetectionNotSupportedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/DeadCodeDetectionNotSupportedException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Driver.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\PathExistsButIsNotDirectoryException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/PathExistsButIsNotDirectoryException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\PcovDriver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/PcovDriver.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\PcovNotAvailableException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/PcovNotAvailableException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\PhpdbgDriver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/PhpdbgDriver.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\PhpdbgNotAvailableException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/PhpdbgNotAvailableException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\Selector' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Selector.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\WriteOperationFailedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/WriteOperationFailedException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\WrongXdebugVersionException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/WrongXdebugVersionException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug2Driver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Xdebug2Driver.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug2NotEnabledException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/Xdebug2NotEnabledException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug3Driver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Xdebug3Driver.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug3NotEnabledException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/Xdebug3NotEnabledException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\XdebugNotAvailableException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/XdebugNotAvailableException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Exception' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/Exception.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Filter' => $vendorDir . '/phpunit/php-code-coverage/src/Filter.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\InvalidArgumentException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\NoCodeCoverageDriverAvailableException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/NoCodeCoverageDriverAvailableException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\NoCodeCoverageDriverWithPathCoverageSupportAvailableException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/NoCodeCoverageDriverWithPathCoverageSupportAvailableException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Node\\AbstractNode' => $vendorDir . '/phpunit/php-code-coverage/src/Node/AbstractNode.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Node\\Builder' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Builder.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Node\\CrapIndex' => $vendorDir . '/phpunit/php-code-coverage/src/Node/CrapIndex.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Node\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Directory.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Node\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Node/File.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Iterator.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\ParserException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/ParserException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\ProcessedCodeCoverageData' => $vendorDir . '/phpunit/php-code-coverage/src/ProcessedCodeCoverageData.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\RawCodeCoverageData' => $vendorDir . '/phpunit/php-code-coverage/src/RawCodeCoverageData.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\ReflectionException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/ReflectionException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\ReportAlreadyFinalizedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/ReportAlreadyFinalizedException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Clover' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Clover.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Cobertura' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Cobertura.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Crap4j' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Crap4j.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Dashboard' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Facade.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Renderer' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\PHP' => $vendorDir . '/phpunit/php-code-coverage/src/Report/PHP.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Text' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Text.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\BuildInformation' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Coverage' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Coverage.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Directory.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Facade.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/File.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Method' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Method.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Node' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Node.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Project' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Project.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Report' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Report.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Source' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Source.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Tests' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Tests.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\StaticAnalysisCacheNotConfiguredException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/StaticAnalysisCacheNotConfiguredException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CacheWarmer' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/CacheWarmer.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CachingFileAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CodeUnitFindingVisitor' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/CodeUnitFindingVisitor.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ExecutableLinesFindingVisitor' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/ExecutableLinesFindingVisitor.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\FileAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/FileAnalyser.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\IgnoredLinesFindingVisitor' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/IgnoredLinesFindingVisitor.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ParsingFileAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/ParsingFileAnalyser.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\TestIdMissingException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/TestIdMissingException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\UnintentionallyCoveredCodeException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Util\\DirectoryCouldNotBeCreatedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/DirectoryCouldNotBeCreatedException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Util\\Filesystem' => $vendorDir . '/phpunit/php-code-coverage/src/Util/Filesystem.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Util\\Percentage' => $vendorDir . '/phpunit/php-code-coverage/src/Util/Percentage.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Version' => $vendorDir . '/phpunit/php-code-coverage/src/Version.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\XmlException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/XmlException.php',
|
|
||||||
'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => $vendorDir . '/sebastian/code-unit-reverse-lookup/src/Wizard.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\ClassMethodUnit' => $vendorDir . '/sebastian/code-unit/src/ClassMethodUnit.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\ClassUnit' => $vendorDir . '/sebastian/code-unit/src/ClassUnit.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\CodeUnit' => $vendorDir . '/sebastian/code-unit/src/CodeUnit.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\CodeUnitCollection' => $vendorDir . '/sebastian/code-unit/src/CodeUnitCollection.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\CodeUnitCollectionIterator' => $vendorDir . '/sebastian/code-unit/src/CodeUnitCollectionIterator.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\Exception' => $vendorDir . '/sebastian/code-unit/src/exceptions/Exception.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\FunctionUnit' => $vendorDir . '/sebastian/code-unit/src/FunctionUnit.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\InterfaceMethodUnit' => $vendorDir . '/sebastian/code-unit/src/InterfaceMethodUnit.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\InterfaceUnit' => $vendorDir . '/sebastian/code-unit/src/InterfaceUnit.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\InvalidCodeUnitException' => $vendorDir . '/sebastian/code-unit/src/exceptions/InvalidCodeUnitException.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\Mapper' => $vendorDir . '/sebastian/code-unit/src/Mapper.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\NoTraitException' => $vendorDir . '/sebastian/code-unit/src/exceptions/NoTraitException.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\ReflectionException' => $vendorDir . '/sebastian/code-unit/src/exceptions/ReflectionException.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\TraitMethodUnit' => $vendorDir . '/sebastian/code-unit/src/TraitMethodUnit.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\TraitUnit' => $vendorDir . '/sebastian/code-unit/src/TraitUnit.php',
|
|
||||||
'SebastianBergmann\\Comparator\\ArrayComparator' => $vendorDir . '/sebastian/comparator/src/ArrayComparator.php',
|
|
||||||
'SebastianBergmann\\Comparator\\Comparator' => $vendorDir . '/sebastian/comparator/src/Comparator.php',
|
|
||||||
'SebastianBergmann\\Comparator\\ComparisonFailure' => $vendorDir . '/sebastian/comparator/src/ComparisonFailure.php',
|
|
||||||
'SebastianBergmann\\Comparator\\DOMNodeComparator' => $vendorDir . '/sebastian/comparator/src/DOMNodeComparator.php',
|
|
||||||
'SebastianBergmann\\Comparator\\DateTimeComparator' => $vendorDir . '/sebastian/comparator/src/DateTimeComparator.php',
|
|
||||||
'SebastianBergmann\\Comparator\\DoubleComparator' => $vendorDir . '/sebastian/comparator/src/DoubleComparator.php',
|
|
||||||
'SebastianBergmann\\Comparator\\Exception' => $vendorDir . '/sebastian/comparator/src/exceptions/Exception.php',
|
|
||||||
'SebastianBergmann\\Comparator\\ExceptionComparator' => $vendorDir . '/sebastian/comparator/src/ExceptionComparator.php',
|
|
||||||
'SebastianBergmann\\Comparator\\Factory' => $vendorDir . '/sebastian/comparator/src/Factory.php',
|
|
||||||
'SebastianBergmann\\Comparator\\MockObjectComparator' => $vendorDir . '/sebastian/comparator/src/MockObjectComparator.php',
|
|
||||||
'SebastianBergmann\\Comparator\\NumericComparator' => $vendorDir . '/sebastian/comparator/src/NumericComparator.php',
|
|
||||||
'SebastianBergmann\\Comparator\\ObjectComparator' => $vendorDir . '/sebastian/comparator/src/ObjectComparator.php',
|
|
||||||
'SebastianBergmann\\Comparator\\ResourceComparator' => $vendorDir . '/sebastian/comparator/src/ResourceComparator.php',
|
|
||||||
'SebastianBergmann\\Comparator\\RuntimeException' => $vendorDir . '/sebastian/comparator/src/exceptions/RuntimeException.php',
|
|
||||||
'SebastianBergmann\\Comparator\\ScalarComparator' => $vendorDir . '/sebastian/comparator/src/ScalarComparator.php',
|
|
||||||
'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => $vendorDir . '/sebastian/comparator/src/SplObjectStorageComparator.php',
|
|
||||||
'SebastianBergmann\\Comparator\\TypeComparator' => $vendorDir . '/sebastian/comparator/src/TypeComparator.php',
|
|
||||||
'SebastianBergmann\\Complexity\\Calculator' => $vendorDir . '/sebastian/complexity/src/Calculator.php',
|
|
||||||
'SebastianBergmann\\Complexity\\Complexity' => $vendorDir . '/sebastian/complexity/src/Complexity/Complexity.php',
|
|
||||||
'SebastianBergmann\\Complexity\\ComplexityCalculatingVisitor' => $vendorDir . '/sebastian/complexity/src/Visitor/ComplexityCalculatingVisitor.php',
|
|
||||||
'SebastianBergmann\\Complexity\\ComplexityCollection' => $vendorDir . '/sebastian/complexity/src/Complexity/ComplexityCollection.php',
|
|
||||||
'SebastianBergmann\\Complexity\\ComplexityCollectionIterator' => $vendorDir . '/sebastian/complexity/src/Complexity/ComplexityCollectionIterator.php',
|
|
||||||
'SebastianBergmann\\Complexity\\CyclomaticComplexityCalculatingVisitor' => $vendorDir . '/sebastian/complexity/src/Visitor/CyclomaticComplexityCalculatingVisitor.php',
|
|
||||||
'SebastianBergmann\\Complexity\\Exception' => $vendorDir . '/sebastian/complexity/src/Exception/Exception.php',
|
|
||||||
'SebastianBergmann\\Complexity\\RuntimeException' => $vendorDir . '/sebastian/complexity/src/Exception/RuntimeException.php',
|
|
||||||
'SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php',
|
|
||||||
'SebastianBergmann\\Diff\\ConfigurationException' => $vendorDir . '/sebastian/diff/src/Exception/ConfigurationException.php',
|
|
||||||
'SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php',
|
|
||||||
'SebastianBergmann\\Diff\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php',
|
|
||||||
'SebastianBergmann\\Diff\\Exception' => $vendorDir . '/sebastian/diff/src/Exception/Exception.php',
|
|
||||||
'SebastianBergmann\\Diff\\InvalidArgumentException' => $vendorDir . '/sebastian/diff/src/Exception/InvalidArgumentException.php',
|
|
||||||
'SebastianBergmann\\Diff\\Line' => $vendorDir . '/sebastian/diff/src/Line.php',
|
|
||||||
'SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php',
|
|
||||||
'SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php',
|
|
||||||
'SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php',
|
|
||||||
'SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php',
|
|
||||||
'SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => $vendorDir . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php',
|
|
||||||
'SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php',
|
|
||||||
'SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php',
|
|
||||||
'SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php',
|
|
||||||
'SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php',
|
|
||||||
'SebastianBergmann\\Environment\\Console' => $vendorDir . '/sebastian/environment/src/Console.php',
|
|
||||||
'SebastianBergmann\\Environment\\OperatingSystem' => $vendorDir . '/sebastian/environment/src/OperatingSystem.php',
|
|
||||||
'SebastianBergmann\\Environment\\Runtime' => $vendorDir . '/sebastian/environment/src/Runtime.php',
|
|
||||||
'SebastianBergmann\\Exporter\\Exporter' => $vendorDir . '/sebastian/exporter/src/Exporter.php',
|
|
||||||
'SebastianBergmann\\FileIterator\\Facade' => $vendorDir . '/phpunit/php-file-iterator/src/Facade.php',
|
|
||||||
'SebastianBergmann\\FileIterator\\Factory' => $vendorDir . '/phpunit/php-file-iterator/src/Factory.php',
|
|
||||||
'SebastianBergmann\\FileIterator\\Iterator' => $vendorDir . '/phpunit/php-file-iterator/src/Iterator.php',
|
|
||||||
'SebastianBergmann\\GlobalState\\CodeExporter' => $vendorDir . '/sebastian/global-state/src/CodeExporter.php',
|
|
||||||
'SebastianBergmann\\GlobalState\\Exception' => $vendorDir . '/sebastian/global-state/src/exceptions/Exception.php',
|
|
||||||
'SebastianBergmann\\GlobalState\\ExcludeList' => $vendorDir . '/sebastian/global-state/src/ExcludeList.php',
|
|
||||||
'SebastianBergmann\\GlobalState\\Restorer' => $vendorDir . '/sebastian/global-state/src/Restorer.php',
|
|
||||||
'SebastianBergmann\\GlobalState\\RuntimeException' => $vendorDir . '/sebastian/global-state/src/exceptions/RuntimeException.php',
|
|
||||||
'SebastianBergmann\\GlobalState\\Snapshot' => $vendorDir . '/sebastian/global-state/src/Snapshot.php',
|
|
||||||
'SebastianBergmann\\Invoker\\Exception' => $vendorDir . '/phpunit/php-invoker/src/exceptions/Exception.php',
|
|
||||||
'SebastianBergmann\\Invoker\\Invoker' => $vendorDir . '/phpunit/php-invoker/src/Invoker.php',
|
|
||||||
'SebastianBergmann\\Invoker\\ProcessControlExtensionNotLoadedException' => $vendorDir . '/phpunit/php-invoker/src/exceptions/ProcessControlExtensionNotLoadedException.php',
|
|
||||||
'SebastianBergmann\\Invoker\\TimeoutException' => $vendorDir . '/phpunit/php-invoker/src/exceptions/TimeoutException.php',
|
|
||||||
'SebastianBergmann\\LinesOfCode\\Counter' => $vendorDir . '/sebastian/lines-of-code/src/Counter.php',
|
|
||||||
'SebastianBergmann\\LinesOfCode\\Exception' => $vendorDir . '/sebastian/lines-of-code/src/Exception/Exception.php',
|
|
||||||
'SebastianBergmann\\LinesOfCode\\IllogicalValuesException' => $vendorDir . '/sebastian/lines-of-code/src/Exception/IllogicalValuesException.php',
|
|
||||||
'SebastianBergmann\\LinesOfCode\\LineCountingVisitor' => $vendorDir . '/sebastian/lines-of-code/src/LineCountingVisitor.php',
|
|
||||||
'SebastianBergmann\\LinesOfCode\\LinesOfCode' => $vendorDir . '/sebastian/lines-of-code/src/LinesOfCode.php',
|
|
||||||
'SebastianBergmann\\LinesOfCode\\NegativeValueException' => $vendorDir . '/sebastian/lines-of-code/src/Exception/NegativeValueException.php',
|
|
||||||
'SebastianBergmann\\LinesOfCode\\RuntimeException' => $vendorDir . '/sebastian/lines-of-code/src/Exception/RuntimeException.php',
|
|
||||||
'SebastianBergmann\\ObjectEnumerator\\Enumerator' => $vendorDir . '/sebastian/object-enumerator/src/Enumerator.php',
|
|
||||||
'SebastianBergmann\\ObjectEnumerator\\Exception' => $vendorDir . '/sebastian/object-enumerator/src/Exception.php',
|
|
||||||
'SebastianBergmann\\ObjectEnumerator\\InvalidArgumentException' => $vendorDir . '/sebastian/object-enumerator/src/InvalidArgumentException.php',
|
|
||||||
'SebastianBergmann\\ObjectReflector\\Exception' => $vendorDir . '/sebastian/object-reflector/src/Exception.php',
|
|
||||||
'SebastianBergmann\\ObjectReflector\\InvalidArgumentException' => $vendorDir . '/sebastian/object-reflector/src/InvalidArgumentException.php',
|
|
||||||
'SebastianBergmann\\ObjectReflector\\ObjectReflector' => $vendorDir . '/sebastian/object-reflector/src/ObjectReflector.php',
|
|
||||||
'SebastianBergmann\\RecursionContext\\Context' => $vendorDir . '/sebastian/recursion-context/src/Context.php',
|
|
||||||
'SebastianBergmann\\RecursionContext\\Exception' => $vendorDir . '/sebastian/recursion-context/src/Exception.php',
|
|
||||||
'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => $vendorDir . '/sebastian/recursion-context/src/InvalidArgumentException.php',
|
|
||||||
'SebastianBergmann\\ResourceOperations\\ResourceOperations' => $vendorDir . '/sebastian/resource-operations/src/ResourceOperations.php',
|
|
||||||
'SebastianBergmann\\Template\\Exception' => $vendorDir . '/phpunit/php-text-template/src/exceptions/Exception.php',
|
|
||||||
'SebastianBergmann\\Template\\InvalidArgumentException' => $vendorDir . '/phpunit/php-text-template/src/exceptions/InvalidArgumentException.php',
|
|
||||||
'SebastianBergmann\\Template\\RuntimeException' => $vendorDir . '/phpunit/php-text-template/src/exceptions/RuntimeException.php',
|
|
||||||
'SebastianBergmann\\Template\\Template' => $vendorDir . '/phpunit/php-text-template/src/Template.php',
|
|
||||||
'SebastianBergmann\\Timer\\Duration' => $vendorDir . '/phpunit/php-timer/src/Duration.php',
|
|
||||||
'SebastianBergmann\\Timer\\Exception' => $vendorDir . '/phpunit/php-timer/src/exceptions/Exception.php',
|
|
||||||
'SebastianBergmann\\Timer\\NoActiveTimerException' => $vendorDir . '/phpunit/php-timer/src/exceptions/NoActiveTimerException.php',
|
|
||||||
'SebastianBergmann\\Timer\\ResourceUsageFormatter' => $vendorDir . '/phpunit/php-timer/src/ResourceUsageFormatter.php',
|
|
||||||
'SebastianBergmann\\Timer\\TimeSinceStartOfRequestNotAvailableException' => $vendorDir . '/phpunit/php-timer/src/exceptions/TimeSinceStartOfRequestNotAvailableException.php',
|
|
||||||
'SebastianBergmann\\Timer\\Timer' => $vendorDir . '/phpunit/php-timer/src/Timer.php',
|
|
||||||
'SebastianBergmann\\Type\\CallableType' => $vendorDir . '/sebastian/type/src/type/CallableType.php',
|
|
||||||
'SebastianBergmann\\Type\\Exception' => $vendorDir . '/sebastian/type/src/exception/Exception.php',
|
|
||||||
'SebastianBergmann\\Type\\FalseType' => $vendorDir . '/sebastian/type/src/type/FalseType.php',
|
|
||||||
'SebastianBergmann\\Type\\GenericObjectType' => $vendorDir . '/sebastian/type/src/type/GenericObjectType.php',
|
|
||||||
'SebastianBergmann\\Type\\IntersectionType' => $vendorDir . '/sebastian/type/src/type/IntersectionType.php',
|
|
||||||
'SebastianBergmann\\Type\\IterableType' => $vendorDir . '/sebastian/type/src/type/IterableType.php',
|
|
||||||
'SebastianBergmann\\Type\\MixedType' => $vendorDir . '/sebastian/type/src/type/MixedType.php',
|
|
||||||
'SebastianBergmann\\Type\\NeverType' => $vendorDir . '/sebastian/type/src/type/NeverType.php',
|
|
||||||
'SebastianBergmann\\Type\\NullType' => $vendorDir . '/sebastian/type/src/type/NullType.php',
|
|
||||||
'SebastianBergmann\\Type\\ObjectType' => $vendorDir . '/sebastian/type/src/type/ObjectType.php',
|
|
||||||
'SebastianBergmann\\Type\\ReflectionMapper' => $vendorDir . '/sebastian/type/src/ReflectionMapper.php',
|
|
||||||
'SebastianBergmann\\Type\\RuntimeException' => $vendorDir . '/sebastian/type/src/exception/RuntimeException.php',
|
|
||||||
'SebastianBergmann\\Type\\SimpleType' => $vendorDir . '/sebastian/type/src/type/SimpleType.php',
|
|
||||||
'SebastianBergmann\\Type\\StaticType' => $vendorDir . '/sebastian/type/src/type/StaticType.php',
|
|
||||||
'SebastianBergmann\\Type\\Type' => $vendorDir . '/sebastian/type/src/type/Type.php',
|
|
||||||
'SebastianBergmann\\Type\\TypeName' => $vendorDir . '/sebastian/type/src/TypeName.php',
|
|
||||||
'SebastianBergmann\\Type\\UnionType' => $vendorDir . '/sebastian/type/src/type/UnionType.php',
|
|
||||||
'SebastianBergmann\\Type\\UnknownType' => $vendorDir . '/sebastian/type/src/type/UnknownType.php',
|
|
||||||
'SebastianBergmann\\Type\\VoidType' => $vendorDir . '/sebastian/type/src/type/VoidType.php',
|
|
||||||
'SebastianBergmann\\Version' => $vendorDir . '/sebastian/version/src/Version.php',
|
|
||||||
'TheSeer\\Tokenizer\\Exception' => $vendorDir . '/theseer/tokenizer/src/Exception.php',
|
|
||||||
'TheSeer\\Tokenizer\\NamespaceUri' => $vendorDir . '/theseer/tokenizer/src/NamespaceUri.php',
|
|
||||||
'TheSeer\\Tokenizer\\NamespaceUriException' => $vendorDir . '/theseer/tokenizer/src/NamespaceUriException.php',
|
|
||||||
'TheSeer\\Tokenizer\\Token' => $vendorDir . '/theseer/tokenizer/src/Token.php',
|
|
||||||
'TheSeer\\Tokenizer\\TokenCollection' => $vendorDir . '/theseer/tokenizer/src/TokenCollection.php',
|
|
||||||
'TheSeer\\Tokenizer\\TokenCollectionException' => $vendorDir . '/theseer/tokenizer/src/TokenCollectionException.php',
|
|
||||||
'TheSeer\\Tokenizer\\Tokenizer' => $vendorDir . '/theseer/tokenizer/src/Tokenizer.php',
|
|
||||||
'TheSeer\\Tokenizer\\XMLSerializer' => $vendorDir . '/theseer/tokenizer/src/XMLSerializer.php',
|
|
||||||
);
|
|
||||||
11
vendor/composer/autoload_files.php
vendored
11
vendor/composer/autoload_files.php
vendored
@@ -1,11 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// autoload_files.php @generated by Composer
|
|
||||||
|
|
||||||
$vendorDir = dirname(dirname(__FILE__));
|
|
||||||
$baseDir = dirname($vendorDir);
|
|
||||||
|
|
||||||
return array(
|
|
||||||
'ec07570ca5a812141189b1fa81503674' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert/Functions.php',
|
|
||||||
'6124b4c8570aa390c21fafd04a26c69f' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',
|
|
||||||
);
|
|
||||||
9
vendor/composer/autoload_namespaces.php
vendored
9
vendor/composer/autoload_namespaces.php
vendored
@@ -1,9 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// autoload_namespaces.php @generated by Composer
|
|
||||||
|
|
||||||
$vendorDir = dirname(dirname(__FILE__));
|
|
||||||
$baseDir = dirname($vendorDir);
|
|
||||||
|
|
||||||
return array(
|
|
||||||
);
|
|
||||||
17
vendor/composer/autoload_psr4.php
vendored
17
vendor/composer/autoload_psr4.php
vendored
@@ -1,17 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// autoload_psr4.php @generated by Composer
|
|
||||||
|
|
||||||
$vendorDir = dirname(dirname(__FILE__));
|
|
||||||
$baseDir = dirname($vendorDir);
|
|
||||||
|
|
||||||
return array(
|
|
||||||
'phpDocumentor\\Reflection\\' => array($vendorDir . '/phpdocumentor/reflection-common/src', $vendorDir . '/phpdocumentor/reflection-docblock/src', $vendorDir . '/phpdocumentor/type-resolver/src'),
|
|
||||||
'gullevek\\dotEnv\\' => array($vendorDir . '/gullevek/dotenv/src'),
|
|
||||||
'gullevek\\AmazonIncentives\\' => array($baseDir . '/src'),
|
|
||||||
'Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'),
|
|
||||||
'Prophecy\\' => array($vendorDir . '/phpspec/prophecy/src/Prophecy'),
|
|
||||||
'PhpParser\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'),
|
|
||||||
'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'),
|
|
||||||
'DeepCopy\\' => array($vendorDir . '/myclabs/deep-copy/src/DeepCopy'),
|
|
||||||
);
|
|
||||||
75
vendor/composer/autoload_real.php
vendored
75
vendor/composer/autoload_real.php
vendored
@@ -1,75 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// autoload_real.php @generated by Composer
|
|
||||||
|
|
||||||
class ComposerAutoloaderInit0c8f6bec90a6d60040a922f19a1f0e64
|
|
||||||
{
|
|
||||||
private static $loader;
|
|
||||||
|
|
||||||
public static function loadClassLoader($class)
|
|
||||||
{
|
|
||||||
if ('Composer\Autoload\ClassLoader' === $class) {
|
|
||||||
require __DIR__ . '/ClassLoader.php';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return \Composer\Autoload\ClassLoader
|
|
||||||
*/
|
|
||||||
public static function getLoader()
|
|
||||||
{
|
|
||||||
if (null !== self::$loader) {
|
|
||||||
return self::$loader;
|
|
||||||
}
|
|
||||||
|
|
||||||
require __DIR__ . '/platform_check.php';
|
|
||||||
|
|
||||||
spl_autoload_register(array('ComposerAutoloaderInit0c8f6bec90a6d60040a922f19a1f0e64', 'loadClassLoader'), true, true);
|
|
||||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
|
|
||||||
spl_autoload_unregister(array('ComposerAutoloaderInit0c8f6bec90a6d60040a922f19a1f0e64', 'loadClassLoader'));
|
|
||||||
|
|
||||||
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
|
||||||
if ($useStaticLoader) {
|
|
||||||
require __DIR__ . '/autoload_static.php';
|
|
||||||
|
|
||||||
call_user_func(\Composer\Autoload\ComposerStaticInit0c8f6bec90a6d60040a922f19a1f0e64::getInitializer($loader));
|
|
||||||
} else {
|
|
||||||
$map = require __DIR__ . '/autoload_namespaces.php';
|
|
||||||
foreach ($map as $namespace => $path) {
|
|
||||||
$loader->set($namespace, $path);
|
|
||||||
}
|
|
||||||
|
|
||||||
$map = require __DIR__ . '/autoload_psr4.php';
|
|
||||||
foreach ($map as $namespace => $path) {
|
|
||||||
$loader->setPsr4($namespace, $path);
|
|
||||||
}
|
|
||||||
|
|
||||||
$classMap = require __DIR__ . '/autoload_classmap.php';
|
|
||||||
if ($classMap) {
|
|
||||||
$loader->addClassMap($classMap);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$loader->register(true);
|
|
||||||
|
|
||||||
if ($useStaticLoader) {
|
|
||||||
$includeFiles = Composer\Autoload\ComposerStaticInit0c8f6bec90a6d60040a922f19a1f0e64::$files;
|
|
||||||
} else {
|
|
||||||
$includeFiles = require __DIR__ . '/autoload_files.php';
|
|
||||||
}
|
|
||||||
foreach ($includeFiles as $fileIdentifier => $file) {
|
|
||||||
composerRequire0c8f6bec90a6d60040a922f19a1f0e64($fileIdentifier, $file);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $loader;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function composerRequire0c8f6bec90a6d60040a922f19a1f0e64($fileIdentifier, $file)
|
|
||||||
{
|
|
||||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
|
||||||
require $file;
|
|
||||||
|
|
||||||
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
715
vendor/composer/autoload_static.php
vendored
715
vendor/composer/autoload_static.php
vendored
@@ -1,715 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// autoload_static.php @generated by Composer
|
|
||||||
|
|
||||||
namespace Composer\Autoload;
|
|
||||||
|
|
||||||
class ComposerStaticInit0c8f6bec90a6d60040a922f19a1f0e64
|
|
||||||
{
|
|
||||||
public static $files = array (
|
|
||||||
'ec07570ca5a812141189b1fa81503674' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Assert/Functions.php',
|
|
||||||
'6124b4c8570aa390c21fafd04a26c69f' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',
|
|
||||||
);
|
|
||||||
|
|
||||||
public static $prefixLengthsPsr4 = array (
|
|
||||||
'p' =>
|
|
||||||
array (
|
|
||||||
'phpDocumentor\\Reflection\\' => 25,
|
|
||||||
),
|
|
||||||
'g' =>
|
|
||||||
array (
|
|
||||||
'gullevek\\dotEnv\\' => 16,
|
|
||||||
'gullevek\\AmazonIncentives\\' => 26,
|
|
||||||
),
|
|
||||||
'W' =>
|
|
||||||
array (
|
|
||||||
'Webmozart\\Assert\\' => 17,
|
|
||||||
),
|
|
||||||
'P' =>
|
|
||||||
array (
|
|
||||||
'Prophecy\\' => 9,
|
|
||||||
'PhpParser\\' => 10,
|
|
||||||
),
|
|
||||||
'D' =>
|
|
||||||
array (
|
|
||||||
'Doctrine\\Instantiator\\' => 22,
|
|
||||||
'DeepCopy\\' => 9,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
public static $prefixDirsPsr4 = array (
|
|
||||||
'phpDocumentor\\Reflection\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src',
|
|
||||||
1 => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src',
|
|
||||||
2 => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src',
|
|
||||||
),
|
|
||||||
'gullevek\\dotEnv\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/..' . '/gullevek/dotenv/src',
|
|
||||||
),
|
|
||||||
'gullevek\\AmazonIncentives\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/../..' . '/src',
|
|
||||||
),
|
|
||||||
'Webmozart\\Assert\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/..' . '/webmozart/assert/src',
|
|
||||||
),
|
|
||||||
'Prophecy\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy',
|
|
||||||
),
|
|
||||||
'PhpParser\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser',
|
|
||||||
),
|
|
||||||
'Doctrine\\Instantiator\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator',
|
|
||||||
),
|
|
||||||
'DeepCopy\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy',
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
public static $classMap = array (
|
|
||||||
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
|
|
||||||
'DG\\BypassFinals' => __DIR__ . '/..' . '/dg/bypass-finals/src/BypassFinals.php',
|
|
||||||
'PHPUnit\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Exception.php',
|
|
||||||
'PHPUnit\\Framework\\ActualValueIsNotAnObjectException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/ActualValueIsNotAnObjectException.php',
|
|
||||||
'PHPUnit\\Framework\\Assert' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Assert.php',
|
|
||||||
'PHPUnit\\Framework\\AssertionFailedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/AssertionFailedError.php',
|
|
||||||
'PHPUnit\\Framework\\CodeCoverageException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/CodeCoverageException.php',
|
|
||||||
'PHPUnit\\Framework\\ComparisonMethodDoesNotAcceptParameterTypeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotAcceptParameterTypeException.php',
|
|
||||||
'PHPUnit\\Framework\\ComparisonMethodDoesNotDeclareBoolReturnTypeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotDeclareBoolReturnTypeException.php',
|
|
||||||
'PHPUnit\\Framework\\ComparisonMethodDoesNotDeclareExactlyOneParameterException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotDeclareExactlyOneParameterException.php',
|
|
||||||
'PHPUnit\\Framework\\ComparisonMethodDoesNotDeclareParameterTypeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotDeclareParameterTypeException.php',
|
|
||||||
'PHPUnit\\Framework\\ComparisonMethodDoesNotExistException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotExistException.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\ArrayHasKey' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Traversable/ArrayHasKey.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\BinaryOperator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Operator/BinaryOperator.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\Callback' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Callback.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\ClassHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Object/ClassHasAttribute.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\ClassHasStaticAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Object/ClassHasStaticAttribute.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\Constraint' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Constraint.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\Count' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/Count.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\DirectoryExists' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Filesystem/DirectoryExists.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Exception/Exception.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\ExceptionCode' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Exception/ExceptionCode.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\ExceptionMessage' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Exception/ExceptionMessage.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\ExceptionMessageRegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Exception/ExceptionMessageRegularExpression.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\FileExists' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Filesystem/FileExists.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\GreaterThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/GreaterThan.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsAnything' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsEmpty' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/IsEmpty.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsEqual' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqual.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsEqualCanonicalizing' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqualCanonicalizing.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsEqualIgnoringCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqualIgnoringCase.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsEqualWithDelta' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqualWithDelta.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsFalse' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Boolean/IsFalse.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsFinite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Math/IsFinite.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsIdentical' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsInfinite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Math/IsInfinite.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsInstanceOf' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Type/IsInstanceOf.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsJson' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/String/IsJson.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsNan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Math/IsNan.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsNull' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Type/IsNull.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsReadable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Filesystem/IsReadable.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsTrue' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Boolean/IsTrue.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsType' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Type/IsType.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\IsWritable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Filesystem/IsWritable.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\JsonMatches' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\JsonMatchesErrorMessageProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\LessThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/LessThan.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\LogicalAnd' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalAnd.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\LogicalNot' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalNot.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\LogicalOr' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalOr.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\LogicalXor' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalXor.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\ObjectEquals' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectEquals.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\ObjectHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectHasAttribute.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\Operator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Operator/Operator.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\RegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/String/RegularExpression.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\SameSize' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/SameSize.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\StringContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/String/StringContains.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\StringEndsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/String/StringEndsWith.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\StringMatchesFormatDescription' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/String/StringMatchesFormatDescription.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\StringStartsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/String/StringStartsWith.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\TraversableContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContains.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\TraversableContainsEqual' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContainsEqual.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\TraversableContainsIdentical' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContainsIdentical.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\TraversableContainsOnly' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContainsOnly.php',
|
|
||||||
'PHPUnit\\Framework\\Constraint\\UnaryOperator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Operator/UnaryOperator.php',
|
|
||||||
'PHPUnit\\Framework\\CoveredCodeNotExecutedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/CoveredCodeNotExecutedException.php',
|
|
||||||
'PHPUnit\\Framework\\DataProviderTestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/DataProviderTestSuite.php',
|
|
||||||
'PHPUnit\\Framework\\Error' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/Error.php',
|
|
||||||
'PHPUnit\\Framework\\ErrorTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ErrorTestCase.php',
|
|
||||||
'PHPUnit\\Framework\\Error\\Deprecated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Deprecated.php',
|
|
||||||
'PHPUnit\\Framework\\Error\\Error' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Error.php',
|
|
||||||
'PHPUnit\\Framework\\Error\\Notice' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Notice.php',
|
|
||||||
'PHPUnit\\Framework\\Error\\Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Warning.php',
|
|
||||||
'PHPUnit\\Framework\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/Exception.php',
|
|
||||||
'PHPUnit\\Framework\\ExceptionWrapper' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php',
|
|
||||||
'PHPUnit\\Framework\\ExecutionOrderDependency' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExecutionOrderDependency.php',
|
|
||||||
'PHPUnit\\Framework\\ExpectationFailedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/ExpectationFailedException.php',
|
|
||||||
'PHPUnit\\Framework\\IncompleteTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTest.php',
|
|
||||||
'PHPUnit\\Framework\\IncompleteTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php',
|
|
||||||
'PHPUnit\\Framework\\IncompleteTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/IncompleteTestError.php',
|
|
||||||
'PHPUnit\\Framework\\InvalidArgumentException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/InvalidArgumentException.php',
|
|
||||||
'PHPUnit\\Framework\\InvalidCoversTargetException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/InvalidCoversTargetException.php',
|
|
||||||
'PHPUnit\\Framework\\InvalidDataProviderException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/InvalidDataProviderException.php',
|
|
||||||
'PHPUnit\\Framework\\InvalidParameterGroupException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/InvalidParameterGroupException.php',
|
|
||||||
'PHPUnit\\Framework\\MissingCoversAnnotationException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/MissingCoversAnnotationException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Api' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Api/Api.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\BadMethodCallException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/BadMethodCallException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Builder\\Identity' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/Identity.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Builder\\InvocationStubber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationStubber.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/MethodNameMatch.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/ParametersMatch.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/Stub.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\CannotUseAddMethodsException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/CannotUseAddMethodsException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\CannotUseOnlyMethodsException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/CannotUseOnlyMethodsException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\ClassAlreadyExistsException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/ClassAlreadyExistsException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\ClassIsFinalException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/ClassIsFinalException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\ConfigurableMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/ConfigurableMethod.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\ConfigurableMethodsAlreadyInitializedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/ConfigurableMethodsAlreadyInitializedException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\DuplicateMethodException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/DuplicateMethodException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Generator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\IncompatibleReturnValueException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/IncompatibleReturnValueException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\InvalidMethodNameException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/InvalidMethodNameException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Invocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Invocation.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\InvocationHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/InvocationHandler.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MatchBuilderNotFoundException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/MatchBuilderNotFoundException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Matcher' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MatcherAlreadyRegisteredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/MatcherAlreadyRegisteredException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Method' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Api/Method.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MethodCannotBeConfiguredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/MethodCannotBeConfiguredException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MethodNameAlreadyConfiguredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/MethodNameAlreadyConfiguredException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MethodNameConstraint' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MethodNameConstraint.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MethodNameNotConfiguredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/MethodNameNotConfiguredException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MethodParametersAlreadyConfiguredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/MethodParametersAlreadyConfiguredException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MockBuilder' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MockClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockClass.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MockMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockMethod.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MockMethodSet' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockMethodSet.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MockObject' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockObject.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MockTrait' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockTrait.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\MockType' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockType.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\OriginalConstructorInvocationRequiredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/OriginalConstructorInvocationRequiredException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\ReflectionException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/ReflectionException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\ReturnValueNotConfiguredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/ReturnValueNotConfiguredException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Rule\\AnyInvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/AnyInvokedCount.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Rule\\AnyParameters' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/AnyParameters.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Rule\\ConsecutiveParameters' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/ConsecutiveParameters.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Rule\\InvocationOrder' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvocationOrder.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Rule\\InvokedAtIndex' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtIndex.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Rule\\InvokedAtLeastCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtLeastCount.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Rule\\InvokedAtLeastOnce' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtLeastOnce.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Rule\\InvokedAtMostCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtMostCount.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Rule\\InvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedCount.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Rule\\MethodName' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/MethodName.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Rule\\Parameters' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/Parameters.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Rule\\ParametersRule' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Rule/ParametersRule.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\RuntimeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/RuntimeException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\SoapExtensionNotAvailableException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/SoapExtensionNotAvailableException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Stub\\ConsecutiveCalls' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ConsecutiveCalls.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Stub\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/Exception.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnArgument' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnArgument.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnCallback' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnReference' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnReference.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnSelf' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnSelf.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnStub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnStub.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Stub\\ReturnValueMap' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnValueMap.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Stub\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/Stub.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\UnknownClassException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownClassException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\UnknownTraitException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTraitException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\UnknownTypeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTypeException.php',
|
|
||||||
'PHPUnit\\Framework\\MockObject\\Verifiable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Verifiable.php',
|
|
||||||
'PHPUnit\\Framework\\NoChildTestSuiteException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/NoChildTestSuiteException.php',
|
|
||||||
'PHPUnit\\Framework\\OutputError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/OutputError.php',
|
|
||||||
'PHPUnit\\Framework\\PHPTAssertionFailedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/PHPTAssertionFailedError.php',
|
|
||||||
'PHPUnit\\Framework\\Reorderable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Reorderable.php',
|
|
||||||
'PHPUnit\\Framework\\RiskyTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/RiskyTestError.php',
|
|
||||||
'PHPUnit\\Framework\\SelfDescribing' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SelfDescribing.php',
|
|
||||||
'PHPUnit\\Framework\\SkippedTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTest.php',
|
|
||||||
'PHPUnit\\Framework\\SkippedTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestCase.php',
|
|
||||||
'PHPUnit\\Framework\\SkippedTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/SkippedTestError.php',
|
|
||||||
'PHPUnit\\Framework\\SkippedTestSuiteError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/SkippedTestSuiteError.php',
|
|
||||||
'PHPUnit\\Framework\\SyntheticError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/SyntheticError.php',
|
|
||||||
'PHPUnit\\Framework\\SyntheticSkippedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/SyntheticSkippedError.php',
|
|
||||||
'PHPUnit\\Framework\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Test.php',
|
|
||||||
'PHPUnit\\Framework\\TestBuilder' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestBuilder.php',
|
|
||||||
'PHPUnit\\Framework\\TestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestCase.php',
|
|
||||||
'PHPUnit\\Framework\\TestFailure' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestFailure.php',
|
|
||||||
'PHPUnit\\Framework\\TestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestListener.php',
|
|
||||||
'PHPUnit\\Framework\\TestListenerDefaultImplementation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php',
|
|
||||||
'PHPUnit\\Framework\\TestResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestResult.php',
|
|
||||||
'PHPUnit\\Framework\\TestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuite.php',
|
|
||||||
'PHPUnit\\Framework\\TestSuiteIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuiteIterator.php',
|
|
||||||
'PHPUnit\\Framework\\UnintentionallyCoveredCodeError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/UnintentionallyCoveredCodeError.php',
|
|
||||||
'PHPUnit\\Framework\\Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/Warning.php',
|
|
||||||
'PHPUnit\\Framework\\WarningTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/WarningTestCase.php',
|
|
||||||
'PHPUnit\\Runner\\AfterIncompleteTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterIncompleteTestHook.php',
|
|
||||||
'PHPUnit\\Runner\\AfterLastTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterLastTestHook.php',
|
|
||||||
'PHPUnit\\Runner\\AfterRiskyTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterRiskyTestHook.php',
|
|
||||||
'PHPUnit\\Runner\\AfterSkippedTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterSkippedTestHook.php',
|
|
||||||
'PHPUnit\\Runner\\AfterSuccessfulTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterSuccessfulTestHook.php',
|
|
||||||
'PHPUnit\\Runner\\AfterTestErrorHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterTestErrorHook.php',
|
|
||||||
'PHPUnit\\Runner\\AfterTestFailureHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterTestFailureHook.php',
|
|
||||||
'PHPUnit\\Runner\\AfterTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterTestHook.php',
|
|
||||||
'PHPUnit\\Runner\\AfterTestWarningHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterTestWarningHook.php',
|
|
||||||
'PHPUnit\\Runner\\BaseTestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/BaseTestRunner.php',
|
|
||||||
'PHPUnit\\Runner\\BeforeFirstTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/BeforeFirstTestHook.php',
|
|
||||||
'PHPUnit\\Runner\\BeforeTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/BeforeTestHook.php',
|
|
||||||
'PHPUnit\\Runner\\DefaultTestResultCache' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/DefaultTestResultCache.php',
|
|
||||||
'PHPUnit\\Runner\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception.php',
|
|
||||||
'PHPUnit\\Runner\\Extension\\ExtensionHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Extension/ExtensionHandler.php',
|
|
||||||
'PHPUnit\\Runner\\Extension\\PharLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Extension/PharLoader.php',
|
|
||||||
'PHPUnit\\Runner\\Filter\\ExcludeGroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php',
|
|
||||||
'PHPUnit\\Runner\\Filter\\Factory' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Factory.php',
|
|
||||||
'PHPUnit\\Runner\\Filter\\GroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php',
|
|
||||||
'PHPUnit\\Runner\\Filter\\IncludeGroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php',
|
|
||||||
'PHPUnit\\Runner\\Filter\\NameFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php',
|
|
||||||
'PHPUnit\\Runner\\Hook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/Hook.php',
|
|
||||||
'PHPUnit\\Runner\\NullTestResultCache' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/NullTestResultCache.php',
|
|
||||||
'PHPUnit\\Runner\\PhptTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/PhptTestCase.php',
|
|
||||||
'PHPUnit\\Runner\\ResultCacheExtension' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/ResultCacheExtension.php',
|
|
||||||
'PHPUnit\\Runner\\StandardTestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php',
|
|
||||||
'PHPUnit\\Runner\\TestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/TestHook.php',
|
|
||||||
'PHPUnit\\Runner\\TestListenerAdapter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/TestListenerAdapter.php',
|
|
||||||
'PHPUnit\\Runner\\TestResultCache' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestResultCache.php',
|
|
||||||
'PHPUnit\\Runner\\TestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php',
|
|
||||||
'PHPUnit\\Runner\\TestSuiteSorter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestSuiteSorter.php',
|
|
||||||
'PHPUnit\\Runner\\Version' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Version.php',
|
|
||||||
'PHPUnit\\TextUI\\CliArguments\\Builder' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/CliArguments/Builder.php',
|
|
||||||
'PHPUnit\\TextUI\\CliArguments\\Configuration' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/CliArguments/Configuration.php',
|
|
||||||
'PHPUnit\\TextUI\\CliArguments\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/CliArguments/Exception.php',
|
|
||||||
'PHPUnit\\TextUI\\CliArguments\\Mapper' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/CliArguments/Mapper.php',
|
|
||||||
'PHPUnit\\TextUI\\Command' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Command.php',
|
|
||||||
'PHPUnit\\TextUI\\DefaultResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/DefaultResultPrinter.php',
|
|
||||||
'PHPUnit\\TextUI\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Exception/Exception.php',
|
|
||||||
'PHPUnit\\TextUI\\Help' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Help.php',
|
|
||||||
'PHPUnit\\TextUI\\ReflectionException' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Exception/ReflectionException.php',
|
|
||||||
'PHPUnit\\TextUI\\ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/ResultPrinter.php',
|
|
||||||
'PHPUnit\\TextUI\\RuntimeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Exception/RuntimeException.php',
|
|
||||||
'PHPUnit\\TextUI\\TestDirectoryNotFoundException' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Exception/TestDirectoryNotFoundException.php',
|
|
||||||
'PHPUnit\\TextUI\\TestFileNotFoundException' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Exception/TestFileNotFoundException.php',
|
|
||||||
'PHPUnit\\TextUI\\TestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/TestRunner.php',
|
|
||||||
'PHPUnit\\TextUI\\TestSuiteMapper' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/TestSuiteMapper.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\CodeCoverage' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/CodeCoverage.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\FilterMapper' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/FilterMapper.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Filter\\Directory' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Filter/Directory.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Filter\\DirectoryCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Filter/DirectoryCollection.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Filter\\DirectoryCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Filter/DirectoryCollectionIterator.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Clover' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Clover.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Cobertura' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Cobertura.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Crap4j' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Crap4j.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Html' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Html.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Php' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Php.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Text' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Text.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CodeCoverage\\Report\\Xml' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/Report/Xml.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Configuration' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Configuration.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Constant' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/Constant.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\ConstantCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/ConstantCollection.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\ConstantCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/ConstantCollectionIterator.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\ConvertLogTypes' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/ConvertLogTypes.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CoverageCloverToReport' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/CoverageCloverToReport.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CoverageCrap4jToReport' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/CoverageCrap4jToReport.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CoverageHtmlToReport' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/CoverageHtmlToReport.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CoveragePhpToReport' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/CoveragePhpToReport.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CoverageTextToReport' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/CoverageTextToReport.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\CoverageXmlToReport' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/CoverageXmlToReport.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Directory' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Filesystem/Directory.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\DirectoryCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Filesystem/DirectoryCollection.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\DirectoryCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Filesystem/DirectoryCollectionIterator.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Exception.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Extension' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHPUnit/Extension.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\ExtensionCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHPUnit/ExtensionCollection.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\ExtensionCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHPUnit/ExtensionCollectionIterator.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\File' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Filesystem/File.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\FileCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Filesystem/FileCollection.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\FileCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Filesystem/FileCollectionIterator.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Generator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Generator.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Group' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Group/Group.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\GroupCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Group/GroupCollection.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\GroupCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Group/GroupCollectionIterator.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Groups' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Group/Groups.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\IniSetting' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/IniSetting.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\IniSettingCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/IniSettingCollection.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\IniSettingCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/IniSettingCollectionIterator.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\IntroduceCoverageElement' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/IntroduceCoverageElement.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Loader' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Loader.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\LogToReportMigration' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/LogToReportMigration.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\Junit' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/Junit.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\Logging' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/Logging.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\TeamCity' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/TeamCity.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\TestDox\\Html' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/TestDox/Html.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\TestDox\\Text' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/TestDox/Text.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\TestDox\\Xml' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/TestDox/Xml.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Logging\\Text' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Logging/Text.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Migration' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/Migration.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\MigrationBuilder' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/MigrationBuilder.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\MigrationBuilderException' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/MigrationBuilderException.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\MigrationException' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/MigrationException.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Migrator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrator.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\MoveAttributesFromFilterWhitelistToCoverage' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveAttributesFromFilterWhitelistToCoverage.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\MoveAttributesFromRootToCoverage' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveAttributesFromRootToCoverage.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\MoveWhitelistDirectoriesToCoverage' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistDirectoriesToCoverage.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\MoveWhitelistExcludesToCoverage' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistExcludesToCoverage.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\PHPUnit' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHPUnit/PHPUnit.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Php' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/Php.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\PhpHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/PhpHandler.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\RemoveCacheTokensAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/RemoveCacheTokensAttribute.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\RemoveEmptyFilter' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/RemoveEmptyFilter.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\RemoveLogTypes' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/RemoveLogTypes.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\TestDirectory' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestDirectory.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\TestDirectoryCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestDirectoryCollection.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\TestDirectoryCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestDirectoryCollectionIterator.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\TestFile' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestFile.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\TestFileCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestFileCollection.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\TestFileCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestFileCollectionIterator.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\TestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestSuite.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\TestSuiteCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestSuiteCollection.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\TestSuiteCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/TestSuite/TestSuiteCollectionIterator.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\UpdateSchemaLocationTo93' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/UpdateSchemaLocationTo93.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\Variable' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/Variable.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\VariableCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/VariableCollection.php',
|
|
||||||
'PHPUnit\\TextUI\\XmlConfiguration\\VariableCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/VariableCollectionIterator.php',
|
|
||||||
'PHPUnit\\Util\\Annotation\\DocBlock' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Annotation/DocBlock.php',
|
|
||||||
'PHPUnit\\Util\\Annotation\\Registry' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Annotation/Registry.php',
|
|
||||||
'PHPUnit\\Util\\Blacklist' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Blacklist.php',
|
|
||||||
'PHPUnit\\Util\\Color' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Color.php',
|
|
||||||
'PHPUnit\\Util\\ErrorHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ErrorHandler.php',
|
|
||||||
'PHPUnit\\Util\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Exception.php',
|
|
||||||
'PHPUnit\\Util\\ExcludeList' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ExcludeList.php',
|
|
||||||
'PHPUnit\\Util\\FileLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/FileLoader.php',
|
|
||||||
'PHPUnit\\Util\\Filesystem' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filesystem.php',
|
|
||||||
'PHPUnit\\Util\\Filter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filter.php',
|
|
||||||
'PHPUnit\\Util\\GlobalState' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/GlobalState.php',
|
|
||||||
'PHPUnit\\Util\\InvalidDataSetException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/InvalidDataSetException.php',
|
|
||||||
'PHPUnit\\Util\\Json' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Json.php',
|
|
||||||
'PHPUnit\\Util\\Log\\JUnit' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/JUnit.php',
|
|
||||||
'PHPUnit\\Util\\Log\\TeamCity' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/TeamCity.php',
|
|
||||||
'PHPUnit\\Util\\PHP\\AbstractPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php',
|
|
||||||
'PHPUnit\\Util\\PHP\\DefaultPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php',
|
|
||||||
'PHPUnit\\Util\\PHP\\WindowsPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php',
|
|
||||||
'PHPUnit\\Util\\Printer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Printer.php',
|
|
||||||
'PHPUnit\\Util\\Reflection' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Reflection.php',
|
|
||||||
'PHPUnit\\Util\\RegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/RegularExpression.php',
|
|
||||||
'PHPUnit\\Util\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Test.php',
|
|
||||||
'PHPUnit\\Util\\TestDox\\CliTestDoxPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php',
|
|
||||||
'PHPUnit\\Util\\TestDox\\HtmlResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php',
|
|
||||||
'PHPUnit\\Util\\TestDox\\NamePrettifier' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php',
|
|
||||||
'PHPUnit\\Util\\TestDox\\ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php',
|
|
||||||
'PHPUnit\\Util\\TestDox\\TestDoxPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/TestDoxPrinter.php',
|
|
||||||
'PHPUnit\\Util\\TestDox\\TextResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/TextResultPrinter.php',
|
|
||||||
'PHPUnit\\Util\\TestDox\\XmlResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php',
|
|
||||||
'PHPUnit\\Util\\TextTestListRenderer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TextTestListRenderer.php',
|
|
||||||
'PHPUnit\\Util\\Type' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Type.php',
|
|
||||||
'PHPUnit\\Util\\VersionComparisonOperator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/VersionComparisonOperator.php',
|
|
||||||
'PHPUnit\\Util\\XdebugFilterScriptGenerator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/XdebugFilterScriptGenerator.php',
|
|
||||||
'PHPUnit\\Util\\Xml' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml.php',
|
|
||||||
'PHPUnit\\Util\\XmlTestListRenderer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/XmlTestListRenderer.php',
|
|
||||||
'PHPUnit\\Util\\Xml\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml/Exception.php',
|
|
||||||
'PHPUnit\\Util\\Xml\\FailedSchemaDetectionResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml/FailedSchemaDetectionResult.php',
|
|
||||||
'PHPUnit\\Util\\Xml\\Loader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml/Loader.php',
|
|
||||||
'PHPUnit\\Util\\Xml\\SchemaDetectionResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml/SchemaDetectionResult.php',
|
|
||||||
'PHPUnit\\Util\\Xml\\SchemaDetector' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml/SchemaDetector.php',
|
|
||||||
'PHPUnit\\Util\\Xml\\SchemaFinder' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml/SchemaFinder.php',
|
|
||||||
'PHPUnit\\Util\\Xml\\SnapshotNodeList' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml/SnapshotNodeList.php',
|
|
||||||
'PHPUnit\\Util\\Xml\\SuccessfulSchemaDetectionResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml/SuccessfulSchemaDetectionResult.php',
|
|
||||||
'PHPUnit\\Util\\Xml\\ValidationResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml/ValidationResult.php',
|
|
||||||
'PHPUnit\\Util\\Xml\\Validator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml/Validator.php',
|
|
||||||
'PharIo\\Manifest\\Application' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Application.php',
|
|
||||||
'PharIo\\Manifest\\ApplicationName' => __DIR__ . '/..' . '/phar-io/manifest/src/values/ApplicationName.php',
|
|
||||||
'PharIo\\Manifest\\Author' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Author.php',
|
|
||||||
'PharIo\\Manifest\\AuthorCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/AuthorCollection.php',
|
|
||||||
'PharIo\\Manifest\\AuthorCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/AuthorCollectionIterator.php',
|
|
||||||
'PharIo\\Manifest\\AuthorElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/AuthorElement.php',
|
|
||||||
'PharIo\\Manifest\\AuthorElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/AuthorElementCollection.php',
|
|
||||||
'PharIo\\Manifest\\BundledComponent' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponent.php',
|
|
||||||
'PharIo\\Manifest\\BundledComponentCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponentCollection.php',
|
|
||||||
'PharIo\\Manifest\\BundledComponentCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponentCollectionIterator.php',
|
|
||||||
'PharIo\\Manifest\\BundlesElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/BundlesElement.php',
|
|
||||||
'PharIo\\Manifest\\ComponentElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ComponentElement.php',
|
|
||||||
'PharIo\\Manifest\\ComponentElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ComponentElementCollection.php',
|
|
||||||
'PharIo\\Manifest\\ContainsElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ContainsElement.php',
|
|
||||||
'PharIo\\Manifest\\CopyrightElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/CopyrightElement.php',
|
|
||||||
'PharIo\\Manifest\\CopyrightInformation' => __DIR__ . '/..' . '/phar-io/manifest/src/values/CopyrightInformation.php',
|
|
||||||
'PharIo\\Manifest\\ElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ElementCollection.php',
|
|
||||||
'PharIo\\Manifest\\ElementCollectionException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ElementCollectionException.php',
|
|
||||||
'PharIo\\Manifest\\Email' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Email.php',
|
|
||||||
'PharIo\\Manifest\\Exception' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/Exception.php',
|
|
||||||
'PharIo\\Manifest\\ExtElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtElement.php',
|
|
||||||
'PharIo\\Manifest\\ExtElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtElementCollection.php',
|
|
||||||
'PharIo\\Manifest\\Extension' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Extension.php',
|
|
||||||
'PharIo\\Manifest\\ExtensionElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtensionElement.php',
|
|
||||||
'PharIo\\Manifest\\InvalidApplicationNameException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php',
|
|
||||||
'PharIo\\Manifest\\InvalidEmailException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidEmailException.php',
|
|
||||||
'PharIo\\Manifest\\InvalidUrlException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidUrlException.php',
|
|
||||||
'PharIo\\Manifest\\Library' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Library.php',
|
|
||||||
'PharIo\\Manifest\\License' => __DIR__ . '/..' . '/phar-io/manifest/src/values/License.php',
|
|
||||||
'PharIo\\Manifest\\LicenseElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/LicenseElement.php',
|
|
||||||
'PharIo\\Manifest\\Manifest' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Manifest.php',
|
|
||||||
'PharIo\\Manifest\\ManifestDocument' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ManifestDocument.php',
|
|
||||||
'PharIo\\Manifest\\ManifestDocumentException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestDocumentException.php',
|
|
||||||
'PharIo\\Manifest\\ManifestDocumentLoadingException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestDocumentLoadingException.php',
|
|
||||||
'PharIo\\Manifest\\ManifestDocumentMapper' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestDocumentMapper.php',
|
|
||||||
'PharIo\\Manifest\\ManifestDocumentMapperException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php',
|
|
||||||
'PharIo\\Manifest\\ManifestElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ManifestElement.php',
|
|
||||||
'PharIo\\Manifest\\ManifestElementException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestElementException.php',
|
|
||||||
'PharIo\\Manifest\\ManifestLoader' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestLoader.php',
|
|
||||||
'PharIo\\Manifest\\ManifestLoaderException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestLoaderException.php',
|
|
||||||
'PharIo\\Manifest\\ManifestSerializer' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestSerializer.php',
|
|
||||||
'PharIo\\Manifest\\NoEmailAddressException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/NoEmailAdressException.php',
|
|
||||||
'PharIo\\Manifest\\PhpElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/PhpElement.php',
|
|
||||||
'PharIo\\Manifest\\PhpExtensionRequirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/PhpExtensionRequirement.php',
|
|
||||||
'PharIo\\Manifest\\PhpVersionRequirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/PhpVersionRequirement.php',
|
|
||||||
'PharIo\\Manifest\\Requirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Requirement.php',
|
|
||||||
'PharIo\\Manifest\\RequirementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/RequirementCollection.php',
|
|
||||||
'PharIo\\Manifest\\RequirementCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/RequirementCollectionIterator.php',
|
|
||||||
'PharIo\\Manifest\\RequiresElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/RequiresElement.php',
|
|
||||||
'PharIo\\Manifest\\Type' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Type.php',
|
|
||||||
'PharIo\\Manifest\\Url' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Url.php',
|
|
||||||
'PharIo\\Version\\AbstractVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/AbstractVersionConstraint.php',
|
|
||||||
'PharIo\\Version\\AndVersionConstraintGroup' => __DIR__ . '/..' . '/phar-io/version/src/constraints/AndVersionConstraintGroup.php',
|
|
||||||
'PharIo\\Version\\AnyVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/AnyVersionConstraint.php',
|
|
||||||
'PharIo\\Version\\BuildMetaData' => __DIR__ . '/..' . '/phar-io/version/src/BuildMetaData.php',
|
|
||||||
'PharIo\\Version\\ExactVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/ExactVersionConstraint.php',
|
|
||||||
'PharIo\\Version\\Exception' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/Exception.php',
|
|
||||||
'PharIo\\Version\\GreaterThanOrEqualToVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php',
|
|
||||||
'PharIo\\Version\\InvalidPreReleaseSuffixException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/InvalidPreReleaseSuffixException.php',
|
|
||||||
'PharIo\\Version\\InvalidVersionException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/InvalidVersionException.php',
|
|
||||||
'PharIo\\Version\\NoBuildMetaDataException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/NoBuildMetaDataException.php',
|
|
||||||
'PharIo\\Version\\NoPreReleaseSuffixException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/NoPreReleaseSuffixException.php',
|
|
||||||
'PharIo\\Version\\OrVersionConstraintGroup' => __DIR__ . '/..' . '/phar-io/version/src/constraints/OrVersionConstraintGroup.php',
|
|
||||||
'PharIo\\Version\\PreReleaseSuffix' => __DIR__ . '/..' . '/phar-io/version/src/PreReleaseSuffix.php',
|
|
||||||
'PharIo\\Version\\SpecificMajorAndMinorVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/SpecificMajorAndMinorVersionConstraint.php',
|
|
||||||
'PharIo\\Version\\SpecificMajorVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/SpecificMajorVersionConstraint.php',
|
|
||||||
'PharIo\\Version\\UnsupportedVersionConstraintException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/UnsupportedVersionConstraintException.php',
|
|
||||||
'PharIo\\Version\\Version' => __DIR__ . '/..' . '/phar-io/version/src/Version.php',
|
|
||||||
'PharIo\\Version\\VersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/VersionConstraint.php',
|
|
||||||
'PharIo\\Version\\VersionConstraintParser' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraintParser.php',
|
|
||||||
'PharIo\\Version\\VersionConstraintValue' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraintValue.php',
|
|
||||||
'PharIo\\Version\\VersionNumber' => __DIR__ . '/..' . '/phar-io/version/src/VersionNumber.php',
|
|
||||||
'SebastianBergmann\\CliParser\\AmbiguousOptionException' => __DIR__ . '/..' . '/sebastian/cli-parser/src/exceptions/AmbiguousOptionException.php',
|
|
||||||
'SebastianBergmann\\CliParser\\Exception' => __DIR__ . '/..' . '/sebastian/cli-parser/src/exceptions/Exception.php',
|
|
||||||
'SebastianBergmann\\CliParser\\OptionDoesNotAllowArgumentException' => __DIR__ . '/..' . '/sebastian/cli-parser/src/exceptions/OptionDoesNotAllowArgumentException.php',
|
|
||||||
'SebastianBergmann\\CliParser\\Parser' => __DIR__ . '/..' . '/sebastian/cli-parser/src/Parser.php',
|
|
||||||
'SebastianBergmann\\CliParser\\RequiredOptionArgumentMissingException' => __DIR__ . '/..' . '/sebastian/cli-parser/src/exceptions/RequiredOptionArgumentMissingException.php',
|
|
||||||
'SebastianBergmann\\CliParser\\UnknownOptionException' => __DIR__ . '/..' . '/sebastian/cli-parser/src/exceptions/UnknownOptionException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\BranchAndPathCoverageNotSupportedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/BranchAndPathCoverageNotSupportedException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\CodeCoverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\DeadCodeDetectionNotSupportedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/DeadCodeDetectionNotSupportedException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Driver.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\PathExistsButIsNotDirectoryException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/PathExistsButIsNotDirectoryException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\PcovDriver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/PcovDriver.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\PcovNotAvailableException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/PcovNotAvailableException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\PhpdbgDriver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/PhpdbgDriver.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\PhpdbgNotAvailableException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/PhpdbgNotAvailableException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\Selector' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Selector.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\WriteOperationFailedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/WriteOperationFailedException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\WrongXdebugVersionException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/WrongXdebugVersionException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug2Driver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Xdebug2Driver.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug2NotEnabledException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/Xdebug2NotEnabledException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug3Driver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Xdebug3Driver.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug3NotEnabledException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/Xdebug3NotEnabledException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Driver\\XdebugNotAvailableException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/XdebugNotAvailableException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Exception' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/Exception.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Filter' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Filter.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\InvalidArgumentException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\NoCodeCoverageDriverAvailableException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/NoCodeCoverageDriverAvailableException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\NoCodeCoverageDriverWithPathCoverageSupportAvailableException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/NoCodeCoverageDriverWithPathCoverageSupportAvailableException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Node\\AbstractNode' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/AbstractNode.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Node\\Builder' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Builder.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Node\\CrapIndex' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/CrapIndex.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Node\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Directory.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Node\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/File.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Iterator.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\ParserException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/ParserException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\ProcessedCodeCoverageData' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/ProcessedCodeCoverageData.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\RawCodeCoverageData' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/RawCodeCoverageData.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\ReflectionException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/ReflectionException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\ReportAlreadyFinalizedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/ReportAlreadyFinalizedException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Clover' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Clover.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Cobertura' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Cobertura.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Crap4j' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Crap4j.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Dashboard' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Facade' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Facade.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Html\\Renderer' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\PHP' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/PHP.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Text' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Text.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\BuildInformation' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Coverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Coverage.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Directory.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Facade' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Facade.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/File.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Method' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Method.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Node' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Node.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Project' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Project.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Report' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Report.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Source' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Source.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Tests' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Tests.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\StaticAnalysisCacheNotConfiguredException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/StaticAnalysisCacheNotConfiguredException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CacheWarmer' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/CacheWarmer.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CachingFileAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CodeUnitFindingVisitor' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/CodeUnitFindingVisitor.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ExecutableLinesFindingVisitor' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/ExecutableLinesFindingVisitor.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\FileAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/FileAnalyser.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\IgnoredLinesFindingVisitor' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/IgnoredLinesFindingVisitor.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ParsingFileAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/ParsingFileAnalyser.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\TestIdMissingException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/TestIdMissingException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\UnintentionallyCoveredCodeException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Util\\DirectoryCouldNotBeCreatedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/DirectoryCouldNotBeCreatedException.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Util\\Filesystem' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Util/Filesystem.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Util\\Percentage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Util/Percentage.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\Version' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Version.php',
|
|
||||||
'SebastianBergmann\\CodeCoverage\\XmlException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/XmlException.php',
|
|
||||||
'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => __DIR__ . '/..' . '/sebastian/code-unit-reverse-lookup/src/Wizard.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\ClassMethodUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/ClassMethodUnit.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\ClassUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/ClassUnit.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\CodeUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/CodeUnit.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\CodeUnitCollection' => __DIR__ . '/..' . '/sebastian/code-unit/src/CodeUnitCollection.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\CodeUnitCollectionIterator' => __DIR__ . '/..' . '/sebastian/code-unit/src/CodeUnitCollectionIterator.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\Exception' => __DIR__ . '/..' . '/sebastian/code-unit/src/exceptions/Exception.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\FunctionUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/FunctionUnit.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\InterfaceMethodUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/InterfaceMethodUnit.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\InterfaceUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/InterfaceUnit.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\InvalidCodeUnitException' => __DIR__ . '/..' . '/sebastian/code-unit/src/exceptions/InvalidCodeUnitException.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\Mapper' => __DIR__ . '/..' . '/sebastian/code-unit/src/Mapper.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\NoTraitException' => __DIR__ . '/..' . '/sebastian/code-unit/src/exceptions/NoTraitException.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\ReflectionException' => __DIR__ . '/..' . '/sebastian/code-unit/src/exceptions/ReflectionException.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\TraitMethodUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/TraitMethodUnit.php',
|
|
||||||
'SebastianBergmann\\CodeUnit\\TraitUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/TraitUnit.php',
|
|
||||||
'SebastianBergmann\\Comparator\\ArrayComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ArrayComparator.php',
|
|
||||||
'SebastianBergmann\\Comparator\\Comparator' => __DIR__ . '/..' . '/sebastian/comparator/src/Comparator.php',
|
|
||||||
'SebastianBergmann\\Comparator\\ComparisonFailure' => __DIR__ . '/..' . '/sebastian/comparator/src/ComparisonFailure.php',
|
|
||||||
'SebastianBergmann\\Comparator\\DOMNodeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DOMNodeComparator.php',
|
|
||||||
'SebastianBergmann\\Comparator\\DateTimeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DateTimeComparator.php',
|
|
||||||
'SebastianBergmann\\Comparator\\DoubleComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DoubleComparator.php',
|
|
||||||
'SebastianBergmann\\Comparator\\Exception' => __DIR__ . '/..' . '/sebastian/comparator/src/exceptions/Exception.php',
|
|
||||||
'SebastianBergmann\\Comparator\\ExceptionComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ExceptionComparator.php',
|
|
||||||
'SebastianBergmann\\Comparator\\Factory' => __DIR__ . '/..' . '/sebastian/comparator/src/Factory.php',
|
|
||||||
'SebastianBergmann\\Comparator\\MockObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/MockObjectComparator.php',
|
|
||||||
'SebastianBergmann\\Comparator\\NumericComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/NumericComparator.php',
|
|
||||||
'SebastianBergmann\\Comparator\\ObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ObjectComparator.php',
|
|
||||||
'SebastianBergmann\\Comparator\\ResourceComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ResourceComparator.php',
|
|
||||||
'SebastianBergmann\\Comparator\\RuntimeException' => __DIR__ . '/..' . '/sebastian/comparator/src/exceptions/RuntimeException.php',
|
|
||||||
'SebastianBergmann\\Comparator\\ScalarComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ScalarComparator.php',
|
|
||||||
'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/SplObjectStorageComparator.php',
|
|
||||||
'SebastianBergmann\\Comparator\\TypeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/TypeComparator.php',
|
|
||||||
'SebastianBergmann\\Complexity\\Calculator' => __DIR__ . '/..' . '/sebastian/complexity/src/Calculator.php',
|
|
||||||
'SebastianBergmann\\Complexity\\Complexity' => __DIR__ . '/..' . '/sebastian/complexity/src/Complexity/Complexity.php',
|
|
||||||
'SebastianBergmann\\Complexity\\ComplexityCalculatingVisitor' => __DIR__ . '/..' . '/sebastian/complexity/src/Visitor/ComplexityCalculatingVisitor.php',
|
|
||||||
'SebastianBergmann\\Complexity\\ComplexityCollection' => __DIR__ . '/..' . '/sebastian/complexity/src/Complexity/ComplexityCollection.php',
|
|
||||||
'SebastianBergmann\\Complexity\\ComplexityCollectionIterator' => __DIR__ . '/..' . '/sebastian/complexity/src/Complexity/ComplexityCollectionIterator.php',
|
|
||||||
'SebastianBergmann\\Complexity\\CyclomaticComplexityCalculatingVisitor' => __DIR__ . '/..' . '/sebastian/complexity/src/Visitor/CyclomaticComplexityCalculatingVisitor.php',
|
|
||||||
'SebastianBergmann\\Complexity\\Exception' => __DIR__ . '/..' . '/sebastian/complexity/src/Exception/Exception.php',
|
|
||||||
'SebastianBergmann\\Complexity\\RuntimeException' => __DIR__ . '/..' . '/sebastian/complexity/src/Exception/RuntimeException.php',
|
|
||||||
'SebastianBergmann\\Diff\\Chunk' => __DIR__ . '/..' . '/sebastian/diff/src/Chunk.php',
|
|
||||||
'SebastianBergmann\\Diff\\ConfigurationException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/ConfigurationException.php',
|
|
||||||
'SebastianBergmann\\Diff\\Diff' => __DIR__ . '/..' . '/sebastian/diff/src/Diff.php',
|
|
||||||
'SebastianBergmann\\Diff\\Differ' => __DIR__ . '/..' . '/sebastian/diff/src/Differ.php',
|
|
||||||
'SebastianBergmann\\Diff\\Exception' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/Exception.php',
|
|
||||||
'SebastianBergmann\\Diff\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/InvalidArgumentException.php',
|
|
||||||
'SebastianBergmann\\Diff\\Line' => __DIR__ . '/..' . '/sebastian/diff/src/Line.php',
|
|
||||||
'SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php',
|
|
||||||
'SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php',
|
|
||||||
'SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php',
|
|
||||||
'SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php',
|
|
||||||
'SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php',
|
|
||||||
'SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php',
|
|
||||||
'SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php',
|
|
||||||
'SebastianBergmann\\Diff\\Parser' => __DIR__ . '/..' . '/sebastian/diff/src/Parser.php',
|
|
||||||
'SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php',
|
|
||||||
'SebastianBergmann\\Environment\\Console' => __DIR__ . '/..' . '/sebastian/environment/src/Console.php',
|
|
||||||
'SebastianBergmann\\Environment\\OperatingSystem' => __DIR__ . '/..' . '/sebastian/environment/src/OperatingSystem.php',
|
|
||||||
'SebastianBergmann\\Environment\\Runtime' => __DIR__ . '/..' . '/sebastian/environment/src/Runtime.php',
|
|
||||||
'SebastianBergmann\\Exporter\\Exporter' => __DIR__ . '/..' . '/sebastian/exporter/src/Exporter.php',
|
|
||||||
'SebastianBergmann\\FileIterator\\Facade' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Facade.php',
|
|
||||||
'SebastianBergmann\\FileIterator\\Factory' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Factory.php',
|
|
||||||
'SebastianBergmann\\FileIterator\\Iterator' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Iterator.php',
|
|
||||||
'SebastianBergmann\\GlobalState\\CodeExporter' => __DIR__ . '/..' . '/sebastian/global-state/src/CodeExporter.php',
|
|
||||||
'SebastianBergmann\\GlobalState\\Exception' => __DIR__ . '/..' . '/sebastian/global-state/src/exceptions/Exception.php',
|
|
||||||
'SebastianBergmann\\GlobalState\\ExcludeList' => __DIR__ . '/..' . '/sebastian/global-state/src/ExcludeList.php',
|
|
||||||
'SebastianBergmann\\GlobalState\\Restorer' => __DIR__ . '/..' . '/sebastian/global-state/src/Restorer.php',
|
|
||||||
'SebastianBergmann\\GlobalState\\RuntimeException' => __DIR__ . '/..' . '/sebastian/global-state/src/exceptions/RuntimeException.php',
|
|
||||||
'SebastianBergmann\\GlobalState\\Snapshot' => __DIR__ . '/..' . '/sebastian/global-state/src/Snapshot.php',
|
|
||||||
'SebastianBergmann\\Invoker\\Exception' => __DIR__ . '/..' . '/phpunit/php-invoker/src/exceptions/Exception.php',
|
|
||||||
'SebastianBergmann\\Invoker\\Invoker' => __DIR__ . '/..' . '/phpunit/php-invoker/src/Invoker.php',
|
|
||||||
'SebastianBergmann\\Invoker\\ProcessControlExtensionNotLoadedException' => __DIR__ . '/..' . '/phpunit/php-invoker/src/exceptions/ProcessControlExtensionNotLoadedException.php',
|
|
||||||
'SebastianBergmann\\Invoker\\TimeoutException' => __DIR__ . '/..' . '/phpunit/php-invoker/src/exceptions/TimeoutException.php',
|
|
||||||
'SebastianBergmann\\LinesOfCode\\Counter' => __DIR__ . '/..' . '/sebastian/lines-of-code/src/Counter.php',
|
|
||||||
'SebastianBergmann\\LinesOfCode\\Exception' => __DIR__ . '/..' . '/sebastian/lines-of-code/src/Exception/Exception.php',
|
|
||||||
'SebastianBergmann\\LinesOfCode\\IllogicalValuesException' => __DIR__ . '/..' . '/sebastian/lines-of-code/src/Exception/IllogicalValuesException.php',
|
|
||||||
'SebastianBergmann\\LinesOfCode\\LineCountingVisitor' => __DIR__ . '/..' . '/sebastian/lines-of-code/src/LineCountingVisitor.php',
|
|
||||||
'SebastianBergmann\\LinesOfCode\\LinesOfCode' => __DIR__ . '/..' . '/sebastian/lines-of-code/src/LinesOfCode.php',
|
|
||||||
'SebastianBergmann\\LinesOfCode\\NegativeValueException' => __DIR__ . '/..' . '/sebastian/lines-of-code/src/Exception/NegativeValueException.php',
|
|
||||||
'SebastianBergmann\\LinesOfCode\\RuntimeException' => __DIR__ . '/..' . '/sebastian/lines-of-code/src/Exception/RuntimeException.php',
|
|
||||||
'SebastianBergmann\\ObjectEnumerator\\Enumerator' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/Enumerator.php',
|
|
||||||
'SebastianBergmann\\ObjectEnumerator\\Exception' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/Exception.php',
|
|
||||||
'SebastianBergmann\\ObjectEnumerator\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/InvalidArgumentException.php',
|
|
||||||
'SebastianBergmann\\ObjectReflector\\Exception' => __DIR__ . '/..' . '/sebastian/object-reflector/src/Exception.php',
|
|
||||||
'SebastianBergmann\\ObjectReflector\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/object-reflector/src/InvalidArgumentException.php',
|
|
||||||
'SebastianBergmann\\ObjectReflector\\ObjectReflector' => __DIR__ . '/..' . '/sebastian/object-reflector/src/ObjectReflector.php',
|
|
||||||
'SebastianBergmann\\RecursionContext\\Context' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Context.php',
|
|
||||||
'SebastianBergmann\\RecursionContext\\Exception' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Exception.php',
|
|
||||||
'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/recursion-context/src/InvalidArgumentException.php',
|
|
||||||
'SebastianBergmann\\ResourceOperations\\ResourceOperations' => __DIR__ . '/..' . '/sebastian/resource-operations/src/ResourceOperations.php',
|
|
||||||
'SebastianBergmann\\Template\\Exception' => __DIR__ . '/..' . '/phpunit/php-text-template/src/exceptions/Exception.php',
|
|
||||||
'SebastianBergmann\\Template\\InvalidArgumentException' => __DIR__ . '/..' . '/phpunit/php-text-template/src/exceptions/InvalidArgumentException.php',
|
|
||||||
'SebastianBergmann\\Template\\RuntimeException' => __DIR__ . '/..' . '/phpunit/php-text-template/src/exceptions/RuntimeException.php',
|
|
||||||
'SebastianBergmann\\Template\\Template' => __DIR__ . '/..' . '/phpunit/php-text-template/src/Template.php',
|
|
||||||
'SebastianBergmann\\Timer\\Duration' => __DIR__ . '/..' . '/phpunit/php-timer/src/Duration.php',
|
|
||||||
'SebastianBergmann\\Timer\\Exception' => __DIR__ . '/..' . '/phpunit/php-timer/src/exceptions/Exception.php',
|
|
||||||
'SebastianBergmann\\Timer\\NoActiveTimerException' => __DIR__ . '/..' . '/phpunit/php-timer/src/exceptions/NoActiveTimerException.php',
|
|
||||||
'SebastianBergmann\\Timer\\ResourceUsageFormatter' => __DIR__ . '/..' . '/phpunit/php-timer/src/ResourceUsageFormatter.php',
|
|
||||||
'SebastianBergmann\\Timer\\TimeSinceStartOfRequestNotAvailableException' => __DIR__ . '/..' . '/phpunit/php-timer/src/exceptions/TimeSinceStartOfRequestNotAvailableException.php',
|
|
||||||
'SebastianBergmann\\Timer\\Timer' => __DIR__ . '/..' . '/phpunit/php-timer/src/Timer.php',
|
|
||||||
'SebastianBergmann\\Type\\CallableType' => __DIR__ . '/..' . '/sebastian/type/src/type/CallableType.php',
|
|
||||||
'SebastianBergmann\\Type\\Exception' => __DIR__ . '/..' . '/sebastian/type/src/exception/Exception.php',
|
|
||||||
'SebastianBergmann\\Type\\FalseType' => __DIR__ . '/..' . '/sebastian/type/src/type/FalseType.php',
|
|
||||||
'SebastianBergmann\\Type\\GenericObjectType' => __DIR__ . '/..' . '/sebastian/type/src/type/GenericObjectType.php',
|
|
||||||
'SebastianBergmann\\Type\\IntersectionType' => __DIR__ . '/..' . '/sebastian/type/src/type/IntersectionType.php',
|
|
||||||
'SebastianBergmann\\Type\\IterableType' => __DIR__ . '/..' . '/sebastian/type/src/type/IterableType.php',
|
|
||||||
'SebastianBergmann\\Type\\MixedType' => __DIR__ . '/..' . '/sebastian/type/src/type/MixedType.php',
|
|
||||||
'SebastianBergmann\\Type\\NeverType' => __DIR__ . '/..' . '/sebastian/type/src/type/NeverType.php',
|
|
||||||
'SebastianBergmann\\Type\\NullType' => __DIR__ . '/..' . '/sebastian/type/src/type/NullType.php',
|
|
||||||
'SebastianBergmann\\Type\\ObjectType' => __DIR__ . '/..' . '/sebastian/type/src/type/ObjectType.php',
|
|
||||||
'SebastianBergmann\\Type\\ReflectionMapper' => __DIR__ . '/..' . '/sebastian/type/src/ReflectionMapper.php',
|
|
||||||
'SebastianBergmann\\Type\\RuntimeException' => __DIR__ . '/..' . '/sebastian/type/src/exception/RuntimeException.php',
|
|
||||||
'SebastianBergmann\\Type\\SimpleType' => __DIR__ . '/..' . '/sebastian/type/src/type/SimpleType.php',
|
|
||||||
'SebastianBergmann\\Type\\StaticType' => __DIR__ . '/..' . '/sebastian/type/src/type/StaticType.php',
|
|
||||||
'SebastianBergmann\\Type\\Type' => __DIR__ . '/..' . '/sebastian/type/src/type/Type.php',
|
|
||||||
'SebastianBergmann\\Type\\TypeName' => __DIR__ . '/..' . '/sebastian/type/src/TypeName.php',
|
|
||||||
'SebastianBergmann\\Type\\UnionType' => __DIR__ . '/..' . '/sebastian/type/src/type/UnionType.php',
|
|
||||||
'SebastianBergmann\\Type\\UnknownType' => __DIR__ . '/..' . '/sebastian/type/src/type/UnknownType.php',
|
|
||||||
'SebastianBergmann\\Type\\VoidType' => __DIR__ . '/..' . '/sebastian/type/src/type/VoidType.php',
|
|
||||||
'SebastianBergmann\\Version' => __DIR__ . '/..' . '/sebastian/version/src/Version.php',
|
|
||||||
'TheSeer\\Tokenizer\\Exception' => __DIR__ . '/..' . '/theseer/tokenizer/src/Exception.php',
|
|
||||||
'TheSeer\\Tokenizer\\NamespaceUri' => __DIR__ . '/..' . '/theseer/tokenizer/src/NamespaceUri.php',
|
|
||||||
'TheSeer\\Tokenizer\\NamespaceUriException' => __DIR__ . '/..' . '/theseer/tokenizer/src/NamespaceUriException.php',
|
|
||||||
'TheSeer\\Tokenizer\\Token' => __DIR__ . '/..' . '/theseer/tokenizer/src/Token.php',
|
|
||||||
'TheSeer\\Tokenizer\\TokenCollection' => __DIR__ . '/..' . '/theseer/tokenizer/src/TokenCollection.php',
|
|
||||||
'TheSeer\\Tokenizer\\TokenCollectionException' => __DIR__ . '/..' . '/theseer/tokenizer/src/TokenCollectionException.php',
|
|
||||||
'TheSeer\\Tokenizer\\Tokenizer' => __DIR__ . '/..' . '/theseer/tokenizer/src/Tokenizer.php',
|
|
||||||
'TheSeer\\Tokenizer\\XMLSerializer' => __DIR__ . '/..' . '/theseer/tokenizer/src/XMLSerializer.php',
|
|
||||||
);
|
|
||||||
|
|
||||||
public static function getInitializer(ClassLoader $loader)
|
|
||||||
{
|
|
||||||
return \Closure::bind(function () use ($loader) {
|
|
||||||
$loader->prefixLengthsPsr4 = ComposerStaticInit0c8f6bec90a6d60040a922f19a1f0e64::$prefixLengthsPsr4;
|
|
||||||
$loader->prefixDirsPsr4 = ComposerStaticInit0c8f6bec90a6d60040a922f19a1f0e64::$prefixDirsPsr4;
|
|
||||||
$loader->classMap = ComposerStaticInit0c8f6bec90a6d60040a922f19a1f0e64::$classMap;
|
|
||||||
|
|
||||||
}, null, ClassLoader::class);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
2280
vendor/composer/installed.json
vendored
2280
vendor/composer/installed.json
vendored
File diff suppressed because it is too large
Load Diff
352
vendor/composer/installed.php
vendored
352
vendor/composer/installed.php
vendored
@@ -1,352 +0,0 @@
|
|||||||
<?php return array(
|
|
||||||
'root' => array(
|
|
||||||
'pretty_version' => 'dev-master',
|
|
||||||
'version' => 'dev-master',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../../',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => 'fd5477269b9a133448cecb5854b784033d6c6c62',
|
|
||||||
'name' => 'gullevek/amazon-incentives',
|
|
||||||
'dev' => true,
|
|
||||||
),
|
|
||||||
'versions' => array(
|
|
||||||
'dg/bypass-finals' => array(
|
|
||||||
'pretty_version' => 'dev-master',
|
|
||||||
'version' => 'dev-master',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../dg/bypass-finals',
|
|
||||||
'aliases' => array(
|
|
||||||
0 => '9999999-dev',
|
|
||||||
),
|
|
||||||
'reference' => 'fb62dc6ab1a097e234fa1567943d8e87ea4d0842',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'doctrine/instantiator' => array(
|
|
||||||
'pretty_version' => '1.5.x-dev',
|
|
||||||
'version' => '1.5.9999999.9999999-dev',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../doctrine/instantiator',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => '10dcfce151b967d20fde1b34ae6640712c3891bc',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'gullevek/amazon-incentives' => array(
|
|
||||||
'pretty_version' => 'dev-master',
|
|
||||||
'version' => 'dev-master',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../../',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => 'fd5477269b9a133448cecb5854b784033d6c6c62',
|
|
||||||
'dev_requirement' => false,
|
|
||||||
),
|
|
||||||
'gullevek/dotenv' => array(
|
|
||||||
'pretty_version' => 'dev-master',
|
|
||||||
'version' => 'dev-master',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../gullevek/dotenv',
|
|
||||||
'aliases' => array(
|
|
||||||
0 => '9999999-dev',
|
|
||||||
),
|
|
||||||
'reference' => '2c7931b7a57f992f9010fc7d9c58af8951f1dc24',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'myclabs/deep-copy' => array(
|
|
||||||
'pretty_version' => '1.x-dev',
|
|
||||||
'version' => '1.9999999.9999999.9999999-dev',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../myclabs/deep-copy',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => '14daed4296fae74d9e3201d2c4925d1acb7aa614',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'nikic/php-parser' => array(
|
|
||||||
'pretty_version' => '4.x-dev',
|
|
||||||
'version' => '4.9999999.9999999.9999999-dev',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../nikic/php-parser',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => '2d589921f23d869846a52c541247e0bafca61ab3',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'phar-io/manifest' => array(
|
|
||||||
'pretty_version' => 'dev-master',
|
|
||||||
'version' => 'dev-master',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../phar-io/manifest',
|
|
||||||
'aliases' => array(
|
|
||||||
0 => '2.0.x-dev',
|
|
||||||
),
|
|
||||||
'reference' => '36d8a21e851a9512db2b086dc5ac2c61308f0138',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'phar-io/version' => array(
|
|
||||||
'pretty_version' => '3.2.1',
|
|
||||||
'version' => '3.2.1.0',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../phar-io/version',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => '4f7fd7836c6f332bb2933569e566a0d6c4cbed74',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'phpdocumentor/reflection-common' => array(
|
|
||||||
'pretty_version' => 'dev-master',
|
|
||||||
'version' => 'dev-master',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../phpdocumentor/reflection-common',
|
|
||||||
'aliases' => array(
|
|
||||||
0 => '2.x-dev',
|
|
||||||
),
|
|
||||||
'reference' => 'a0eeab580cbdf4414fef6978732510a36ed0a9d6',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'phpdocumentor/reflection-docblock' => array(
|
|
||||||
'pretty_version' => 'dev-master',
|
|
||||||
'version' => 'dev-master',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../phpdocumentor/reflection-docblock',
|
|
||||||
'aliases' => array(
|
|
||||||
0 => '5.x-dev',
|
|
||||||
),
|
|
||||||
'reference' => '9455bde915e322a823d464a2c41e5c0de03512a6',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'phpdocumentor/type-resolver' => array(
|
|
||||||
'pretty_version' => '1.x-dev',
|
|
||||||
'version' => '1.9999999.9999999.9999999-dev',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../phpdocumentor/type-resolver',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => '77a32518733312af16a44300404e945338981de3',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'phpspec/prophecy' => array(
|
|
||||||
'pretty_version' => 'dev-master',
|
|
||||||
'version' => 'dev-master',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../phpspec/prophecy',
|
|
||||||
'aliases' => array(
|
|
||||||
0 => '1.x-dev',
|
|
||||||
),
|
|
||||||
'reference' => 'bbcd7380b0ebf3961ee21409db7b38bc31d69a13',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'phpunit/php-code-coverage' => array(
|
|
||||||
'pretty_version' => '9.2.x-dev',
|
|
||||||
'version' => '9.2.9999999.9999999-dev',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../phpunit/php-code-coverage',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => 'a25a485e2949671aa6563bec701d871066ffc155',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'phpunit/php-file-iterator' => array(
|
|
||||||
'pretty_version' => '3.0.x-dev',
|
|
||||||
'version' => '3.0.9999999.9999999-dev',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../phpunit/php-file-iterator',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => '38b24367e1b340aa78b96d7cab042942d917bb84',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'phpunit/php-invoker' => array(
|
|
||||||
'pretty_version' => '3.1.1',
|
|
||||||
'version' => '3.1.1.0',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../phpunit/php-invoker',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => '5a10147d0aaf65b58940a0b72f71c9ac0423cc67',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'phpunit/php-text-template' => array(
|
|
||||||
'pretty_version' => '2.0.4',
|
|
||||||
'version' => '2.0.4.0',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../phpunit/php-text-template',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => '5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'phpunit/php-timer' => array(
|
|
||||||
'pretty_version' => '5.0.3',
|
|
||||||
'version' => '5.0.3.0',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../phpunit/php-timer',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => '5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'phpunit/phpunit' => array(
|
|
||||||
'pretty_version' => '9.5.x-dev',
|
|
||||||
'version' => '9.5.9999999.9999999-dev',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../phpunit/phpunit',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => '3a36f4d486ef9671bb184579a27d1f18f5369a61',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'sebastian/cli-parser' => array(
|
|
||||||
'pretty_version' => '1.0.1',
|
|
||||||
'version' => '1.0.1.0',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../sebastian/cli-parser',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => '442e7c7e687e42adc03470c7b668bc4b2402c0b2',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'sebastian/code-unit' => array(
|
|
||||||
'pretty_version' => '1.0.8',
|
|
||||||
'version' => '1.0.8.0',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../sebastian/code-unit',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => '1fc9f64c0927627ef78ba436c9b17d967e68e120',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'sebastian/code-unit-reverse-lookup' => array(
|
|
||||||
'pretty_version' => '2.0.3',
|
|
||||||
'version' => '2.0.3.0',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../sebastian/code-unit-reverse-lookup',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => 'ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'sebastian/comparator' => array(
|
|
||||||
'pretty_version' => '4.0.6',
|
|
||||||
'version' => '4.0.6.0',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../sebastian/comparator',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => '55f4261989e546dc112258c7a75935a81a7ce382',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'sebastian/complexity' => array(
|
|
||||||
'pretty_version' => '2.0.2',
|
|
||||||
'version' => '2.0.2.0',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../sebastian/complexity',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => '739b35e53379900cc9ac327b2147867b8b6efd88',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'sebastian/diff' => array(
|
|
||||||
'pretty_version' => '4.0.4',
|
|
||||||
'version' => '4.0.4.0',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../sebastian/diff',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => '3461e3fccc7cfdfc2720be910d3bd73c69be590d',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'sebastian/environment' => array(
|
|
||||||
'pretty_version' => '5.1.x-dev',
|
|
||||||
'version' => '5.1.9999999.9999999-dev',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../sebastian/environment',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => '3fade0c8462024d0426a00dc1ad0a2fda0df733f',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'sebastian/exporter' => array(
|
|
||||||
'pretty_version' => '4.0.x-dev',
|
|
||||||
'version' => '4.0.9999999.9999999-dev',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../sebastian/exporter',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => '428c31e2ea8b292aa814bc460cf28d58eba4d2ba',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'sebastian/global-state' => array(
|
|
||||||
'pretty_version' => '5.0.x-dev',
|
|
||||||
'version' => '5.0.9999999.9999999-dev',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../sebastian/global-state',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => '0ca8db5a5fc9c8646244e629625ac486fa286bf2',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'sebastian/lines-of-code' => array(
|
|
||||||
'pretty_version' => '1.0.3',
|
|
||||||
'version' => '1.0.3.0',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../sebastian/lines-of-code',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => 'c1c2e997aa3146983ed888ad08b15470a2e22ecc',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'sebastian/object-enumerator' => array(
|
|
||||||
'pretty_version' => '4.0.4',
|
|
||||||
'version' => '4.0.4.0',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../sebastian/object-enumerator',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => '5c9eeac41b290a3712d88851518825ad78f45c71',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'sebastian/object-reflector' => array(
|
|
||||||
'pretty_version' => '2.0.4',
|
|
||||||
'version' => '2.0.4.0',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../sebastian/object-reflector',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => 'b4f479ebdbf63ac605d183ece17d8d7fe49c15c7',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'sebastian/recursion-context' => array(
|
|
||||||
'pretty_version' => '4.0.4',
|
|
||||||
'version' => '4.0.4.0',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../sebastian/recursion-context',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => 'cd9d8cf3c5804de4341c283ed787f099f5506172',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'sebastian/resource-operations' => array(
|
|
||||||
'pretty_version' => 'dev-main',
|
|
||||||
'version' => 'dev-main',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../sebastian/resource-operations',
|
|
||||||
'aliases' => array(
|
|
||||||
0 => '3.0.x-dev',
|
|
||||||
),
|
|
||||||
'reference' => '0bb681ab112cdcd15dc71ea4ed7fb78e7060828b',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'sebastian/type' => array(
|
|
||||||
'pretty_version' => '3.0.x-dev',
|
|
||||||
'version' => '3.0.9999999.9999999-dev',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../sebastian/type',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => 'afad3e987736f63bc54d7c923f0c1ebf247e8618',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'sebastian/version' => array(
|
|
||||||
'pretty_version' => '3.0.x-dev',
|
|
||||||
'version' => '3.0.9999999.9999999-dev',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../sebastian/version',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => 'c6c1022351a901512170118436c764e473f6de8c',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'theseer/tokenizer' => array(
|
|
||||||
'pretty_version' => '1.2.1',
|
|
||||||
'version' => '1.2.1.0',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../theseer/tokenizer',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => '34a41e998c2183e22995f158c581e7b5e755ab9e',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
'webmozart/assert' => array(
|
|
||||||
'pretty_version' => '1.11.0',
|
|
||||||
'version' => '1.11.0.0',
|
|
||||||
'type' => 'library',
|
|
||||||
'install_path' => __DIR__ . '/../webmozart/assert',
|
|
||||||
'aliases' => array(),
|
|
||||||
'reference' => '11cb2199493b2f8a3b53e7f19068fc6aac760991',
|
|
||||||
'dev_requirement' => true,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
26
vendor/composer/platform_check.php
vendored
26
vendor/composer/platform_check.php
vendored
@@ -1,26 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// platform_check.php @generated by Composer
|
|
||||||
|
|
||||||
$issues = array();
|
|
||||||
|
|
||||||
if (!(PHP_VERSION_ID >= 70400)) {
|
|
||||||
$issues[] = 'Your Composer dependencies require a PHP version ">= 7.4.0". You are running ' . PHP_VERSION . '.';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($issues) {
|
|
||||||
if (!headers_sent()) {
|
|
||||||
header('HTTP/1.1 500 Internal Server Error');
|
|
||||||
}
|
|
||||||
if (!ini_get('display_errors')) {
|
|
||||||
if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
|
|
||||||
fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL);
|
|
||||||
} elseif (!headers_sent()) {
|
|
||||||
echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
trigger_error(
|
|
||||||
'Composer detected issues in your platform: ' . implode(' ', $issues),
|
|
||||||
E_USER_ERROR
|
|
||||||
);
|
|
||||||
}
|
|
||||||
26
vendor/dg/bypass-finals/composer.json
vendored
26
vendor/dg/bypass-finals/composer.json
vendored
@@ -1,26 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "dg/bypass-finals",
|
|
||||||
"description": "Removes final keyword from source code on-the-fly and allows mocking of final methods and classes",
|
|
||||||
"keywords": ["testing", "unit", "phpunit", "mocking", "finals"],
|
|
||||||
"license": ["BSD-3-Clause", "GPL-2.0", "GPL-3.0"],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "David Grudl",
|
|
||||||
"homepage": "https://davidgrudl.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"require": {
|
|
||||||
"php": ">=7.1"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"nette/tester": "^2.3",
|
|
||||||
"phpstan/phpstan": "^0.12"
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"classmap": ["src/"]
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"phpstan": "phpstan analyse",
|
|
||||||
"tester": "tester tests -s"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
49
vendor/dg/bypass-finals/license.md
vendored
49
vendor/dg/bypass-finals/license.md
vendored
@@ -1,49 +0,0 @@
|
|||||||
Licenses
|
|
||||||
========
|
|
||||||
|
|
||||||
Good news! You may use Nette Tester under the terms of either
|
|
||||||
the New BSD License or the GNU General Public License (GPL) version 2 or 3.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
New BSD License
|
|
||||||
---------------
|
|
||||||
|
|
||||||
Copyright (c) 2004, 2013 David Grudl (https://davidgrudl.com)
|
|
||||||
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 "Nette Tester" nor the names of its 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.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
GNU General Public License
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
GPL licenses are very very long, so instead of including them here we offer
|
|
||||||
you URLs with full text:
|
|
||||||
|
|
||||||
- [GPL version 2](http://www.gnu.org/licenses/gpl-2.0.html)
|
|
||||||
- [GPL version 3](http://www.gnu.org/licenses/gpl-3.0.html)
|
|
||||||
64
vendor/dg/bypass-finals/readme.md
vendored
64
vendor/dg/bypass-finals/readme.md
vendored
@@ -1,64 +0,0 @@
|
|||||||
Bypass Finals
|
|
||||||
=============
|
|
||||||
|
|
||||||
[](https://packagist.org/packages/dg/bypass-finals)
|
|
||||||
[](https://github.com/dg/bypass-finals/actions)
|
|
||||||
[](https://github.com/dg/bypass-finals/releases)
|
|
||||||
[](https://github.com/dg/bypass-finals/blob/master/license.md)
|
|
||||||
|
|
||||||
|
|
||||||
Introduction
|
|
||||||
------------
|
|
||||||
|
|
||||||
Removes final keywords from source code on-the-fly and allows mocking of final methods and classes.
|
|
||||||
It can be used together with any test tool such as PHPUnit, Mockery or [Nette Tester](https://tester.nette.org).
|
|
||||||
|
|
||||||
|
|
||||||
Installation
|
|
||||||
------------
|
|
||||||
|
|
||||||
The recommended way to install is through Composer:
|
|
||||||
|
|
||||||
```
|
|
||||||
composer require dg/bypass-finals --dev
|
|
||||||
```
|
|
||||||
|
|
||||||
It requires PHP version 7.1 (or 5.6 in case of release 1.1) and supports PHP up to 8.1.
|
|
||||||
|
|
||||||
|
|
||||||
Usage
|
|
||||||
-----
|
|
||||||
|
|
||||||
Simply call this:
|
|
||||||
|
|
||||||
```php
|
|
||||||
DG\BypassFinals::enable();
|
|
||||||
```
|
|
||||||
|
|
||||||
You need to enable it before the classes you want to remove the final are loaded. So call it as soon as possible,
|
|
||||||
preferably right after `vendor/autoload.php` is loaded.
|
|
||||||
|
|
||||||
Note that final internal PHP classes like `Closure` cannot be mocked.
|
|
||||||
|
|
||||||
You can choose to only bypass finals in specific files or directories:
|
|
||||||
|
|
||||||
```php
|
|
||||||
DG\BypassFinals::setWhitelist([
|
|
||||||
'*/Nette/*',
|
|
||||||
]);
|
|
||||||
```
|
|
||||||
|
|
||||||
This gives you finer control and can solve issues with certain frameworks and libraries.
|
|
||||||
|
|
||||||
You can try to increase performance by using the cache (the directory must exist):
|
|
||||||
|
|
||||||
```php
|
|
||||||
DG\BypassFinals::$cacheDir = __DIR__ . '/tmp';
|
|
||||||
```
|
|
||||||
|
|
||||||
Support Project
|
|
||||||
---------------
|
|
||||||
|
|
||||||
Do you like BypassFinals?
|
|
||||||
|
|
||||||
[](https://nette.org/make-donation?to=bypass-finals)
|
|
||||||
312
vendor/dg/bypass-finals/src/BypassFinals.php
vendored
312
vendor/dg/bypass-finals/src/BypassFinals.php
vendored
@@ -1,312 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
namespace DG;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Removes keyword final from source codes.
|
|
||||||
*/
|
|
||||||
class BypassFinals
|
|
||||||
{
|
|
||||||
private const PROTOCOL = 'file';
|
|
||||||
|
|
||||||
/** @var resource|null */
|
|
||||||
public $context;
|
|
||||||
|
|
||||||
/** @var ?string */
|
|
||||||
public static $cacheDir;
|
|
||||||
|
|
||||||
/** @var resource|null */
|
|
||||||
private $handle;
|
|
||||||
|
|
||||||
/** @var array */
|
|
||||||
private static $pathWhitelist = ['*'];
|
|
||||||
|
|
||||||
/** @var ?object */
|
|
||||||
private static $prevWrapper;
|
|
||||||
|
|
||||||
|
|
||||||
public static function enable(): void
|
|
||||||
{
|
|
||||||
$meta = stream_get_meta_data(fopen(__FILE__, 'r'));
|
|
||||||
self::$prevWrapper = $meta['wrapper_data'] ?? null;
|
|
||||||
stream_wrapper_unregister(self::PROTOCOL);
|
|
||||||
stream_wrapper_register(self::PROTOCOL, self::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static function setWhitelist(array $whitelist): void
|
|
||||||
{
|
|
||||||
foreach ($whitelist as &$mask) {
|
|
||||||
$mask = strtr($mask, '\\', '/');
|
|
||||||
}
|
|
||||||
|
|
||||||
self::$pathWhitelist = $whitelist;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function dir_closedir(): void
|
|
||||||
{
|
|
||||||
closedir($this->handle);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function dir_opendir(string $path, int $options): bool
|
|
||||||
{
|
|
||||||
$this->handle = $this->context
|
|
||||||
? $this->native('opendir', $path, $this->context)
|
|
||||||
: $this->native('opendir', $path);
|
|
||||||
return (bool) $this->handle;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function dir_readdir()
|
|
||||||
{
|
|
||||||
return readdir($this->handle);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function dir_rewinddir(): bool
|
|
||||||
{
|
|
||||||
return (bool) rewinddir($this->handle);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function mkdir(string $path, int $mode, int $options): bool
|
|
||||||
{
|
|
||||||
$recursive = (bool) ($options & STREAM_MKDIR_RECURSIVE);
|
|
||||||
return $this->context
|
|
||||||
? $this->native('mkdir', $path, $mode, $recursive, $this->context)
|
|
||||||
: $this->native('mkdir', $path, $mode, $recursive);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function rename(string $pathFrom, string $pathTo): bool
|
|
||||||
{
|
|
||||||
return $this->context
|
|
||||||
? $this->native('rename', $pathFrom, $pathTo, $this->context)
|
|
||||||
: $this->native('rename', $pathFrom, $pathTo);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function rmdir(string $path, int $options): bool
|
|
||||||
{
|
|
||||||
return $this->context
|
|
||||||
? $this->native('rmdir', $path, $this->context)
|
|
||||||
: $this->native('rmdir', $path);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function stream_cast(int $castAs)
|
|
||||||
{
|
|
||||||
return $this->handle;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function stream_close(): void
|
|
||||||
{
|
|
||||||
fclose($this->handle);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function stream_eof(): bool
|
|
||||||
{
|
|
||||||
return feof($this->handle);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function stream_flush(): bool
|
|
||||||
{
|
|
||||||
return fflush($this->handle);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function stream_lock(int $operation): bool
|
|
||||||
{
|
|
||||||
return $operation
|
|
||||||
? flock($this->handle, $operation)
|
|
||||||
: true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function stream_metadata(string $path, int $option, $value): bool
|
|
||||||
{
|
|
||||||
switch ($option) {
|
|
||||||
case STREAM_META_TOUCH:
|
|
||||||
return $this->native('touch', $path, $value[0] ?? time(), $value[1] ?? time());
|
|
||||||
case STREAM_META_OWNER_NAME:
|
|
||||||
case STREAM_META_OWNER:
|
|
||||||
return $this->native('chown', $path, $value);
|
|
||||||
case STREAM_META_GROUP_NAME:
|
|
||||||
case STREAM_META_GROUP:
|
|
||||||
return $this->native('chgrp', $path, $value);
|
|
||||||
case STREAM_META_ACCESS:
|
|
||||||
return $this->native('chmod', $path, $value);
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function stream_open(string $path, string $mode, int $options, ?string &$openedPath): bool
|
|
||||||
{
|
|
||||||
$usePath = (bool) ($options & STREAM_USE_PATH);
|
|
||||||
if ($mode === 'rb' && pathinfo($path, PATHINFO_EXTENSION) === 'php' && self::isPathInWhiteList($path)) {
|
|
||||||
if (self::$prevWrapper) {
|
|
||||||
$content = null;
|
|
||||||
self::$prevWrapper->stream_open($path, $mode, $options, $openedPath);
|
|
||||||
while (!self::$prevWrapper->stream_eof()) {
|
|
||||||
$content .= self::$prevWrapper->stream_read(8192);
|
|
||||||
}
|
|
||||||
|
|
||||||
self::$prevWrapper->stream_close();
|
|
||||||
} else {
|
|
||||||
$content = $this->native('file_get_contents', $path, $usePath, $this->context);
|
|
||||||
}
|
|
||||||
if (!is_string($content)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
$modified = self::cachedRemoveFinals($content);
|
|
||||||
if ($modified !== $content) {
|
|
||||||
$this->handle = tmpfile();
|
|
||||||
$this->native('fwrite', $this->handle, $modified);
|
|
||||||
$this->native('fseek', $this->handle, 0);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$this->handle = $this->context
|
|
||||||
? $this->native('fopen', $path, $mode, $usePath, $this->context)
|
|
||||||
: $this->native('fopen', $path, $mode, $usePath);
|
|
||||||
return (bool) $this->handle;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function stream_read(int $count)
|
|
||||||
{
|
|
||||||
return fread($this->handle, $count);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function stream_seek(int $offset, int $whence = SEEK_SET): bool
|
|
||||||
{
|
|
||||||
return fseek($this->handle, $offset, $whence) === 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function stream_set_option(int $option, int $arg1, ?int $arg2): bool
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function stream_stat()
|
|
||||||
{
|
|
||||||
return fstat($this->handle);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function stream_tell()
|
|
||||||
{
|
|
||||||
return ftell($this->handle);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function stream_truncate(int $newSize): bool
|
|
||||||
{
|
|
||||||
return ftruncate($this->handle, $newSize);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function stream_write(string $data)
|
|
||||||
{
|
|
||||||
return fwrite($this->handle, $data);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function unlink(string $path): bool
|
|
||||||
{
|
|
||||||
return $this->native('unlink', $path);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function url_stat(string $path, int $flags)
|
|
||||||
{
|
|
||||||
$func = $flags & STREAM_URL_STAT_LINK ? 'lstat' : 'stat';
|
|
||||||
return $flags & STREAM_URL_STAT_QUIET
|
|
||||||
? @$this->native($func, $path)
|
|
||||||
: $this->native($func, $path);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private function native(string $func)
|
|
||||||
{
|
|
||||||
stream_wrapper_restore(self::PROTOCOL);
|
|
||||||
try {
|
|
||||||
return $func(...array_slice(func_get_args(), 1));
|
|
||||||
} finally {
|
|
||||||
stream_wrapper_unregister(self::PROTOCOL);
|
|
||||||
stream_wrapper_register(self::PROTOCOL, self::class);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static function cachedRemoveFinals(string $code): string
|
|
||||||
{
|
|
||||||
if (stripos($code, 'final') === false) {
|
|
||||||
// do nothing
|
|
||||||
|
|
||||||
} elseif (self::$cacheDir) {
|
|
||||||
$hash = sha1($code);
|
|
||||||
if ($file = @fopen(self::$cacheDir . '/' . $hash, 'r')) { // @ may not exist
|
|
||||||
flock($file, LOCK_SH);
|
|
||||||
if ($res = stream_get_contents($file)) {
|
|
||||||
return $res;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$code = self::removeFinals($code);
|
|
||||||
if ($file = @fopen(self::$cacheDir . '/' . $hash, 'x')) { // @ may exist
|
|
||||||
flock($file, LOCK_EX);
|
|
||||||
fwrite($file, $code);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
$code = self::removeFinals($code);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $code;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static function removeFinals(string $code): string
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
$tokens = token_get_all($code, TOKEN_PARSE);
|
|
||||||
} catch (\ParseError $e) {
|
|
||||||
return $code;
|
|
||||||
}
|
|
||||||
|
|
||||||
$code = '';
|
|
||||||
foreach ($tokens as $token) {
|
|
||||||
$code .= is_array($token)
|
|
||||||
? ($token[0] === T_FINAL ? '' : $token[1])
|
|
||||||
: $token;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $code;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private static function isPathInWhiteList(string $path): bool
|
|
||||||
{
|
|
||||||
$path = strtr($path, '\\', '/');
|
|
||||||
foreach (self::$pathWhitelist as $mask) {
|
|
||||||
if (fnmatch($mask, $path)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
{
|
|
||||||
"active": true,
|
|
||||||
"name": "Instantiator",
|
|
||||||
"slug": "instantiator",
|
|
||||||
"docsSlug": "doctrine-instantiator",
|
|
||||||
"codePath": "/src",
|
|
||||||
"versions": [
|
|
||||||
{
|
|
||||||
"name": "1.5",
|
|
||||||
"branchName": "1.5.x",
|
|
||||||
"slug": "latest",
|
|
||||||
"upcoming": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "1.4",
|
|
||||||
"branchName": "1.4.x",
|
|
||||||
"slug": "1.4",
|
|
||||||
"aliases": [
|
|
||||||
"current",
|
|
||||||
"stable"
|
|
||||||
],
|
|
||||||
"maintained": true,
|
|
||||||
"current": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "1.3",
|
|
||||||
"branchName": "1.3.x",
|
|
||||||
"slug": "1.3",
|
|
||||||
"maintained": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "1.2",
|
|
||||||
"branchName": "1.2.x",
|
|
||||||
"slug": "1.2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "1.1",
|
|
||||||
"branchName": "1.1.x",
|
|
||||||
"slug": "1.1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "1.0",
|
|
||||||
"branchName": "1.0.x",
|
|
||||||
"slug": "1.0"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
35
vendor/doctrine/instantiator/CONTRIBUTING.md
vendored
35
vendor/doctrine/instantiator/CONTRIBUTING.md
vendored
@@ -1,35 +0,0 @@
|
|||||||
# Contributing
|
|
||||||
|
|
||||||
* Follow the [Doctrine Coding Standard](https://github.com/doctrine/coding-standard)
|
|
||||||
* The project will follow strict [object calisthenics](http://www.slideshare.net/guilhermeblanco/object-calisthenics-applied-to-php)
|
|
||||||
* Any contribution must provide tests for additional introduced conditions
|
|
||||||
* Any un-confirmed issue needs a failing test case before being accepted
|
|
||||||
* Pull requests must be sent from a new hotfix/feature branch, not from `master`.
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
To install the project and run the tests, you need to clone it first:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
$ git clone git://github.com/doctrine/instantiator.git
|
|
||||||
```
|
|
||||||
|
|
||||||
You will then need to run a composer installation:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
$ cd Instantiator
|
|
||||||
$ curl -s https://getcomposer.org/installer | php
|
|
||||||
$ php composer.phar update
|
|
||||||
```
|
|
||||||
|
|
||||||
## Testing
|
|
||||||
|
|
||||||
The PHPUnit version to be used is the one installed as a dev- dependency via composer:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
$ ./vendor/bin/phpunit
|
|
||||||
```
|
|
||||||
|
|
||||||
Accepted coverage for new contributions is 80%. Any contribution not satisfying this requirement
|
|
||||||
won't be merged.
|
|
||||||
|
|
||||||
19
vendor/doctrine/instantiator/LICENSE
vendored
19
vendor/doctrine/instantiator/LICENSE
vendored
@@ -1,19 +0,0 @@
|
|||||||
Copyright (c) 2014 Doctrine Project
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
||||||
this software and associated documentation files (the "Software"), to deal in
|
|
||||||
the Software without restriction, including without limitation the rights to
|
|
||||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
||||||
of the Software, and to permit persons to whom the Software is furnished to do
|
|
||||||
so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
38
vendor/doctrine/instantiator/README.md
vendored
38
vendor/doctrine/instantiator/README.md
vendored
@@ -1,38 +0,0 @@
|
|||||||
# Instantiator
|
|
||||||
|
|
||||||
This library provides a way of avoiding usage of constructors when instantiating PHP classes.
|
|
||||||
|
|
||||||
[](https://travis-ci.org/doctrine/instantiator)
|
|
||||||
[](https://codecov.io/gh/doctrine/instantiator/branch/master)
|
|
||||||
[](https://www.versioneye.com/package/php--doctrine--instantiator)
|
|
||||||
|
|
||||||
[](https://packagist.org/packages/doctrine/instantiator)
|
|
||||||
[](https://packagist.org/packages/doctrine/instantiator)
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
The suggested installation method is via [composer](https://getcomposer.org/):
|
|
||||||
|
|
||||||
```sh
|
|
||||||
php composer.phar require "doctrine/instantiator:~1.0.3"
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
The instantiator is able to create new instances of any class without using the constructor or any API of the class
|
|
||||||
itself:
|
|
||||||
|
|
||||||
```php
|
|
||||||
$instantiator = new \Doctrine\Instantiator\Instantiator();
|
|
||||||
|
|
||||||
$instance = $instantiator->instantiate(\My\ClassName\Here::class);
|
|
||||||
```
|
|
||||||
|
|
||||||
## Contributing
|
|
||||||
|
|
||||||
Please read the [CONTRIBUTING.md](CONTRIBUTING.md) contents if you wish to help out!
|
|
||||||
|
|
||||||
## Credits
|
|
||||||
|
|
||||||
This library was migrated from [ocramius/instantiator](https://github.com/Ocramius/Instantiator), which
|
|
||||||
has been donated to the doctrine organization, and which is now deprecated in favour of this package.
|
|
||||||
48
vendor/doctrine/instantiator/composer.json
vendored
48
vendor/doctrine/instantiator/composer.json
vendored
@@ -1,48 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "doctrine/instantiator",
|
|
||||||
"description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
|
|
||||||
"type": "library",
|
|
||||||
"license": "MIT",
|
|
||||||
"homepage": "https://www.doctrine-project.org/projects/instantiator.html",
|
|
||||||
"keywords": [
|
|
||||||
"instantiate",
|
|
||||||
"constructor"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Marco Pivetta",
|
|
||||||
"email": "ocramius@gmail.com",
|
|
||||||
"homepage": "https://ocramius.github.io/"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"require": {
|
|
||||||
"php": "^7.1 || ^8.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"ext-phar": "*",
|
|
||||||
"ext-pdo": "*",
|
|
||||||
"doctrine/coding-standard": "^9",
|
|
||||||
"phpbench/phpbench": "^0.16 || ^1",
|
|
||||||
"phpstan/phpstan": "^1.4",
|
|
||||||
"phpstan/phpstan-phpunit": "^1",
|
|
||||||
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
|
|
||||||
"vimeo/psalm": "^4.22"
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload-dev": {
|
|
||||||
"psr-0": {
|
|
||||||
"DoctrineTest\\InstantiatorPerformance\\": "tests",
|
|
||||||
"DoctrineTest\\InstantiatorTest\\": "tests",
|
|
||||||
"DoctrineTest\\InstantiatorTestAsset\\": "tests"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"config": {
|
|
||||||
"allow-plugins": {
|
|
||||||
"dealerdirect/phpcodesniffer-composer-installer": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
68
vendor/doctrine/instantiator/docs/en/index.rst
vendored
68
vendor/doctrine/instantiator/docs/en/index.rst
vendored
@@ -1,68 +0,0 @@
|
|||||||
Introduction
|
|
||||||
============
|
|
||||||
|
|
||||||
This library provides a way of avoiding usage of constructors when instantiating PHP classes.
|
|
||||||
|
|
||||||
Installation
|
|
||||||
============
|
|
||||||
|
|
||||||
The suggested installation method is via `composer`_:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ composer require doctrine/instantiator
|
|
||||||
|
|
||||||
Usage
|
|
||||||
=====
|
|
||||||
|
|
||||||
The instantiator is able to create new instances of any class without
|
|
||||||
using the constructor or any API of the class itself:
|
|
||||||
|
|
||||||
.. code-block:: php
|
|
||||||
|
|
||||||
<?php
|
|
||||||
|
|
||||||
use Doctrine\Instantiator\Instantiator;
|
|
||||||
use App\Entities\User;
|
|
||||||
|
|
||||||
$instantiator = new Instantiator();
|
|
||||||
|
|
||||||
$user = $instantiator->instantiate(User::class);
|
|
||||||
|
|
||||||
Contributing
|
|
||||||
============
|
|
||||||
|
|
||||||
- Follow the `Doctrine Coding Standard`_
|
|
||||||
- The project will follow strict `object calisthenics`_
|
|
||||||
- Any contribution must provide tests for additional introduced
|
|
||||||
conditions
|
|
||||||
- Any un-confirmed issue needs a failing test case before being
|
|
||||||
accepted
|
|
||||||
- Pull requests must be sent from a new hotfix/feature branch, not from
|
|
||||||
``master``.
|
|
||||||
|
|
||||||
Testing
|
|
||||||
=======
|
|
||||||
|
|
||||||
The PHPUnit version to be used is the one installed as a dev- dependency
|
|
||||||
via composer:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ ./vendor/bin/phpunit
|
|
||||||
|
|
||||||
Accepted coverage for new contributions is 80%. Any contribution not
|
|
||||||
satisfying this requirement won’t be merged.
|
|
||||||
|
|
||||||
Credits
|
|
||||||
=======
|
|
||||||
|
|
||||||
This library was migrated from `ocramius/instantiator`_, which has been
|
|
||||||
donated to the doctrine organization, and which is now deprecated in
|
|
||||||
favour of this package.
|
|
||||||
|
|
||||||
.. _composer: https://getcomposer.org/
|
|
||||||
.. _CONTRIBUTING.md: CONTRIBUTING.md
|
|
||||||
.. _ocramius/instantiator: https://github.com/Ocramius/Instantiator
|
|
||||||
.. _Doctrine Coding Standard: https://github.com/doctrine/coding-standard
|
|
||||||
.. _object calisthenics: http://www.slideshare.net/guilhermeblanco/object-calisthenics-applied-to-php
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
.. toctree::
|
|
||||||
:depth: 3
|
|
||||||
|
|
||||||
index
|
|
||||||
16
vendor/doctrine/instantiator/psalm.xml
vendored
16
vendor/doctrine/instantiator/psalm.xml
vendored
@@ -1,16 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<psalm
|
|
||||||
errorLevel="7"
|
|
||||||
phpVersion="8.1"
|
|
||||||
resolveFromConfigFile="true"
|
|
||||||
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"
|
|
||||||
>
|
|
||||||
<projectFiles>
|
|
||||||
<directory name="src" />
|
|
||||||
<ignoreFiles>
|
|
||||||
<directory name="vendor" />
|
|
||||||
</ignoreFiles>
|
|
||||||
</projectFiles>
|
|
||||||
</psalm>
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Instantiator\Exception;
|
|
||||||
|
|
||||||
use Throwable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Base exception marker interface for the instantiator component
|
|
||||||
*/
|
|
||||||
interface ExceptionInterface extends Throwable
|
|
||||||
{
|
|
||||||
}
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Instantiator\Exception;
|
|
||||||
|
|
||||||
use InvalidArgumentException as BaseInvalidArgumentException;
|
|
||||||
use ReflectionClass;
|
|
||||||
|
|
||||||
use function interface_exists;
|
|
||||||
use function sprintf;
|
|
||||||
use function trait_exists;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Exception for invalid arguments provided to the instantiator
|
|
||||||
*/
|
|
||||||
class InvalidArgumentException extends BaseInvalidArgumentException implements ExceptionInterface
|
|
||||||
{
|
|
||||||
public static function fromNonExistingClass(string $className): self
|
|
||||||
{
|
|
||||||
if (interface_exists($className)) {
|
|
||||||
return new self(sprintf('The provided type "%s" is an interface, and cannot be instantiated', $className));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (trait_exists($className)) {
|
|
||||||
return new self(sprintf('The provided type "%s" is a trait, and cannot be instantiated', $className));
|
|
||||||
}
|
|
||||||
|
|
||||||
return new self(sprintf('The provided class "%s" does not exist', $className));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @phpstan-param ReflectionClass<T> $reflectionClass
|
|
||||||
*
|
|
||||||
* @template T of object
|
|
||||||
*/
|
|
||||||
public static function fromAbstractClass(ReflectionClass $reflectionClass): self
|
|
||||||
{
|
|
||||||
return new self(sprintf(
|
|
||||||
'The provided class "%s" is abstract, and cannot be instantiated',
|
|
||||||
$reflectionClass->getName()
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function fromEnum(string $className): self
|
|
||||||
{
|
|
||||||
return new self(sprintf(
|
|
||||||
'The provided class "%s" is an enum, and cannot be instantiated',
|
|
||||||
$className
|
|
||||||
));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,59 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Instantiator\Exception;
|
|
||||||
|
|
||||||
use Exception;
|
|
||||||
use ReflectionClass;
|
|
||||||
use UnexpectedValueException as BaseUnexpectedValueException;
|
|
||||||
|
|
||||||
use function sprintf;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Exception for given parameters causing invalid/unexpected state on instantiation
|
|
||||||
*/
|
|
||||||
class UnexpectedValueException extends BaseUnexpectedValueException implements ExceptionInterface
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @phpstan-param ReflectionClass<T> $reflectionClass
|
|
||||||
*
|
|
||||||
* @template T of object
|
|
||||||
*/
|
|
||||||
public static function fromSerializationTriggeredException(
|
|
||||||
ReflectionClass $reflectionClass,
|
|
||||||
Exception $exception
|
|
||||||
): self {
|
|
||||||
return new self(
|
|
||||||
sprintf(
|
|
||||||
'An exception was raised while trying to instantiate an instance of "%s" via un-serialization',
|
|
||||||
$reflectionClass->getName()
|
|
||||||
),
|
|
||||||
0,
|
|
||||||
$exception
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @phpstan-param ReflectionClass<T> $reflectionClass
|
|
||||||
*
|
|
||||||
* @template T of object
|
|
||||||
*/
|
|
||||||
public static function fromUncleanUnSerialization(
|
|
||||||
ReflectionClass $reflectionClass,
|
|
||||||
string $errorString,
|
|
||||||
int $errorCode,
|
|
||||||
string $errorFile,
|
|
||||||
int $errorLine
|
|
||||||
): self {
|
|
||||||
return new self(
|
|
||||||
sprintf(
|
|
||||||
'Could not produce an instance of "%s" via un-serialization, since an error was triggered '
|
|
||||||
. 'in file "%s" at line "%d"',
|
|
||||||
$reflectionClass->getName(),
|
|
||||||
$errorFile,
|
|
||||||
$errorLine
|
|
||||||
),
|
|
||||||
0,
|
|
||||||
new Exception($errorString, $errorCode)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,260 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Instantiator;
|
|
||||||
|
|
||||||
use ArrayIterator;
|
|
||||||
use Doctrine\Instantiator\Exception\ExceptionInterface;
|
|
||||||
use Doctrine\Instantiator\Exception\InvalidArgumentException;
|
|
||||||
use Doctrine\Instantiator\Exception\UnexpectedValueException;
|
|
||||||
use Exception;
|
|
||||||
use ReflectionClass;
|
|
||||||
use ReflectionException;
|
|
||||||
use Serializable;
|
|
||||||
|
|
||||||
use function class_exists;
|
|
||||||
use function enum_exists;
|
|
||||||
use function is_subclass_of;
|
|
||||||
use function restore_error_handler;
|
|
||||||
use function set_error_handler;
|
|
||||||
use function sprintf;
|
|
||||||
use function strlen;
|
|
||||||
use function unserialize;
|
|
||||||
|
|
||||||
use const PHP_VERSION_ID;
|
|
||||||
|
|
||||||
final class Instantiator implements InstantiatorInterface
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Markers used internally by PHP to define whether {@see \unserialize} should invoke
|
|
||||||
* the method {@see \Serializable::unserialize()} when dealing with classes implementing
|
|
||||||
* the {@see \Serializable} interface.
|
|
||||||
*/
|
|
||||||
public const SERIALIZATION_FORMAT_USE_UNSERIALIZER = 'C';
|
|
||||||
public const SERIALIZATION_FORMAT_AVOID_UNSERIALIZER = 'O';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to instantiate specific classes, indexed by class name.
|
|
||||||
*
|
|
||||||
* @var callable[]
|
|
||||||
*/
|
|
||||||
private static $cachedInstantiators = [];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Array of objects that can directly be cloned, indexed by class name.
|
|
||||||
*
|
|
||||||
* @var object[]
|
|
||||||
*/
|
|
||||||
private static $cachedCloneables = [];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $className
|
|
||||||
* @phpstan-param class-string<T> $className
|
|
||||||
*
|
|
||||||
* @return object
|
|
||||||
* @phpstan-return T
|
|
||||||
*
|
|
||||||
* @throws ExceptionInterface
|
|
||||||
*
|
|
||||||
* @template T of object
|
|
||||||
*/
|
|
||||||
public function instantiate($className)
|
|
||||||
{
|
|
||||||
if (isset(self::$cachedCloneables[$className])) {
|
|
||||||
/**
|
|
||||||
* @phpstan-var T
|
|
||||||
*/
|
|
||||||
$cachedCloneable = self::$cachedCloneables[$className];
|
|
||||||
|
|
||||||
return clone $cachedCloneable;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset(self::$cachedInstantiators[$className])) {
|
|
||||||
$factory = self::$cachedInstantiators[$className];
|
|
||||||
|
|
||||||
return $factory();
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->buildAndCacheFromFactory($className);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Builds the requested object and caches it in static properties for performance
|
|
||||||
*
|
|
||||||
* @phpstan-param class-string<T> $className
|
|
||||||
*
|
|
||||||
* @return object
|
|
||||||
* @phpstan-return T
|
|
||||||
*
|
|
||||||
* @template T of object
|
|
||||||
*/
|
|
||||||
private function buildAndCacheFromFactory(string $className)
|
|
||||||
{
|
|
||||||
$factory = self::$cachedInstantiators[$className] = $this->buildFactory($className);
|
|
||||||
$instance = $factory();
|
|
||||||
|
|
||||||
if ($this->isSafeToClone(new ReflectionClass($instance))) {
|
|
||||||
self::$cachedCloneables[$className] = clone $instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Builds a callable capable of instantiating the given $className without
|
|
||||||
* invoking its constructor.
|
|
||||||
*
|
|
||||||
* @phpstan-param class-string<T> $className
|
|
||||||
*
|
|
||||||
* @phpstan-return callable(): T
|
|
||||||
*
|
|
||||||
* @throws InvalidArgumentException
|
|
||||||
* @throws UnexpectedValueException
|
|
||||||
* @throws ReflectionException
|
|
||||||
*
|
|
||||||
* @template T of object
|
|
||||||
*/
|
|
||||||
private function buildFactory(string $className): callable
|
|
||||||
{
|
|
||||||
$reflectionClass = $this->getReflectionClass($className);
|
|
||||||
|
|
||||||
if ($this->isInstantiableViaReflection($reflectionClass)) {
|
|
||||||
return [$reflectionClass, 'newInstanceWithoutConstructor'];
|
|
||||||
}
|
|
||||||
|
|
||||||
$serializedString = sprintf(
|
|
||||||
'%s:%d:"%s":0:{}',
|
|
||||||
is_subclass_of($className, Serializable::class) ? self::SERIALIZATION_FORMAT_USE_UNSERIALIZER : self::SERIALIZATION_FORMAT_AVOID_UNSERIALIZER,
|
|
||||||
strlen($className),
|
|
||||||
$className
|
|
||||||
);
|
|
||||||
|
|
||||||
$this->checkIfUnSerializationIsSupported($reflectionClass, $serializedString);
|
|
||||||
|
|
||||||
return static function () use ($serializedString) {
|
|
||||||
return unserialize($serializedString);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @phpstan-param class-string<T> $className
|
|
||||||
*
|
|
||||||
* @phpstan-return ReflectionClass<T>
|
|
||||||
*
|
|
||||||
* @throws InvalidArgumentException
|
|
||||||
* @throws ReflectionException
|
|
||||||
*
|
|
||||||
* @template T of object
|
|
||||||
*/
|
|
||||||
private function getReflectionClass(string $className): ReflectionClass
|
|
||||||
{
|
|
||||||
if (! class_exists($className)) {
|
|
||||||
throw InvalidArgumentException::fromNonExistingClass($className);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (PHP_VERSION_ID >= 80100 && enum_exists($className, false)) {
|
|
||||||
throw InvalidArgumentException::fromEnum($className);
|
|
||||||
}
|
|
||||||
|
|
||||||
$reflection = new ReflectionClass($className);
|
|
||||||
|
|
||||||
if ($reflection->isAbstract()) {
|
|
||||||
throw InvalidArgumentException::fromAbstractClass($reflection);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $reflection;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @phpstan-param ReflectionClass<T> $reflectionClass
|
|
||||||
*
|
|
||||||
* @throws UnexpectedValueException
|
|
||||||
*
|
|
||||||
* @template T of object
|
|
||||||
*/
|
|
||||||
private function checkIfUnSerializationIsSupported(ReflectionClass $reflectionClass, string $serializedString): void
|
|
||||||
{
|
|
||||||
set_error_handler(static function (int $code, string $message, string $file, int $line) use ($reflectionClass, &$error): bool {
|
|
||||||
$error = UnexpectedValueException::fromUncleanUnSerialization(
|
|
||||||
$reflectionClass,
|
|
||||||
$message,
|
|
||||||
$code,
|
|
||||||
$file,
|
|
||||||
$line
|
|
||||||
);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
|
|
||||||
try {
|
|
||||||
$this->attemptInstantiationViaUnSerialization($reflectionClass, $serializedString);
|
|
||||||
} finally {
|
|
||||||
restore_error_handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($error) {
|
|
||||||
throw $error;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @phpstan-param ReflectionClass<T> $reflectionClass
|
|
||||||
*
|
|
||||||
* @throws UnexpectedValueException
|
|
||||||
*
|
|
||||||
* @template T of object
|
|
||||||
*/
|
|
||||||
private function attemptInstantiationViaUnSerialization(ReflectionClass $reflectionClass, string $serializedString): void
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
unserialize($serializedString);
|
|
||||||
} catch (Exception $exception) {
|
|
||||||
throw UnexpectedValueException::fromSerializationTriggeredException($reflectionClass, $exception);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @phpstan-param ReflectionClass<T> $reflectionClass
|
|
||||||
*
|
|
||||||
* @template T of object
|
|
||||||
*/
|
|
||||||
private function isInstantiableViaReflection(ReflectionClass $reflectionClass): bool
|
|
||||||
{
|
|
||||||
return ! ($this->hasInternalAncestors($reflectionClass) && $reflectionClass->isFinal());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Verifies whether the given class is to be considered internal
|
|
||||||
*
|
|
||||||
* @phpstan-param ReflectionClass<T> $reflectionClass
|
|
||||||
*
|
|
||||||
* @template T of object
|
|
||||||
*/
|
|
||||||
private function hasInternalAncestors(ReflectionClass $reflectionClass): bool
|
|
||||||
{
|
|
||||||
do {
|
|
||||||
if ($reflectionClass->isInternal()) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
$reflectionClass = $reflectionClass->getParentClass();
|
|
||||||
} while ($reflectionClass);
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks if a class is cloneable
|
|
||||||
*
|
|
||||||
* Classes implementing `__clone` cannot be safely cloned, as that may cause side-effects.
|
|
||||||
*
|
|
||||||
* @phpstan-param ReflectionClass<T> $reflectionClass
|
|
||||||
*
|
|
||||||
* @template T of object
|
|
||||||
*/
|
|
||||||
private function isSafeToClone(ReflectionClass $reflectionClass): bool
|
|
||||||
{
|
|
||||||
return $reflectionClass->isCloneable()
|
|
||||||
&& ! $reflectionClass->hasMethod('__clone')
|
|
||||||
&& ! $reflectionClass->isSubclassOf(ArrayIterator::class);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Doctrine\Instantiator;
|
|
||||||
|
|
||||||
use Doctrine\Instantiator\Exception\ExceptionInterface;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Instantiator provides utility methods to build objects without invoking their constructors
|
|
||||||
*/
|
|
||||||
interface InstantiatorInterface
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @param string $className
|
|
||||||
* @phpstan-param class-string<T> $className
|
|
||||||
*
|
|
||||||
* @return object
|
|
||||||
* @phpstan-return T
|
|
||||||
*
|
|
||||||
* @throws ExceptionInterface
|
|
||||||
*
|
|
||||||
* @template T of object
|
|
||||||
*/
|
|
||||||
public function instantiate($className);
|
|
||||||
}
|
|
||||||
3
vendor/gullevek/dotenv/.gitignore
vendored
3
vendor/gullevek/dotenv/.gitignore
vendored
@@ -1,3 +0,0 @@
|
|||||||
vendor
|
|
||||||
.phpunit.result.cache
|
|
||||||
composer.lock
|
|
||||||
97
vendor/gullevek/dotenv/.phan/config.php
vendored
97
vendor/gullevek/dotenv/.phan/config.php
vendored
@@ -1,97 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This configuration will be read and overlaid on top of the
|
|
||||||
* default configuration. Command line arguments will be applied
|
|
||||||
* after this file is read.
|
|
||||||
*
|
|
||||||
* @see src/Phan/Config.php
|
|
||||||
* See Config for all configurable options.
|
|
||||||
*
|
|
||||||
* A Note About Paths
|
|
||||||
* ==================
|
|
||||||
*
|
|
||||||
* Files referenced from this file should be defined as
|
|
||||||
*
|
|
||||||
* ```
|
|
||||||
* Config::projectPath('relative_path/to/file')
|
|
||||||
* ```
|
|
||||||
*
|
|
||||||
* where the relative path is relative to the root of the
|
|
||||||
* project which is defined as either the working directory
|
|
||||||
* of the phan executable or a path passed in via the CLI
|
|
||||||
* '-d' flag.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// use Phan\Config;
|
|
||||||
|
|
||||||
return [
|
|
||||||
// If true, missing properties will be created when
|
|
||||||
// they are first seen. If false, we'll report an
|
|
||||||
// error message.
|
|
||||||
"allow_missing_properties" => false,
|
|
||||||
|
|
||||||
// Allow null to be cast as any type and for any
|
|
||||||
// type to be cast to null.
|
|
||||||
"null_casts_as_any_type" => false,
|
|
||||||
|
|
||||||
// Backwards Compatibility Checking
|
|
||||||
'backward_compatibility_checks' => true,
|
|
||||||
|
|
||||||
// Run a quick version of checks that takes less
|
|
||||||
// time
|
|
||||||
"quick_mode" => false,
|
|
||||||
|
|
||||||
// Only emit critical issues to start with
|
|
||||||
// (0 is low severity, 5 is normal severity, 10 is critical)
|
|
||||||
"minimum_severity" => 10,
|
|
||||||
|
|
||||||
// default false for include path check
|
|
||||||
"enable_include_path_checks" => true,
|
|
||||||
"include_paths" => [
|
|
||||||
],
|
|
||||||
'ignore_undeclared_variables_in_global_scope' => true,
|
|
||||||
|
|
||||||
"file_list" => [
|
|
||||||
],
|
|
||||||
|
|
||||||
// A list of directories that should be parsed for class and
|
|
||||||
// method information. After excluding the directories
|
|
||||||
// defined in exclude_analysis_directory_list, the remaining
|
|
||||||
// files will be statically analyzed for errors.
|
|
||||||
//
|
|
||||||
// Thus, both first-party and third-party code being used by
|
|
||||||
// your application should be included in this list.
|
|
||||||
'directory_list' => [
|
|
||||||
// Change this to include the folders you wish to analyze
|
|
||||||
// (and the folders of their dependencies)
|
|
||||||
'.'
|
|
||||||
// 'www',
|
|
||||||
// To speed up analysis, we recommend going back later and
|
|
||||||
// limiting this to only the vendor/ subdirectories your
|
|
||||||
// project depends on.
|
|
||||||
// `phan --init` will generate a list of folders for you
|
|
||||||
],
|
|
||||||
|
|
||||||
|
|
||||||
// A list of directories holding code that we want
|
|
||||||
// to parse, but not analyze
|
|
||||||
"exclude_analysis_directory_list" => [
|
|
||||||
'vendor',
|
|
||||||
'test'
|
|
||||||
],
|
|
||||||
'exclude_file_list' => [
|
|
||||||
],
|
|
||||||
|
|
||||||
// what not to show as problem
|
|
||||||
'suppress_issue_types' => [
|
|
||||||
// 'PhanUndeclaredMethod',
|
|
||||||
'PhanEmptyFile',
|
|
||||||
],
|
|
||||||
|
|
||||||
// Override to hardcode existence and types of (non-builtin) globals in the global scope.
|
|
||||||
// Class names should be prefixed with `\`.
|
|
||||||
//
|
|
||||||
// (E.g. `['_FOO' => '\FooClass', 'page' => '\PageClass', 'userId' => 'int']`)
|
|
||||||
'globals_type_map' => [],
|
|
||||||
];
|
|
||||||
50
vendor/gullevek/dotenv/Readme.md
vendored
50
vendor/gullevek/dotenv/Readme.md
vendored
@@ -1,50 +0,0 @@
|
|||||||
# dotenv: readEnvFile()
|
|
||||||
|
|
||||||
A simple implementation of <https://github.com/vlucas/phpdotenv>
|
|
||||||
|
|
||||||
This is not a functional replacement, but a very simple implementation of the basic functions.
|
|
||||||
|
|
||||||
It is recommended to create a `.env.example` example file that is checked into the
|
|
||||||
repository. The `.env` should *NEVER* be checked into anything
|
|
||||||
|
|
||||||
## How to install
|
|
||||||
|
|
||||||
`comoser require gullevek/dotEnv`
|
|
||||||
|
|
||||||
## How it works
|
|
||||||
|
|
||||||
Put the function where it is needed or put it in a file and load it.
|
|
||||||
|
|
||||||
if not parameter is given it will use `__DIR__` as base path.
|
|
||||||
Second parameter is file name override. Default is `.env`
|
|
||||||
|
|
||||||
Data is loaded into _ENV only.
|
|
||||||
|
|
||||||
If there is already an entry in _ENV then it will not be overwritten.
|
|
||||||
|
|
||||||
## .env file example
|
|
||||||
|
|
||||||
A valid entry has to start with an alphanumeric string, underscores are allowed and
|
|
||||||
then have an equal sign (=). After the equal sign the data block starts. Data can be
|
|
||||||
quoted with double quotes (") and if this is done can stretch over multiple lines.
|
|
||||||
The openeing double quote must be on the same lign as the requal sign (=). If double
|
|
||||||
quoted (") charcters are used it will read each line until another double quote (")
|
|
||||||
character is found. Everything after that is ignored.
|
|
||||||
|
|
||||||
Any spaces before the variable or before and after the equal sign (=) are ignored.
|
|
||||||
|
|
||||||
Line is read until `PHP_EOL`. So any trailing spaces are read too.
|
|
||||||
|
|
||||||
Any line that is not valid is ignored.
|
|
||||||
|
|
||||||
```ini
|
|
||||||
# this line is ignored
|
|
||||||
SOMETHING=A
|
|
||||||
OTHER="A B C"
|
|
||||||
MULTI_LINE="1 2 3
|
|
||||||
4 5 6
|
|
||||||
7 8 9" ; and this is ignored
|
|
||||||
ESCAPE="String \" inside \" other "
|
|
||||||
DOUBLE="I will be used"
|
|
||||||
DOUBLE="This will be ignored"
|
|
||||||
```
|
|
||||||
30
vendor/gullevek/dotenv/composer.json
vendored
30
vendor/gullevek/dotenv/composer.json
vendored
@@ -1,30 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "gullevek/dotenv",
|
|
||||||
"description": "Simple .env file processing and storing in _ENV array",
|
|
||||||
"keywords": [".env", "dotenv", "_ENV", "environment variables"],
|
|
||||||
"type": "library",
|
|
||||||
"license": "MIT",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"gullevek\\dotEnv\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Clemens Schwaighofer",
|
|
||||||
"email": "gullevek@gullevek.org",
|
|
||||||
"homepage": "http://gullevek.org"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"homepage": "https://github.com/gullevek/dotEnv",
|
|
||||||
"minimum-stability": "dev",
|
|
||||||
"require": {
|
|
||||||
"php": ">=7.4.0"
|
|
||||||
},
|
|
||||||
"archive": {
|
|
||||||
"exclude": ["/test/", "/test/*", "/phpstan.neon", "/psalm.xml", "/.phan/", "/.vscode/", "/phpunit.xml"]
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^9"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
10
vendor/gullevek/dotenv/phpstan.neon
vendored
10
vendor/gullevek/dotenv/phpstan.neon
vendored
@@ -1,10 +0,0 @@
|
|||||||
# PHP Stan Config
|
|
||||||
|
|
||||||
parameters:
|
|
||||||
tmpDir: /tmp/phpstan-codeblocks-dotenv
|
|
||||||
level: max
|
|
||||||
paths:
|
|
||||||
- %currentWorkingDirectory%
|
|
||||||
excludePaths:
|
|
||||||
- vendor
|
|
||||||
- test
|
|
||||||
5
vendor/gullevek/dotenv/phpunit.xml
vendored
5
vendor/gullevek/dotenv/phpunit.xml
vendored
@@ -1,5 +0,0 @@
|
|||||||
<phpunit
|
|
||||||
colors="true"
|
|
||||||
verbose="true"
|
|
||||||
>
|
|
||||||
</phpunit>
|
|
||||||
16
vendor/gullevek/dotenv/psalm.xml
vendored
16
vendor/gullevek/dotenv/psalm.xml
vendored
@@ -1,16 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<psalm
|
|
||||||
errorLevel="8"
|
|
||||||
resolveFromConfigFile="true"
|
|
||||||
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"
|
|
||||||
>
|
|
||||||
<projectFiles>
|
|
||||||
<directory name="src" />
|
|
||||||
<ignoreFiles>
|
|
||||||
<directory name="vendor" />
|
|
||||||
<directory name="test" />
|
|
||||||
</ignoreFiles>
|
|
||||||
</projectFiles>
|
|
||||||
</psalm>
|
|
||||||
99
vendor/gullevek/dotenv/src/DotEnv.php
vendored
99
vendor/gullevek/dotenv/src/DotEnv.php
vendored
@@ -1,99 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
namespace gullevek\dotEnv;
|
|
||||||
|
|
||||||
class DotEnv
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* parses .env file
|
|
||||||
*
|
|
||||||
* Rules for .env file
|
|
||||||
* variable is any alphanumeric string followed by = on the same line
|
|
||||||
* content starts with the first non space part
|
|
||||||
* strings can be contained in "
|
|
||||||
* strings MUST be contained in " if they are multiline
|
|
||||||
* if string starts with " it will match until another " is found
|
|
||||||
* anything AFTER " is ignored
|
|
||||||
* if there are two variables with the same name only the first is used
|
|
||||||
* variables are case sensitive
|
|
||||||
*
|
|
||||||
* @param string $path Folder to file, default is __DIR__
|
|
||||||
* @param string $env_file What file to load, default is .env
|
|
||||||
* @return int -1 other error
|
|
||||||
* 0 for success full load
|
|
||||||
* 1 for file loadable, but no data inside
|
|
||||||
* 2 for file not readable or open failed
|
|
||||||
* 3 for file not found
|
|
||||||
*/
|
|
||||||
public static function readEnvFile(
|
|
||||||
string $path = __DIR__,
|
|
||||||
string $env_file = '.env'
|
|
||||||
): int {
|
|
||||||
// default -1;
|
|
||||||
$status = -1;
|
|
||||||
$env_file_target = $path . DIRECTORY_SEPARATOR . $env_file;
|
|
||||||
// this is not a file -> abort
|
|
||||||
if (!is_file($env_file_target)) {
|
|
||||||
$status = 3;
|
|
||||||
return $status;
|
|
||||||
}
|
|
||||||
// cannot open file -> abort
|
|
||||||
if (!is_readable($env_file_target)) {
|
|
||||||
$status = 2;
|
|
||||||
return $status;
|
|
||||||
}
|
|
||||||
// open file
|
|
||||||
if (($fp = fopen($env_file_target, 'r')) === false) {
|
|
||||||
$status = 2;
|
|
||||||
return $status;
|
|
||||||
}
|
|
||||||
// set to readable but not yet any data loaded
|
|
||||||
$status = 1;
|
|
||||||
$block = false;
|
|
||||||
$var = '';
|
|
||||||
while ($line = fgets($fp)) {
|
|
||||||
// main match for variable = value part
|
|
||||||
if (preg_match("/^\s*([\w_.]+)\s*=\s*((\"?).*)/", $line, $matches)) {
|
|
||||||
$var = $matches[1];
|
|
||||||
$value = $matches[2];
|
|
||||||
$quotes = $matches[3];
|
|
||||||
// write only if env is not set yet, and write only the first time
|
|
||||||
if (empty($_ENV[$var])) {
|
|
||||||
if (!empty($quotes)) {
|
|
||||||
// match greedy for first to last so we move any " if there are
|
|
||||||
if (preg_match('/^"(.*[^\\\])"/U', $value, $matches)) {
|
|
||||||
$value = $matches[1];
|
|
||||||
} else {
|
|
||||||
// this is a multi line
|
|
||||||
$block = true;
|
|
||||||
// first " in string remove
|
|
||||||
// add removed new line back because this is a multi line
|
|
||||||
$value = ltrim($value, '"') . PHP_EOL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// if block is set, we strip line of slashes
|
|
||||||
$_ENV[$var] = $block === true ? stripslashes($value) : $value;
|
|
||||||
// set successful load
|
|
||||||
$status = 0;
|
|
||||||
}
|
|
||||||
} elseif ($block === true) {
|
|
||||||
// read line until there is a unescaped "
|
|
||||||
// this also strips everything after the last "
|
|
||||||
if (preg_match("/(.*[^\\\])\"/", $line, $matches)) {
|
|
||||||
$block = false;
|
|
||||||
// strip ending " and EVERYTHING that follows after that
|
|
||||||
$line = $matches[1];
|
|
||||||
}
|
|
||||||
// strip line of slashes
|
|
||||||
$_ENV[$var] .= stripslashes($line);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fclose($fp);
|
|
||||||
return $status;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// __END__
|
|
||||||
4
vendor/gullevek/dotenv/test/.env.example
vendored
4
vendor/gullevek/dotenv/test/.env.example
vendored
@@ -1,4 +0,0 @@
|
|||||||
# example enviroment file
|
|
||||||
SOMETHING=
|
|
||||||
OTHER=
|
|
||||||
Complex=
|
|
||||||
@@ -1,144 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
namespace tests;
|
|
||||||
|
|
||||||
use PHPUnit\Framework\TestCase;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Test class for ACL\Login
|
|
||||||
* @coversDefaultClass \gullevek\DotEnv
|
|
||||||
* @testdox \gullevek\DotEnv method tests
|
|
||||||
*/
|
|
||||||
final class DotEnvTest extends TestCase
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Undocumented function
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function envFileProvider(): array
|
|
||||||
{
|
|
||||||
$dot_env_content = [
|
|
||||||
'SOMETHING' => 'A',
|
|
||||||
'OTHER' => 'B IS B',
|
|
||||||
'Complex' => 'A B \"D is F',
|
|
||||||
'HAS_SPACE' => 'ABC',
|
|
||||||
'FAILURE' => 'ABC',
|
|
||||||
'SIMPLEBOX' => 'A B C',
|
|
||||||
'TITLE' => '1',
|
|
||||||
'FOO' => '1.2',
|
|
||||||
'SOME.TEST' => 'Test Var',
|
|
||||||
'SOME.LIVE' => 'Live Var',
|
|
||||||
'Test' => 'A',
|
|
||||||
'TEST' => 'B',
|
|
||||||
'LINE' => "ABC\nDEF",
|
|
||||||
'OTHERLINE' => "ABC\nAF\"ASFASDF\nMORESHIT",
|
|
||||||
'SUPERLINE' => '',
|
|
||||||
'__FOO_BAR_1' => 'b',
|
|
||||||
'__FOOFOO' => 'f ',
|
|
||||||
123123 => 'number',
|
|
||||||
'EMPTY' => '',
|
|
||||||
];
|
|
||||||
// 0: folder relative to test folder, if unset __DIR__
|
|
||||||
// 1: file, if unset .env
|
|
||||||
// 2: status to be returned
|
|
||||||
// 3: _ENV file content to be set
|
|
||||||
// 4: override chmod as octect in string
|
|
||||||
return [
|
|
||||||
'default' => [
|
|
||||||
'folder' => null,
|
|
||||||
'file' => null,
|
|
||||||
'status' => 3,
|
|
||||||
'content' => [],
|
|
||||||
'chmod' => null,
|
|
||||||
],
|
|
||||||
'cannot open file' => [
|
|
||||||
'folder' => __DIR__ . DIRECTORY_SEPARATOR . 'dotenv',
|
|
||||||
'file' => 'cannot_read.env',
|
|
||||||
'status' => 2,
|
|
||||||
'content' => [],
|
|
||||||
'chmod' => '000',
|
|
||||||
],
|
|
||||||
'empty file' => [
|
|
||||||
'folder' => __DIR__ . DIRECTORY_SEPARATOR . 'dotenv',
|
|
||||||
'file' => 'empty.env',
|
|
||||||
'status' => 1,
|
|
||||||
'content' => [],
|
|
||||||
'chmod' => null,
|
|
||||||
],
|
|
||||||
'override all' => [
|
|
||||||
'folder' => __DIR__ . DIRECTORY_SEPARATOR . 'dotenv',
|
|
||||||
'file' => 'test.env',
|
|
||||||
'status' => 0,
|
|
||||||
'content' => $dot_env_content,
|
|
||||||
'chmod' => null,
|
|
||||||
],
|
|
||||||
'override directory' => [
|
|
||||||
'folder' => __DIR__ . DIRECTORY_SEPARATOR . 'dotenv',
|
|
||||||
'file' => null,
|
|
||||||
'status' => 0,
|
|
||||||
'content' => $dot_env_content,
|
|
||||||
'chmod' => null,
|
|
||||||
],
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* test read .env file
|
|
||||||
*
|
|
||||||
* @covers ::readEnvFile
|
|
||||||
* @dataProvider envFileProvider
|
|
||||||
* @testdox Read _ENV file from $folder / $file with expected status: $expected_status [$_dataName]
|
|
||||||
*
|
|
||||||
* @param string|null $folder
|
|
||||||
* @param string|null $file
|
|
||||||
* @param int $expected_status
|
|
||||||
* @param array $expected_env
|
|
||||||
* @param string|null $chmod
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function testReadEnvFile(
|
|
||||||
?string $folder,
|
|
||||||
?string $file,
|
|
||||||
int $expected_status,
|
|
||||||
array $expected_env,
|
|
||||||
?string $chmod
|
|
||||||
): void {
|
|
||||||
// if we have file + chmod set
|
|
||||||
$old_chmod = null;
|
|
||||||
if (
|
|
||||||
is_file($folder . DIRECTORY_SEPARATOR . $file) &&
|
|
||||||
!empty($chmod)
|
|
||||||
) {
|
|
||||||
// get the old permissions
|
|
||||||
$old_chmod = fileperms($folder . DIRECTORY_SEPARATOR . $file);
|
|
||||||
chmod($folder . DIRECTORY_SEPARATOR . $file, octdec($chmod));
|
|
||||||
}
|
|
||||||
if ($folder !== null && $file !== null) {
|
|
||||||
$status = \gullevek\dotEnv\DotEnv::readEnvFile($folder, $file);
|
|
||||||
} elseif ($folder !== null) {
|
|
||||||
$status = \gullevek\dotEnv\DotEnv::readEnvFile($folder);
|
|
||||||
} else {
|
|
||||||
$status = \gullevek\dotEnv\DotEnv::readEnvFile();
|
|
||||||
}
|
|
||||||
$this->assertEquals(
|
|
||||||
$status,
|
|
||||||
$expected_status,
|
|
||||||
'Assert returned status equal'
|
|
||||||
);
|
|
||||||
// now assert read data
|
|
||||||
$this->assertEquals(
|
|
||||||
$_ENV,
|
|
||||||
$expected_env,
|
|
||||||
'Assert _ENV correct'
|
|
||||||
);
|
|
||||||
// if we have file and chmod unset
|
|
||||||
if ($old_chmod !== null) {
|
|
||||||
chmod($folder . DIRECTORY_SEPARATOR . $file, $old_chmod);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// __END__
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
# enviroment file
|
|
||||||
SOMETHING=A
|
|
||||||
OTHER="B IS B"
|
|
||||||
Complex="A B \"D is F"
|
|
||||||
# COMMENT
|
|
||||||
HAS_SPACE= "ABC";
|
|
||||||
FAILURE = ABC
|
|
||||||
SIMPLEBOX= A B C
|
|
||||||
TITLE=1
|
|
||||||
FOO=1.2
|
|
||||||
SOME.TEST=Test Var
|
|
||||||
SOME.LIVE=Live Var
|
|
||||||
Test="A"
|
|
||||||
TEST="B"
|
|
||||||
TEST="D"
|
|
||||||
LINE="ABC
|
|
||||||
DEF"
|
|
||||||
OTHERLINE="ABC
|
|
||||||
AF\"ASFASDF
|
|
||||||
MORESHIT"
|
|
||||||
SUPERLINE=
|
|
||||||
"asfasfasf"
|
|
||||||
__FOO_BAR_1 = b
|
|
||||||
__FOOFOO = f
|
|
||||||
123123=number
|
|
||||||
EMPTY=
|
|
||||||
= flase
|
|
||||||
asfasdf
|
|
||||||
17
vendor/gullevek/dotenv/test/read_env_file.php
vendored
17
vendor/gullevek/dotenv/test/read_env_file.php
vendored
@@ -1,17 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// composer auto loader
|
|
||||||
$loader = require '../vendor/autoload.php';
|
|
||||||
// need to add this or it will not load here
|
|
||||||
$loader->addPsr4('gullevek\\', __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'src');
|
|
||||||
use gullevek\dotEnv\DotEnv;
|
|
||||||
|
|
||||||
print "BASE: " . __DIR__ . "<br>";
|
|
||||||
print "ORIG: <pre>" . file_get_contents(__DIR__ . DIRECTORY_SEPARATOR . '.env') . "</pre>";
|
|
||||||
|
|
||||||
$status = DotEnv::readEnvFile(__DIR__);
|
|
||||||
|
|
||||||
print "STATUS: " . (string)$status . "<br>";
|
|
||||||
print "ENV: <pre>" . print_r($_ENV, true) . "</pre><br>";
|
|
||||||
|
|
||||||
// __END__
|
|
||||||
12
vendor/myclabs/deep-copy/.github/FUNDING.yml
vendored
12
vendor/myclabs/deep-copy/.github/FUNDING.yml
vendored
@@ -1,12 +0,0 @@
|
|||||||
# These are supported funding model platforms
|
|
||||||
|
|
||||||
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
|
||||||
patreon: # Replace with a single Patreon username
|
|
||||||
open_collective: # Replace with a single Open Collective username
|
|
||||||
ko_fi: # Replace with a single Ko-fi username
|
|
||||||
tidelift: "packagist/myclabs/deep-copy"
|
|
||||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
|
||||||
liberapay: # Replace with a single Liberapay username
|
|
||||||
issuehunt: # Replace with a single IssueHunt username
|
|
||||||
otechie: # Replace with a single Otechie username
|
|
||||||
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
|
||||||
101
vendor/myclabs/deep-copy/.github/workflows/ci.yaml
vendored
101
vendor/myclabs/deep-copy/.github/workflows/ci.yaml
vendored
@@ -1,101 +0,0 @@
|
|||||||
name: "Continuous Integration"
|
|
||||||
|
|
||||||
on:
|
|
||||||
- pull_request
|
|
||||||
- push
|
|
||||||
|
|
||||||
env:
|
|
||||||
COMPOSER_ROOT_VERSION: 1.99
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
composer-json-lint:
|
|
||||||
name: "Lint composer.json"
|
|
||||||
|
|
||||||
runs-on: "ubuntu-latest"
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
php-version:
|
|
||||||
- "8.1"
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: "Checkout"
|
|
||||||
uses: "actions/checkout@v2"
|
|
||||||
|
|
||||||
- name: "Install PHP"
|
|
||||||
uses: "shivammathur/setup-php@v2"
|
|
||||||
with:
|
|
||||||
coverage: "none"
|
|
||||||
php-version: "${{ matrix.php-version }}"
|
|
||||||
tools: composer-normalize
|
|
||||||
|
|
||||||
- name: "Get composer cache directory"
|
|
||||||
id: composercache
|
|
||||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
|
||||||
|
|
||||||
- name: "Cache dependencies"
|
|
||||||
uses: actions/cache@v2
|
|
||||||
with:
|
|
||||||
path: ${{ steps.composercache.outputs.dir }}
|
|
||||||
key: ${{ runner.os }}-php-${{ matrix.php-version }}-${{ matrix.dependencies }}-composer-${{ hashFiles('**/composer.json') }}
|
|
||||||
restore-keys: ${{ runner.os }}-php-${{ matrix.php-version }}-${{ matrix.dependencies }}-composer-
|
|
||||||
|
|
||||||
- name: "Install dependencies"
|
|
||||||
run: "composer update --no-interaction --no-progress"
|
|
||||||
|
|
||||||
- name: "Validate composer.json"
|
|
||||||
run: "composer validate --strict"
|
|
||||||
|
|
||||||
- name: "Normalize composer.json"
|
|
||||||
run: "composer-normalize --dry-run"
|
|
||||||
|
|
||||||
tests:
|
|
||||||
name: "Tests"
|
|
||||||
|
|
||||||
runs-on: "ubuntu-latest"
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
php-version:
|
|
||||||
- "7.1"
|
|
||||||
- "7.2"
|
|
||||||
- "7.3"
|
|
||||||
- "7.4"
|
|
||||||
- "8.0"
|
|
||||||
- "8.1"
|
|
||||||
dependencies:
|
|
||||||
- "lowest"
|
|
||||||
- "highest"
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: "Checkout"
|
|
||||||
uses: "actions/checkout@v2"
|
|
||||||
|
|
||||||
- name: "Install PHP"
|
|
||||||
uses: "shivammathur/setup-php@v2"
|
|
||||||
with:
|
|
||||||
php-version: "${{ matrix.php-version }}"
|
|
||||||
ini-values: zend.assertions=1
|
|
||||||
|
|
||||||
- name: "Get composer cache directory"
|
|
||||||
id: composercache
|
|
||||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
|
||||||
|
|
||||||
- name: "Cache dependencies"
|
|
||||||
uses: actions/cache@v2
|
|
||||||
with:
|
|
||||||
path: ${{ steps.composercache.outputs.dir }}
|
|
||||||
key: ${{ runner.os }}-php-${{ matrix.php-version }}-${{ matrix.dependencies }}-composer-${{ hashFiles('**/composer.json') }}
|
|
||||||
restore-keys: ${{ runner.os }}-php-${{ matrix.php-version }}-${{ matrix.dependencies }}-composer-
|
|
||||||
|
|
||||||
- name: "Install lowest dependencies"
|
|
||||||
if: ${{ matrix.dependencies == 'lowest' }}
|
|
||||||
run: "composer update --no-interaction --no-progress --prefer-lowest"
|
|
||||||
|
|
||||||
- name: "Install highest dependencies"
|
|
||||||
if: ${{ matrix.dependencies == 'highest' }}
|
|
||||||
run: "composer update --no-interaction --no-progress"
|
|
||||||
|
|
||||||
- name: "Run tests"
|
|
||||||
timeout-minutes: 3
|
|
||||||
run: "vendor/bin/phpunit"
|
|
||||||
20
vendor/myclabs/deep-copy/LICENSE
vendored
20
vendor/myclabs/deep-copy/LICENSE
vendored
@@ -1,20 +0,0 @@
|
|||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2013 My C-Sense
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
||||||
this software and associated documentation files (the "Software"), to deal in
|
|
||||||
the Software without restriction, including without limitation the rights to
|
|
||||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
||||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
|
||||||
subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
||||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
||||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
||||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
||||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
373
vendor/myclabs/deep-copy/README.md
vendored
373
vendor/myclabs/deep-copy/README.md
vendored
@@ -1,373 +0,0 @@
|
|||||||
# DeepCopy
|
|
||||||
|
|
||||||
DeepCopy helps you create deep copies (clones) of your objects. It is designed to handle cycles in the association graph.
|
|
||||||
|
|
||||||
[](https://packagist.org/packages/myclabs/deep-copy)
|
|
||||||
[](https://github.com/myclabs/DeepCopy/actions)
|
|
||||||
|
|
||||||
## Table of Contents
|
|
||||||
|
|
||||||
1. [How](#how)
|
|
||||||
1. [Why](#why)
|
|
||||||
1. [Using simply `clone`](#using-simply-clone)
|
|
||||||
1. [Overriding `__clone()`](#overriding-__clone)
|
|
||||||
1. [With `DeepCopy`](#with-deepcopy)
|
|
||||||
1. [How it works](#how-it-works)
|
|
||||||
1. [Going further](#going-further)
|
|
||||||
1. [Matchers](#matchers)
|
|
||||||
1. [Property name](#property-name)
|
|
||||||
1. [Specific property](#specific-property)
|
|
||||||
1. [Type](#type)
|
|
||||||
1. [Filters](#filters)
|
|
||||||
1. [`SetNullFilter`](#setnullfilter-filter)
|
|
||||||
1. [`KeepFilter`](#keepfilter-filter)
|
|
||||||
1. [`DoctrineCollectionFilter`](#doctrinecollectionfilter-filter)
|
|
||||||
1. [`DoctrineEmptyCollectionFilter`](#doctrineemptycollectionfilter-filter)
|
|
||||||
1. [`DoctrineProxyFilter`](#doctrineproxyfilter-filter)
|
|
||||||
1. [`ReplaceFilter`](#replacefilter-type-filter)
|
|
||||||
1. [`ShallowCopyFilter`](#shallowcopyfilter-type-filter)
|
|
||||||
1. [Edge cases](#edge-cases)
|
|
||||||
1. [Contributing](#contributing)
|
|
||||||
1. [Tests](#tests)
|
|
||||||
|
|
||||||
|
|
||||||
## How?
|
|
||||||
|
|
||||||
Install with Composer:
|
|
||||||
|
|
||||||
```
|
|
||||||
composer require myclabs/deep-copy
|
|
||||||
```
|
|
||||||
|
|
||||||
Use it:
|
|
||||||
|
|
||||||
```php
|
|
||||||
use DeepCopy\DeepCopy;
|
|
||||||
|
|
||||||
$copier = new DeepCopy();
|
|
||||||
$myCopy = $copier->copy($myObject);
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
## Why?
|
|
||||||
|
|
||||||
- How do you create copies of your objects?
|
|
||||||
|
|
||||||
```php
|
|
||||||
$myCopy = clone $myObject;
|
|
||||||
```
|
|
||||||
|
|
||||||
- How do you create **deep** copies of your objects (i.e. copying also all the objects referenced in the properties)?
|
|
||||||
|
|
||||||
You use [`__clone()`](http://www.php.net/manual/en/language.oop5.cloning.php#object.clone) and implement the behavior
|
|
||||||
yourself.
|
|
||||||
|
|
||||||
- But how do you handle **cycles** in the association graph?
|
|
||||||
|
|
||||||
Now you're in for a big mess :(
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|
|
||||||
### Using simply `clone`
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|
|
||||||
### Overriding `__clone()`
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|
|
||||||
### With `DeepCopy`
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|
|
||||||
## How it works
|
|
||||||
|
|
||||||
DeepCopy recursively traverses all the object's properties and clones them. To avoid cloning the same object twice it
|
|
||||||
keeps a hash map of all instances and thus preserves the object graph.
|
|
||||||
|
|
||||||
To use it:
|
|
||||||
|
|
||||||
```php
|
|
||||||
use function DeepCopy\deep_copy;
|
|
||||||
|
|
||||||
$copy = deep_copy($var);
|
|
||||||
```
|
|
||||||
|
|
||||||
Alternatively, you can create your own `DeepCopy` instance to configure it differently for example:
|
|
||||||
|
|
||||||
```php
|
|
||||||
use DeepCopy\DeepCopy;
|
|
||||||
|
|
||||||
$copier = new DeepCopy(true);
|
|
||||||
|
|
||||||
$copy = $copier->copy($var);
|
|
||||||
```
|
|
||||||
|
|
||||||
You may want to roll your own deep copy function:
|
|
||||||
|
|
||||||
```php
|
|
||||||
namespace Acme;
|
|
||||||
|
|
||||||
use DeepCopy\DeepCopy;
|
|
||||||
|
|
||||||
function deep_copy($var)
|
|
||||||
{
|
|
||||||
static $copier = null;
|
|
||||||
|
|
||||||
if (null === $copier) {
|
|
||||||
$copier = new DeepCopy(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $copier->copy($var);
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
## Going further
|
|
||||||
|
|
||||||
You can add filters to customize the copy process.
|
|
||||||
|
|
||||||
The method to add a filter is `DeepCopy\DeepCopy::addFilter($filter, $matcher)`,
|
|
||||||
with `$filter` implementing `DeepCopy\Filter\Filter`
|
|
||||||
and `$matcher` implementing `DeepCopy\Matcher\Matcher`.
|
|
||||||
|
|
||||||
We provide some generic filters and matchers.
|
|
||||||
|
|
||||||
|
|
||||||
### Matchers
|
|
||||||
|
|
||||||
- `DeepCopy\Matcher` applies on a object attribute.
|
|
||||||
- `DeepCopy\TypeMatcher` applies on any element found in graph, including array elements.
|
|
||||||
|
|
||||||
|
|
||||||
#### Property name
|
|
||||||
|
|
||||||
The `PropertyNameMatcher` will match a property by its name:
|
|
||||||
|
|
||||||
```php
|
|
||||||
use DeepCopy\Matcher\PropertyNameMatcher;
|
|
||||||
|
|
||||||
// Will apply a filter to any property of any objects named "id"
|
|
||||||
$matcher = new PropertyNameMatcher('id');
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
#### Specific property
|
|
||||||
|
|
||||||
The `PropertyMatcher` will match a specific property of a specific class:
|
|
||||||
|
|
||||||
```php
|
|
||||||
use DeepCopy\Matcher\PropertyMatcher;
|
|
||||||
|
|
||||||
// Will apply a filter to the property "id" of any objects of the class "MyClass"
|
|
||||||
$matcher = new PropertyMatcher('MyClass', 'id');
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
#### Type
|
|
||||||
|
|
||||||
The `TypeMatcher` will match any element by its type (instance of a class or any value that could be parameter of
|
|
||||||
[gettype()](http://php.net/manual/en/function.gettype.php) function):
|
|
||||||
|
|
||||||
```php
|
|
||||||
use DeepCopy\TypeMatcher\TypeMatcher;
|
|
||||||
|
|
||||||
// Will apply a filter to any object that is an instance of Doctrine\Common\Collections\Collection
|
|
||||||
$matcher = new TypeMatcher('Doctrine\Common\Collections\Collection');
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
### Filters
|
|
||||||
|
|
||||||
- `DeepCopy\Filter` applies a transformation to the object attribute matched by `DeepCopy\Matcher`
|
|
||||||
- `DeepCopy\TypeFilter` applies a transformation to any element matched by `DeepCopy\TypeMatcher`
|
|
||||||
|
|
||||||
|
|
||||||
#### `SetNullFilter` (filter)
|
|
||||||
|
|
||||||
Let's say for example that you are copying a database record (or a Doctrine entity), so you want the copy not to have
|
|
||||||
any ID:
|
|
||||||
|
|
||||||
```php
|
|
||||||
use DeepCopy\DeepCopy;
|
|
||||||
use DeepCopy\Filter\SetNullFilter;
|
|
||||||
use DeepCopy\Matcher\PropertyNameMatcher;
|
|
||||||
|
|
||||||
$object = MyClass::load(123);
|
|
||||||
echo $object->id; // 123
|
|
||||||
|
|
||||||
$copier = new DeepCopy();
|
|
||||||
$copier->addFilter(new SetNullFilter(), new PropertyNameMatcher('id'));
|
|
||||||
|
|
||||||
$copy = $copier->copy($object);
|
|
||||||
|
|
||||||
echo $copy->id; // null
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
#### `KeepFilter` (filter)
|
|
||||||
|
|
||||||
If you want a property to remain untouched (for example, an association to an object):
|
|
||||||
|
|
||||||
```php
|
|
||||||
use DeepCopy\DeepCopy;
|
|
||||||
use DeepCopy\Filter\KeepFilter;
|
|
||||||
use DeepCopy\Matcher\PropertyMatcher;
|
|
||||||
|
|
||||||
$copier = new DeepCopy();
|
|
||||||
$copier->addFilter(new KeepFilter(), new PropertyMatcher('MyClass', 'category'));
|
|
||||||
|
|
||||||
$copy = $copier->copy($object);
|
|
||||||
// $copy->category has not been touched
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
#### `DoctrineCollectionFilter` (filter)
|
|
||||||
|
|
||||||
If you use Doctrine and want to copy an entity, you will need to use the `DoctrineCollectionFilter`:
|
|
||||||
|
|
||||||
```php
|
|
||||||
use DeepCopy\DeepCopy;
|
|
||||||
use DeepCopy\Filter\Doctrine\DoctrineCollectionFilter;
|
|
||||||
use DeepCopy\Matcher\PropertyTypeMatcher;
|
|
||||||
|
|
||||||
$copier = new DeepCopy();
|
|
||||||
$copier->addFilter(new DoctrineCollectionFilter(), new PropertyTypeMatcher('Doctrine\Common\Collections\Collection'));
|
|
||||||
|
|
||||||
$copy = $copier->copy($object);
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
#### `DoctrineEmptyCollectionFilter` (filter)
|
|
||||||
|
|
||||||
If you use Doctrine and want to copy an entity who contains a `Collection` that you want to be reset, you can use the
|
|
||||||
`DoctrineEmptyCollectionFilter`
|
|
||||||
|
|
||||||
```php
|
|
||||||
use DeepCopy\DeepCopy;
|
|
||||||
use DeepCopy\Filter\Doctrine\DoctrineEmptyCollectionFilter;
|
|
||||||
use DeepCopy\Matcher\PropertyMatcher;
|
|
||||||
|
|
||||||
$copier = new DeepCopy();
|
|
||||||
$copier->addFilter(new DoctrineEmptyCollectionFilter(), new PropertyMatcher('MyClass', 'myProperty'));
|
|
||||||
|
|
||||||
$copy = $copier->copy($object);
|
|
||||||
|
|
||||||
// $copy->myProperty will return an empty collection
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
#### `DoctrineProxyFilter` (filter)
|
|
||||||
|
|
||||||
If you use Doctrine and use cloning on lazy loaded entities, you might encounter errors mentioning missing fields on a
|
|
||||||
Doctrine proxy class (...\\\_\_CG\_\_\Proxy).
|
|
||||||
You can use the `DoctrineProxyFilter` to load the actual entity behind the Doctrine proxy class.
|
|
||||||
**Make sure, though, to put this as one of your very first filters in the filter chain so that the entity is loaded
|
|
||||||
before other filters are applied!**
|
|
||||||
|
|
||||||
```php
|
|
||||||
use DeepCopy\DeepCopy;
|
|
||||||
use DeepCopy\Filter\Doctrine\DoctrineProxyFilter;
|
|
||||||
use DeepCopy\Matcher\Doctrine\DoctrineProxyMatcher;
|
|
||||||
|
|
||||||
$copier = new DeepCopy();
|
|
||||||
$copier->addFilter(new DoctrineProxyFilter(), new DoctrineProxyMatcher());
|
|
||||||
|
|
||||||
$copy = $copier->copy($object);
|
|
||||||
|
|
||||||
// $copy should now contain a clone of all entities, including those that were not yet fully loaded.
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
#### `ReplaceFilter` (type filter)
|
|
||||||
|
|
||||||
1. If you want to replace the value of a property:
|
|
||||||
|
|
||||||
```php
|
|
||||||
use DeepCopy\DeepCopy;
|
|
||||||
use DeepCopy\Filter\ReplaceFilter;
|
|
||||||
use DeepCopy\Matcher\PropertyMatcher;
|
|
||||||
|
|
||||||
$copier = new DeepCopy();
|
|
||||||
$callback = function ($currentValue) {
|
|
||||||
return $currentValue . ' (copy)'
|
|
||||||
};
|
|
||||||
$copier->addFilter(new ReplaceFilter($callback), new PropertyMatcher('MyClass', 'title'));
|
|
||||||
|
|
||||||
$copy = $copier->copy($object);
|
|
||||||
|
|
||||||
// $copy->title will contain the data returned by the callback, e.g. 'The title (copy)'
|
|
||||||
```
|
|
||||||
|
|
||||||
2. If you want to replace whole element:
|
|
||||||
|
|
||||||
```php
|
|
||||||
use DeepCopy\DeepCopy;
|
|
||||||
use DeepCopy\TypeFilter\ReplaceFilter;
|
|
||||||
use DeepCopy\TypeMatcher\TypeMatcher;
|
|
||||||
|
|
||||||
$copier = new DeepCopy();
|
|
||||||
$callback = function (MyClass $myClass) {
|
|
||||||
return get_class($myClass);
|
|
||||||
};
|
|
||||||
$copier->addTypeFilter(new ReplaceFilter($callback), new TypeMatcher('MyClass'));
|
|
||||||
|
|
||||||
$copy = $copier->copy([new MyClass, 'some string', new MyClass]);
|
|
||||||
|
|
||||||
// $copy will contain ['MyClass', 'some string', 'MyClass']
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
The `$callback` parameter of the `ReplaceFilter` constructor accepts any PHP callable.
|
|
||||||
|
|
||||||
|
|
||||||
#### `ShallowCopyFilter` (type filter)
|
|
||||||
|
|
||||||
Stop *DeepCopy* from recursively copying element, using standard `clone` instead:
|
|
||||||
|
|
||||||
```php
|
|
||||||
use DeepCopy\DeepCopy;
|
|
||||||
use DeepCopy\TypeFilter\ShallowCopyFilter;
|
|
||||||
use DeepCopy\TypeMatcher\TypeMatcher;
|
|
||||||
use Mockery as m;
|
|
||||||
|
|
||||||
$this->deepCopy = new DeepCopy();
|
|
||||||
$this->deepCopy->addTypeFilter(
|
|
||||||
new ShallowCopyFilter,
|
|
||||||
new TypeMatcher(m\MockInterface::class)
|
|
||||||
);
|
|
||||||
|
|
||||||
$myServiceWithMocks = new MyService(m::mock(MyDependency1::class), m::mock(MyDependency2::class));
|
|
||||||
// All mocks will be just cloned, not deep copied
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
## Edge cases
|
|
||||||
|
|
||||||
The following structures cannot be deep-copied with PHP Reflection. As a result they are shallow cloned and filters are
|
|
||||||
not applied. There is two ways for you to handle them:
|
|
||||||
|
|
||||||
- Implement your own `__clone()` method
|
|
||||||
- Use a filter with a type matcher
|
|
||||||
|
|
||||||
|
|
||||||
## Contributing
|
|
||||||
|
|
||||||
DeepCopy is distributed under the MIT license.
|
|
||||||
|
|
||||||
|
|
||||||
### Tests
|
|
||||||
|
|
||||||
Running the tests is simple:
|
|
||||||
|
|
||||||
```php
|
|
||||||
vendor/bin/phpunit
|
|
||||||
```
|
|
||||||
|
|
||||||
### Support
|
|
||||||
|
|
||||||
Get professional support via [the Tidelift Subscription](https://tidelift.com/subscription/pkg/packagist-myclabs-deep-copy?utm_source=packagist-myclabs-deep-copy&utm_medium=referral&utm_campaign=readme).
|
|
||||||
42
vendor/myclabs/deep-copy/composer.json
vendored
42
vendor/myclabs/deep-copy/composer.json
vendored
@@ -1,42 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "myclabs/deep-copy",
|
|
||||||
"description": "Create deep copies (clones) of your objects",
|
|
||||||
"license": "MIT",
|
|
||||||
"type": "library",
|
|
||||||
"keywords": [
|
|
||||||
"clone",
|
|
||||||
"copy",
|
|
||||||
"duplicate",
|
|
||||||
"object",
|
|
||||||
"object graph"
|
|
||||||
],
|
|
||||||
"require": {
|
|
||||||
"php": "^7.1 || ^8.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"doctrine/collections": "^1.6.8",
|
|
||||||
"doctrine/common": "^2.13.3 || ^3.2.2",
|
|
||||||
"phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
|
|
||||||
},
|
|
||||||
"conflict": {
|
|
||||||
"doctrine/collections": "<1.6.8",
|
|
||||||
"doctrine/common": "<2.13.3 || >=3,<3.2.2"
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"DeepCopy\\": "src/DeepCopy/"
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"src/DeepCopy/deep_copy.php"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"autoload-dev": {
|
|
||||||
"psr-4": {
|
|
||||||
"DeepCopy\\": "fixtures/",
|
|
||||||
"DeepCopyTest\\": "tests/DeepCopyTest/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"config": {
|
|
||||||
"sort-packages": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
303
vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php
vendored
303
vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php
vendored
@@ -1,303 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace DeepCopy;
|
|
||||||
|
|
||||||
use ArrayObject;
|
|
||||||
use DateInterval;
|
|
||||||
use DateTimeInterface;
|
|
||||||
use DateTimeZone;
|
|
||||||
use DeepCopy\Exception\CloneException;
|
|
||||||
use DeepCopy\Filter\Filter;
|
|
||||||
use DeepCopy\Matcher\Matcher;
|
|
||||||
use DeepCopy\Reflection\ReflectionHelper;
|
|
||||||
use DeepCopy\TypeFilter\Date\DateIntervalFilter;
|
|
||||||
use DeepCopy\TypeFilter\Spl\ArrayObjectFilter;
|
|
||||||
use DeepCopy\TypeFilter\Spl\SplDoublyLinkedListFilter;
|
|
||||||
use DeepCopy\TypeFilter\TypeFilter;
|
|
||||||
use DeepCopy\TypeMatcher\TypeMatcher;
|
|
||||||
use ReflectionObject;
|
|
||||||
use ReflectionProperty;
|
|
||||||
use SplDoublyLinkedList;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @final
|
|
||||||
*/
|
|
||||||
class DeepCopy
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var object[] List of objects copied.
|
|
||||||
*/
|
|
||||||
private $hashMap = [];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Filters to apply.
|
|
||||||
*
|
|
||||||
* @var array Array of ['filter' => Filter, 'matcher' => Matcher] pairs.
|
|
||||||
*/
|
|
||||||
private $filters = [];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Type Filters to apply.
|
|
||||||
*
|
|
||||||
* @var array Array of ['filter' => Filter, 'matcher' => Matcher] pairs.
|
|
||||||
*/
|
|
||||||
private $typeFilters = [];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var bool
|
|
||||||
*/
|
|
||||||
private $skipUncloneable = false;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var bool
|
|
||||||
*/
|
|
||||||
private $useCloneMethod;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param bool $useCloneMethod If set to true, when an object implements the __clone() function, it will be used
|
|
||||||
* instead of the regular deep cloning.
|
|
||||||
*/
|
|
||||||
public function __construct($useCloneMethod = false)
|
|
||||||
{
|
|
||||||
$this->useCloneMethod = $useCloneMethod;
|
|
||||||
|
|
||||||
$this->addTypeFilter(new ArrayObjectFilter($this), new TypeMatcher(ArrayObject::class));
|
|
||||||
$this->addTypeFilter(new DateIntervalFilter(), new TypeMatcher(DateInterval::class));
|
|
||||||
$this->addTypeFilter(new SplDoublyLinkedListFilter($this), new TypeMatcher(SplDoublyLinkedList::class));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If enabled, will not throw an exception when coming across an uncloneable property.
|
|
||||||
*
|
|
||||||
* @param $skipUncloneable
|
|
||||||
*
|
|
||||||
* @return $this
|
|
||||||
*/
|
|
||||||
public function skipUncloneable($skipUncloneable = true)
|
|
||||||
{
|
|
||||||
$this->skipUncloneable = $skipUncloneable;
|
|
||||||
|
|
||||||
return $this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Deep copies the given object.
|
|
||||||
*
|
|
||||||
* @param mixed $object
|
|
||||||
*
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public function copy($object)
|
|
||||||
{
|
|
||||||
$this->hashMap = [];
|
|
||||||
|
|
||||||
return $this->recursiveCopy($object);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function addFilter(Filter $filter, Matcher $matcher)
|
|
||||||
{
|
|
||||||
$this->filters[] = [
|
|
||||||
'matcher' => $matcher,
|
|
||||||
'filter' => $filter,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
public function prependFilter(Filter $filter, Matcher $matcher)
|
|
||||||
{
|
|
||||||
array_unshift($this->filters, [
|
|
||||||
'matcher' => $matcher,
|
|
||||||
'filter' => $filter,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function addTypeFilter(TypeFilter $filter, TypeMatcher $matcher)
|
|
||||||
{
|
|
||||||
$this->typeFilters[] = [
|
|
||||||
'matcher' => $matcher,
|
|
||||||
'filter' => $filter,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
private function recursiveCopy($var)
|
|
||||||
{
|
|
||||||
// Matches Type Filter
|
|
||||||
if ($filter = $this->getFirstMatchedTypeFilter($this->typeFilters, $var)) {
|
|
||||||
return $filter->apply($var);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Resource
|
|
||||||
if (is_resource($var)) {
|
|
||||||
return $var;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Array
|
|
||||||
if (is_array($var)) {
|
|
||||||
return $this->copyArray($var);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Scalar
|
|
||||||
if (! is_object($var)) {
|
|
||||||
return $var;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Enum
|
|
||||||
if (PHP_VERSION_ID >= 80100 && enum_exists(get_class($var))) {
|
|
||||||
return $var;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Object
|
|
||||||
return $this->copyObject($var);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Copy an array
|
|
||||||
* @param array $array
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
private function copyArray(array $array)
|
|
||||||
{
|
|
||||||
foreach ($array as $key => $value) {
|
|
||||||
$array[$key] = $this->recursiveCopy($value);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $array;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Copies an object.
|
|
||||||
*
|
|
||||||
* @param object $object
|
|
||||||
*
|
|
||||||
* @throws CloneException
|
|
||||||
*
|
|
||||||
* @return object
|
|
||||||
*/
|
|
||||||
private function copyObject($object)
|
|
||||||
{
|
|
||||||
$objectHash = spl_object_hash($object);
|
|
||||||
|
|
||||||
if (isset($this->hashMap[$objectHash])) {
|
|
||||||
return $this->hashMap[$objectHash];
|
|
||||||
}
|
|
||||||
|
|
||||||
$reflectedObject = new ReflectionObject($object);
|
|
||||||
$isCloneable = $reflectedObject->isCloneable();
|
|
||||||
|
|
||||||
if (false === $isCloneable) {
|
|
||||||
if ($this->skipUncloneable) {
|
|
||||||
$this->hashMap[$objectHash] = $object;
|
|
||||||
|
|
||||||
return $object;
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new CloneException(
|
|
||||||
sprintf(
|
|
||||||
'The class "%s" is not cloneable.',
|
|
||||||
$reflectedObject->getName()
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
$newObject = clone $object;
|
|
||||||
$this->hashMap[$objectHash] = $newObject;
|
|
||||||
|
|
||||||
if ($this->useCloneMethod && $reflectedObject->hasMethod('__clone')) {
|
|
||||||
return $newObject;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($newObject instanceof DateTimeInterface || $newObject instanceof DateTimeZone) {
|
|
||||||
return $newObject;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (ReflectionHelper::getProperties($reflectedObject) as $property) {
|
|
||||||
$this->copyObjectProperty($newObject, $property);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $newObject;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function copyObjectProperty($object, ReflectionProperty $property)
|
|
||||||
{
|
|
||||||
// Ignore static properties
|
|
||||||
if ($property->isStatic()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Apply the filters
|
|
||||||
foreach ($this->filters as $item) {
|
|
||||||
/** @var Matcher $matcher */
|
|
||||||
$matcher = $item['matcher'];
|
|
||||||
/** @var Filter $filter */
|
|
||||||
$filter = $item['filter'];
|
|
||||||
|
|
||||||
if ($matcher->matches($object, $property->getName())) {
|
|
||||||
$filter->apply(
|
|
||||||
$object,
|
|
||||||
$property->getName(),
|
|
||||||
function ($object) {
|
|
||||||
return $this->recursiveCopy($object);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
// If a filter matches, we stop processing this property
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$property->setAccessible(true);
|
|
||||||
|
|
||||||
// Ignore uninitialized properties (for PHP >7.4)
|
|
||||||
if (method_exists($property, 'isInitialized') && !$property->isInitialized($object)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$propertyValue = $property->getValue($object);
|
|
||||||
|
|
||||||
// Copy the property
|
|
||||||
$property->setValue($object, $this->recursiveCopy($propertyValue));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns first filter that matches variable, `null` if no such filter found.
|
|
||||||
*
|
|
||||||
* @param array $filterRecords Associative array with 2 members: 'filter' with value of type {@see TypeFilter} and
|
|
||||||
* 'matcher' with value of type {@see TypeMatcher}
|
|
||||||
* @param mixed $var
|
|
||||||
*
|
|
||||||
* @return TypeFilter|null
|
|
||||||
*/
|
|
||||||
private function getFirstMatchedTypeFilter(array $filterRecords, $var)
|
|
||||||
{
|
|
||||||
$matched = $this->first(
|
|
||||||
$filterRecords,
|
|
||||||
function (array $record) use ($var) {
|
|
||||||
/* @var TypeMatcher $matcher */
|
|
||||||
$matcher = $record['matcher'];
|
|
||||||
|
|
||||||
return $matcher->matches($var);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
return isset($matched) ? $matched['filter'] : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns first element that matches predicate, `null` if no such element found.
|
|
||||||
*
|
|
||||||
* @param array $elements Array of ['filter' => Filter, 'matcher' => Matcher] pairs.
|
|
||||||
* @param callable $predicate Predicate arguments are: element.
|
|
||||||
*
|
|
||||||
* @return array|null Associative array with 2 members: 'filter' with value of type {@see TypeFilter} and 'matcher'
|
|
||||||
* with value of type {@see TypeMatcher} or `null`.
|
|
||||||
*/
|
|
||||||
private function first(array $elements, callable $predicate)
|
|
||||||
{
|
|
||||||
foreach ($elements as $element) {
|
|
||||||
if (call_user_func($predicate, $element)) {
|
|
||||||
return $element;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace DeepCopy\Exception;
|
|
||||||
|
|
||||||
use UnexpectedValueException;
|
|
||||||
|
|
||||||
class CloneException extends UnexpectedValueException
|
|
||||||
{
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace DeepCopy\Exception;
|
|
||||||
|
|
||||||
use ReflectionException;
|
|
||||||
|
|
||||||
class PropertyException extends ReflectionException
|
|
||||||
{
|
|
||||||
}
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace DeepCopy\Filter\Doctrine;
|
|
||||||
|
|
||||||
use DeepCopy\Filter\Filter;
|
|
||||||
use DeepCopy\Reflection\ReflectionHelper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @final
|
|
||||||
*/
|
|
||||||
class DoctrineCollectionFilter implements Filter
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Copies the object property doctrine collection.
|
|
||||||
*
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function apply($object, $property, $objectCopier)
|
|
||||||
{
|
|
||||||
$reflectionProperty = ReflectionHelper::getProperty($object, $property);
|
|
||||||
|
|
||||||
$reflectionProperty->setAccessible(true);
|
|
||||||
$oldCollection = $reflectionProperty->getValue($object);
|
|
||||||
|
|
||||||
$newCollection = $oldCollection->map(
|
|
||||||
function ($item) use ($objectCopier) {
|
|
||||||
return $objectCopier($item);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
$reflectionProperty->setValue($object, $newCollection);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace DeepCopy\Filter\Doctrine;
|
|
||||||
|
|
||||||
use DeepCopy\Filter\Filter;
|
|
||||||
use DeepCopy\Reflection\ReflectionHelper;
|
|
||||||
use Doctrine\Common\Collections\ArrayCollection;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @final
|
|
||||||
*/
|
|
||||||
class DoctrineEmptyCollectionFilter implements Filter
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Sets the object property to an empty doctrine collection.
|
|
||||||
*
|
|
||||||
* @param object $object
|
|
||||||
* @param string $property
|
|
||||||
* @param callable $objectCopier
|
|
||||||
*/
|
|
||||||
public function apply($object, $property, $objectCopier)
|
|
||||||
{
|
|
||||||
$reflectionProperty = ReflectionHelper::getProperty($object, $property);
|
|
||||||
$reflectionProperty->setAccessible(true);
|
|
||||||
|
|
||||||
$reflectionProperty->setValue($object, new ArrayCollection());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace DeepCopy\Filter\Doctrine;
|
|
||||||
|
|
||||||
use DeepCopy\Filter\Filter;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @final
|
|
||||||
*/
|
|
||||||
class DoctrineProxyFilter implements Filter
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Triggers the magic method __load() on a Doctrine Proxy class to load the
|
|
||||||
* actual entity from the database.
|
|
||||||
*
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function apply($object, $property, $objectCopier)
|
|
||||||
{
|
|
||||||
$object->__load();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace DeepCopy\Filter;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Filter to apply to a property while copying an object
|
|
||||||
*/
|
|
||||||
interface Filter
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Applies the filter to the object.
|
|
||||||
*
|
|
||||||
* @param object $object
|
|
||||||
* @param string $property
|
|
||||||
* @param callable $objectCopier
|
|
||||||
*/
|
|
||||||
public function apply($object, $property, $objectCopier);
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace DeepCopy\Filter;
|
|
||||||
|
|
||||||
class KeepFilter implements Filter
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Keeps the value of the object property.
|
|
||||||
*
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function apply($object, $property, $objectCopier)
|
|
||||||
{
|
|
||||||
// Nothing to do
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace DeepCopy\Filter;
|
|
||||||
|
|
||||||
use DeepCopy\Reflection\ReflectionHelper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @final
|
|
||||||
*/
|
|
||||||
class ReplaceFilter implements Filter
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var callable
|
|
||||||
*/
|
|
||||||
protected $callback;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param callable $callable Will be called to get the new value for each property to replace
|
|
||||||
*/
|
|
||||||
public function __construct(callable $callable)
|
|
||||||
{
|
|
||||||
$this->callback = $callable;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Replaces the object property by the result of the callback called with the object property.
|
|
||||||
*
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function apply($object, $property, $objectCopier)
|
|
||||||
{
|
|
||||||
$reflectionProperty = ReflectionHelper::getProperty($object, $property);
|
|
||||||
$reflectionProperty->setAccessible(true);
|
|
||||||
|
|
||||||
$value = call_user_func($this->callback, $reflectionProperty->getValue($object));
|
|
||||||
|
|
||||||
$reflectionProperty->setValue($object, $value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace DeepCopy\Filter;
|
|
||||||
|
|
||||||
use DeepCopy\Reflection\ReflectionHelper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @final
|
|
||||||
*/
|
|
||||||
class SetNullFilter implements Filter
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Sets the object property to null.
|
|
||||||
*
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function apply($object, $property, $objectCopier)
|
|
||||||
{
|
|
||||||
$reflectionProperty = ReflectionHelper::getProperty($object, $property);
|
|
||||||
|
|
||||||
$reflectionProperty->setAccessible(true);
|
|
||||||
$reflectionProperty->setValue($object, null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace DeepCopy\Matcher\Doctrine;
|
|
||||||
|
|
||||||
use DeepCopy\Matcher\Matcher;
|
|
||||||
use Doctrine\Persistence\Proxy;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @final
|
|
||||||
*/
|
|
||||||
class DoctrineProxyMatcher implements Matcher
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Matches a Doctrine Proxy class.
|
|
||||||
*
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function matches($object, $property)
|
|
||||||
{
|
|
||||||
return $object instanceof Proxy;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace DeepCopy\Matcher;
|
|
||||||
|
|
||||||
interface Matcher
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @param object $object
|
|
||||||
* @param string $property
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*/
|
|
||||||
public function matches($object, $property);
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace DeepCopy\Matcher;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @final
|
|
||||||
*/
|
|
||||||
class PropertyMatcher implements Matcher
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private $class;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private $property;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $class Class name
|
|
||||||
* @param string $property Property name
|
|
||||||
*/
|
|
||||||
public function __construct($class, $property)
|
|
||||||
{
|
|
||||||
$this->class = $class;
|
|
||||||
$this->property = $property;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Matches a specific property of a specific class.
|
|
||||||
*
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function matches($object, $property)
|
|
||||||
{
|
|
||||||
return ($object instanceof $this->class) && $property == $this->property;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace DeepCopy\Matcher;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @final
|
|
||||||
*/
|
|
||||||
class PropertyNameMatcher implements Matcher
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private $property;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $property Property name
|
|
||||||
*/
|
|
||||||
public function __construct($property)
|
|
||||||
{
|
|
||||||
$this->property = $property;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Matches a property by its name.
|
|
||||||
*
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function matches($object, $property)
|
|
||||||
{
|
|
||||||
return $property == $this->property;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace DeepCopy\Matcher;
|
|
||||||
|
|
||||||
use DeepCopy\Reflection\ReflectionHelper;
|
|
||||||
use ReflectionException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Matches a property by its type.
|
|
||||||
*
|
|
||||||
* It is recommended to use {@see DeepCopy\TypeFilter\TypeFilter} instead, as it applies on all occurrences
|
|
||||||
* of given type in copied context (eg. array elements), not just on object properties.
|
|
||||||
*
|
|
||||||
* @final
|
|
||||||
*/
|
|
||||||
class PropertyTypeMatcher implements Matcher
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private $propertyType;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $propertyType Property type
|
|
||||||
*/
|
|
||||||
public function __construct($propertyType)
|
|
||||||
{
|
|
||||||
$this->propertyType = $propertyType;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function matches($object, $property)
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
$reflectionProperty = ReflectionHelper::getProperty($object, $property);
|
|
||||||
} catch (ReflectionException $exception) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$reflectionProperty->setAccessible(true);
|
|
||||||
|
|
||||||
// Uninitialized properties (for PHP >7.4)
|
|
||||||
if (method_exists($reflectionProperty, 'isInitialized') && !$reflectionProperty->isInitialized($object)) {
|
|
||||||
// null instanceof $this->propertyType
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $reflectionProperty->getValue($object) instanceof $this->propertyType;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,78 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace DeepCopy\Reflection;
|
|
||||||
|
|
||||||
use DeepCopy\Exception\PropertyException;
|
|
||||||
use ReflectionClass;
|
|
||||||
use ReflectionException;
|
|
||||||
use ReflectionObject;
|
|
||||||
use ReflectionProperty;
|
|
||||||
|
|
||||||
class ReflectionHelper
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Retrieves all properties (including private ones), from object and all its ancestors.
|
|
||||||
*
|
|
||||||
* Standard \ReflectionClass->getProperties() does not return private properties from ancestor classes.
|
|
||||||
*
|
|
||||||
* @author muratyaman@gmail.com
|
|
||||||
* @see http://php.net/manual/en/reflectionclass.getproperties.php
|
|
||||||
*
|
|
||||||
* @param ReflectionClass $ref
|
|
||||||
*
|
|
||||||
* @return ReflectionProperty[]
|
|
||||||
*/
|
|
||||||
public static function getProperties(ReflectionClass $ref)
|
|
||||||
{
|
|
||||||
$props = $ref->getProperties();
|
|
||||||
$propsArr = array();
|
|
||||||
|
|
||||||
foreach ($props as $prop) {
|
|
||||||
$propertyName = $prop->getName();
|
|
||||||
$propsArr[$propertyName] = $prop;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($parentClass = $ref->getParentClass()) {
|
|
||||||
$parentPropsArr = self::getProperties($parentClass);
|
|
||||||
foreach ($propsArr as $key => $property) {
|
|
||||||
$parentPropsArr[$key] = $property;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $parentPropsArr;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $propsArr;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Retrieves property by name from object and all its ancestors.
|
|
||||||
*
|
|
||||||
* @param object|string $object
|
|
||||||
* @param string $name
|
|
||||||
*
|
|
||||||
* @throws PropertyException
|
|
||||||
* @throws ReflectionException
|
|
||||||
*
|
|
||||||
* @return ReflectionProperty
|
|
||||||
*/
|
|
||||||
public static function getProperty($object, $name)
|
|
||||||
{
|
|
||||||
$reflection = is_object($object) ? new ReflectionObject($object) : new ReflectionClass($object);
|
|
||||||
|
|
||||||
if ($reflection->hasProperty($name)) {
|
|
||||||
return $reflection->getProperty($name);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($parentClass = $reflection->getParentClass()) {
|
|
||||||
return self::getProperty($parentClass->getName(), $name);
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new PropertyException(
|
|
||||||
sprintf(
|
|
||||||
'The class "%s" doesn\'t have a property with the given name: "%s".',
|
|
||||||
is_object($object) ? get_class($object) : $object,
|
|
||||||
$name
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace DeepCopy\TypeFilter\Date;
|
|
||||||
|
|
||||||
use DateInterval;
|
|
||||||
use DeepCopy\TypeFilter\TypeFilter;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @final
|
|
||||||
*
|
|
||||||
* @deprecated Will be removed in 2.0. This filter will no longer be necessary in PHP 7.1+.
|
|
||||||
*/
|
|
||||||
class DateIntervalFilter implements TypeFilter
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*
|
|
||||||
* @param DateInterval $element
|
|
||||||
*
|
|
||||||
* @see http://news.php.net/php.bugs/205076
|
|
||||||
*/
|
|
||||||
public function apply($element)
|
|
||||||
{
|
|
||||||
$copy = new DateInterval('P0D');
|
|
||||||
|
|
||||||
foreach ($element as $propertyName => $propertyValue) {
|
|
||||||
$copy->{$propertyName} = $propertyValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $copy;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace DeepCopy\TypeFilter;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @final
|
|
||||||
*/
|
|
||||||
class ReplaceFilter implements TypeFilter
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var callable
|
|
||||||
*/
|
|
||||||
protected $callback;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param callable $callable Will be called to get the new value for each element to replace
|
|
||||||
*/
|
|
||||||
public function __construct(callable $callable)
|
|
||||||
{
|
|
||||||
$this->callback = $callable;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function apply($element)
|
|
||||||
{
|
|
||||||
return call_user_func($this->callback, $element);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace DeepCopy\TypeFilter;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @final
|
|
||||||
*/
|
|
||||||
class ShallowCopyFilter implements TypeFilter
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function apply($element)
|
|
||||||
{
|
|
||||||
return clone $element;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
<?php
|
|
||||||
namespace DeepCopy\TypeFilter\Spl;
|
|
||||||
|
|
||||||
use DeepCopy\DeepCopy;
|
|
||||||
use DeepCopy\TypeFilter\TypeFilter;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* In PHP 7.4 the storage of an ArrayObject isn't returned as
|
|
||||||
* ReflectionProperty. So we deep copy its array copy.
|
|
||||||
*/
|
|
||||||
final class ArrayObjectFilter implements TypeFilter
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var DeepCopy
|
|
||||||
*/
|
|
||||||
private $copier;
|
|
||||||
|
|
||||||
public function __construct(DeepCopy $copier)
|
|
||||||
{
|
|
||||||
$this->copier = $copier;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function apply($arrayObject)
|
|
||||||
{
|
|
||||||
$clone = clone $arrayObject;
|
|
||||||
foreach ($arrayObject->getArrayCopy() as $k => $v) {
|
|
||||||
$clone->offsetSet($k, $this->copier->copy($v));
|
|
||||||
}
|
|
||||||
|
|
||||||
return $clone;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace DeepCopy\TypeFilter\Spl;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @deprecated Use {@see SplDoublyLinkedListFilter} instead.
|
|
||||||
*/
|
|
||||||
class SplDoublyLinkedList extends SplDoublyLinkedListFilter
|
|
||||||
{
|
|
||||||
}
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace DeepCopy\TypeFilter\Spl;
|
|
||||||
|
|
||||||
use Closure;
|
|
||||||
use DeepCopy\DeepCopy;
|
|
||||||
use DeepCopy\TypeFilter\TypeFilter;
|
|
||||||
use SplDoublyLinkedList;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @final
|
|
||||||
*/
|
|
||||||
class SplDoublyLinkedListFilter implements TypeFilter
|
|
||||||
{
|
|
||||||
private $copier;
|
|
||||||
|
|
||||||
public function __construct(DeepCopy $copier)
|
|
||||||
{
|
|
||||||
$this->copier = $copier;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function apply($element)
|
|
||||||
{
|
|
||||||
$newElement = clone $element;
|
|
||||||
|
|
||||||
$copy = $this->createCopyClosure();
|
|
||||||
|
|
||||||
return $copy($newElement);
|
|
||||||
}
|
|
||||||
|
|
||||||
private function createCopyClosure()
|
|
||||||
{
|
|
||||||
$copier = $this->copier;
|
|
||||||
|
|
||||||
$copy = function (SplDoublyLinkedList $list) use ($copier) {
|
|
||||||
// Replace each element in the list with a deep copy of itself
|
|
||||||
for ($i = 1; $i <= $list->count(); $i++) {
|
|
||||||
$copy = $copier->recursiveCopy($list->shift());
|
|
||||||
|
|
||||||
$list->push($copy);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $list;
|
|
||||||
};
|
|
||||||
|
|
||||||
return Closure::bind($copy, null, DeepCopy::class);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace DeepCopy\TypeFilter;
|
|
||||||
|
|
||||||
interface TypeFilter
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Applies the filter to the object.
|
|
||||||
*
|
|
||||||
* @param mixed $element
|
|
||||||
*/
|
|
||||||
public function apply($element);
|
|
||||||
}
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace DeepCopy\TypeMatcher;
|
|
||||||
|
|
||||||
class TypeMatcher
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private $type;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $type
|
|
||||||
*/
|
|
||||||
public function __construct($type)
|
|
||||||
{
|
|
||||||
$this->type = $type;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param mixed $element
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
*/
|
|
||||||
public function matches($element)
|
|
||||||
{
|
|
||||||
return is_object($element) ? is_a($element, $this->type) : gettype($element) === $this->type;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user