summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavey Shafik <davey@php.net>2020-10-27 14:34:11 -0700
committerGitHub <noreply@github.com>2020-10-27 14:34:11 -0700
commitf99445512729d29eedac89b7375efc748793cdae (patch)
treeb10ae0df9059240dcf61824f21e86585e6bbd7a9
parent534f406552a2e5999c964c15b8524c958b193854 (diff)
parent187e5edf9a5eb1c4bcb4d65117a7ce5e2fa2b639 (diff)
downloadphp7-mysql-shim-f99445512729d29eedac89b7375efc748793cdae.zip
php7-mysql-shim-f99445512729d29eedac89b7375efc748793cdae.tar.gz
php7-mysql-shim-f99445512729d29eedac89b7375efc748793cdae.tar.bz2
Merge pull request #56 from dshafik/github-actions
Switch to GitHub Actions from Travis CI
-rw-r--r--.github/workflows/linter.yaml23
-rw-r--r--.github/workflows/phpunit.yaml57
-rw-r--r--.gitignore1
-rw-r--r--.scrutinizer.yml25
-rw-r--r--.travis.yml55
-rw-r--r--README.md5
-rw-r--r--composer.json2
-rw-r--r--composer.lock1471
-rw-r--r--lib/mysql.php113
-rw-r--r--tests/MySqlShimTest.php357
-rw-r--r--tests/coverage.php3
11 files changed, 1550 insertions, 562 deletions
diff --git a/.github/workflows/linter.yaml b/.github/workflows/linter.yaml
new file mode 100644
index 0000000..7d9a605
--- /dev/null
+++ b/.github/workflows/linter.yaml
@@ -0,0 +1,23 @@
+name: Linting php7-mysql-shim
+on: [push, pull_request]
+env:
+ fail-fast: true
+jobs:
+ linter:
+ name: Linter (PHP ${{ matrix.php-versions }})
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ php-versions: ['5.3', '8.0']
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ - name: Setup PHP, with composer and extensions
+ uses: shivammathur/setup-php@v2 #https://github.com/shivammathur/setup-php
+ with:
+ php-version: ${{ matrix.php-versions }}
+ extensions: mbstring, xml, ctype, iconv, intl, pdo_sqlite, mysql
+ coverage: xdebug #optional
+ - name: Run Linter
+ run: php -l lib/mysql.php
diff --git a/.github/workflows/phpunit.yaml b/.github/workflows/phpunit.yaml
new file mode 100644
index 0000000..721357c
--- /dev/null
+++ b/.github/workflows/phpunit.yaml
@@ -0,0 +1,57 @@
+name: Testing php7-mysql-shim
+on: [pull_request]
+env:
+ fail-fast: true
+jobs:
+ phpunit:
+ name: Unit Tests (PHP ${{ matrix.php-versions }})
+ runs-on: ubuntu-latest
+ services:
+ mysql:
+ image: mysql:5.7
+ env:
+ MYSQL_ALLOW_EMPTY_PASSWORD: false
+ MYSQL_ROOT_PASSWORD: password
+ MYSQL_DATABASE: testing
+ ports:
+ - 3306/tcp
+ options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
+ strategy:
+ fail-fast: false
+ matrix:
+ php-versions: ['5.6', '7.0', '7.1', '7.2', '7.3', '7.4']
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ - name: Setup PHP, with composer and extensions
+ uses: shivammathur/setup-php@v2 #https://github.com/shivammathur/setup-php
+ with:
+ php-version: ${{ matrix.php-versions }}
+ extensions: mbstring, xml, ctype, iconv, intl, pdo_sqlite, mysql
+ coverage: xdebug #optional
+ - name: Start mysql service
+ run: sudo /etc/init.d/mysql start
+ - name: Install Composer dependencies
+ run: |
+ composer update --no-interaction --prefer-source
+ - name: Run Tests
+ run: composer run test -- --coverage-text
+ env:
+ MYSQL_HOST: 127.0.0.1:${{ job.services.mysql.ports['3306'] }}
+ MYSQL_USERNAME: root
+ MYSQL_PASSWORD: password
+ - name: Get Code Coverage
+ run: php tests/coverage.php >> $GITHUB_ENV
+ if: matrix.php-versions == '7.4'
+ - name: Upload Code Coverage
+ uses: schneegans/dynamic-badges-action@v1.0.0
+ with:
+ auth: ${{ secrets.GIST_TOKEN }}
+ gistID: ee79527e0098afea147bffc33bf710d3
+ filename: coverage.json
+ label: Code Coverage
+ message: ${{ env.COVERAGE }}%
+ color: green
+ if: matrix.php-versions == '7.4'
+ continue-on-error: true # if is fork
+
diff --git a/.gitignore b/.gitignore
index e9418d0..2ba41ab 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
build/
vendor/
+.phpunit.result.cache \ No newline at end of file
diff --git a/.scrutinizer.yml b/.scrutinizer.yml
deleted file mode 100644
index b175899..0000000
--- a/.scrutinizer.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-filter:
- paths: [lib/*]
- excluded_paths: [tests/*, vendor/*, build/*, tools/*, docs/*]
-checks:
- php:
- code_rating: true
-tools:
- php_analyzer:
- enabled: true
- extensions:
- - php
- external_code_coverage:
- timeout: 1200
- runs: 1
- php_code_coverage: false
- php_code_sniffer:
- config:
- standard: PSR2
- filter:
- paths: ['lib']
- php_loc:
- enabled: true
- excluded_dirs: [vendor, spec]
- sensiolabs_security_checker:
- enabled: true
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 040590c..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,55 +0,0 @@
-language: php
-services:
- - mysql
-env:
- # composer install (uses lock file)
- #
- # The lock file is only used by developers of the library and ensures
- # a sane dev environment.
- #
- # Everything below local dev PHP version _or_ platform req expected to fail
- - DEPS='lock'
- # composer update --prefer-lowest
- #
- # Ensures that the lowest possible versions will work
- #
- - DEPS='low'
- # composer update
- #
- # This uses the latest possible dependencies for the given PHP version.
- #
- # If a platform requirement is set, this may not be actual latest versions
- # and they may be incompatible with newer PHP versions if the PHP requirement is
- # lax (e.g. >=5.3.6 and a platform of 5.3.6 running on 7.0 which doesn't include
- # necessary bug fixes for 7.0)
- - DEPS='high'
-matrix:
- include:
- - php: 7.1
- - php: 7.2
- - php: 7.3
- - php: 7.4
- - php: nightly
- fast_finish: true
- allow_failures:
- # PHP nightly may fail in all configuration
- - php: nightly
- # PHP < dev version may fail with composer.lock
- # Currently running PHP 7.4
- - php: 7.1
- env: DEPS='lock'
- - php: 7.2
- env: DEPS='lock'
- - php: 7.3
- env: DEPS='lock'
-
-sudo: false
-before_install:
- - composer self-update
-install:
- - if [ "$DEPS" == "lock" ]; then travis_retry composer install --no-interaction --prefer-source; fi;
- - if [ "$DEPS" == "dev" ]; then travis_retry composer update --minimum-stability=dev --no-interaction --prefer-source; fi;
- - if [ "$DEPS" == "low" ]; then travis_retry composer update --prefer-lowest --no-interaction --prefer-source; fi;
- - if [ "$DEPS" == "high" ]; then travis_retry composer update --no-interaction --prefer-source; fi;
-script: php vendor/bin/phpunit
-after_script: if (( `php -r 'echo substr(PHP_VERSION_ID, 0, -2);'` == 704 )); then wget https://scrutinizer-ci.com/ocular.phar && php ocular.phar code-coverage:upload --format=php-clover build/coverage/coverage.clover; fi;
diff --git a/README.md b/README.md
index 8002522..2966bb9 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,5 @@
-[![Build Status](https://travis-ci.org/dshafik/php7-mysql-shim.svg?branch=master)](https://travis-ci.org/dshafik/php7-mysql-shim)
-[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/dshafik/php7-mysql-shim/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/dshafik/php7-mysql-shim/?branch=master)
-[![Code Coverage](https://scrutinizer-ci.com/g/dshafik/php7-mysql-shim/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/dshafik/php7-mysql-shim/?branch=master)
+[![Build Status](https://github.com/dshafik/php7-mysql-shim/workflows/phpunit/badge.svg)](https://github.com/dshafik/php7-mysql-shim/actions)
+![Code Coverage](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/dshafik/ee79527e0098afea147bffc33bf710d3/raw/coverage.json)
# PHP 7 Shim for ext/mysql
This library attempts to create a drop-in replacement for ext/mysql on PHP 7 using mysqli.
diff --git a/composer.json b/composer.json
index e9da254..87585b5 100644
--- a/composer.json
+++ b/composer.json
@@ -16,7 +16,7 @@
"require-dev": {
"squizlabs/php_codesniffer": "^3.5",
"friendsofphp/php-cs-fixer": "^2.16",
- "phpunit/phpunit": "^8.4"
+ "yoast/phpunit-polyfills": "^0.1.0"
},
"autoload": {
"files": ["lib/mysql.php"]
diff --git a/composer.lock b/composer.lock
index f658ba6..95ba71d 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,21 +4,21 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "5bb4efaa73fe1b7d2e4d974141ec8276",
+ "content-hash": "a9637589077025ec7ab49fd29d82b915",
"packages": [],
"packages-dev": [
{
"name": "composer/semver",
- "version": "1.5.1",
+ "version": "1.7.1",
"source": {
"type": "git",
"url": "https://github.com/composer/semver.git",
- "reference": "c6bea70230ef4dd483e6bbcab6005f682ed3a8de"
+ "reference": "38276325bd896f90dfcfe30029aa5db40df387a7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/semver/zipball/c6bea70230ef4dd483e6bbcab6005f682ed3a8de",
- "reference": "c6bea70230ef4dd483e6bbcab6005f682ed3a8de",
+ "url": "https://api.github.com/repos/composer/semver/zipball/38276325bd896f90dfcfe30029aa5db40df387a7",
+ "reference": "38276325bd896f90dfcfe30029aa5db40df387a7",
"shasum": ""
},
"require": {
@@ -66,20 +66,39 @@
"validation",
"versioning"
],
- "time": "2020-01-13T12:06:48+00:00"
+ "support": {
+ "irc": "irc://irc.freenode.org/composer",
+ "issues": "https://github.com/composer/semver/issues",
+ "source": "https://github.com/composer/semver/tree/1.7.1"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-09-27T13:13:07+00:00"
},
{
"name": "composer/xdebug-handler",
- "version": "1.4.2",
+ "version": "1.4.4",
"source": {
"type": "git",
"url": "https://github.com/composer/xdebug-handler.git",
- "reference": "fa2aaf99e2087f013a14f7432c1cd2dd7d8f1f51"
+ "reference": "6e076a124f7ee146f2487554a94b6a19a74887ba"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/fa2aaf99e2087f013a14f7432c1cd2dd7d8f1f51",
- "reference": "fa2aaf99e2087f013a14f7432c1cd2dd7d8f1f51",
+ "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6e076a124f7ee146f2487554a94b6a19a74887ba",
+ "reference": "6e076a124f7ee146f2487554a94b6a19a74887ba",
"shasum": ""
},
"require": {
@@ -110,6 +129,11 @@
"Xdebug",
"performance"
],
+ "support": {
+ "irc": "irc://irc.freenode.org/composer",
+ "issues": "https://github.com/composer/xdebug-handler/issues",
+ "source": "https://github.com/composer/xdebug-handler/tree/1.4.4"
+ },
"funding": [
{
"url": "https://packagist.com",
@@ -124,20 +148,20 @@
"type": "tidelift"
}
],
- "time": "2020-06-04T11:16:35+00:00"
+ "time": "2020-10-24T12:39:10+00:00"
},
{
"name": "doctrine/annotations",
- "version": "1.10.3",
+ "version": "1.11.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/annotations.git",
- "reference": "5db60a4969eba0e0c197a19c077780aadbc43c5d"
+ "reference": "ce77a7ba1770462cd705a91a151b6c3746f9c6ad"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/annotations/zipball/5db60a4969eba0e0c197a19c077780aadbc43c5d",
- "reference": "5db60a4969eba0e0c197a19c077780aadbc43c5d",
+ "url": "https://api.github.com/repos/doctrine/annotations/zipball/ce77a7ba1770462cd705a91a151b6c3746f9c6ad",
+ "reference": "ce77a7ba1770462cd705a91a151b6c3746f9c6ad",
"shasum": ""
},
"require": {
@@ -147,12 +171,14 @@
},
"require-dev": {
"doctrine/cache": "1.*",
- "phpunit/phpunit": "^7.5"
+ "doctrine/coding-standard": "^6.0 || ^8.1",
+ "phpstan/phpstan": "^0.12.20",
+ "phpunit/phpunit": "^7.5 || ^9.1.5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.9.x-dev"
+ "dev-master": "1.11.x-dev"
}
},
"autoload": {
@@ -187,13 +213,17 @@
}
],
"description": "Docblock Annotations Parser",
- "homepage": "http://www.doctrine-project.org",
+ "homepage": "https://www.doctrine-project.org/projects/annotations.html",
"keywords": [
"annotations",
"docblock",
"parser"
],
- "time": "2020-05-25T17:24:27+00:00"
+ "support": {
+ "issues": "https://github.com/doctrine/annotations/issues",
+ "source": "https://github.com/doctrine/annotations/tree/1.11.1"
+ },
+ "time": "2020-10-26T10:28:16+00:00"
},
{
"name": "doctrine/instantiator",
@@ -249,6 +279,10 @@
"constructor",
"instantiate"
],
+ "support": {
+ "issues": "https://github.com/doctrine/instantiator/issues",
+ "source": "https://github.com/doctrine/instantiator/tree/1.3.x"
+ },
"funding": [
{
"url": "https://www.doctrine-project.org/sponsorship.html",
@@ -325,6 +359,10 @@
"parser",
"php"
],
+ "support": {
+ "issues": "https://github.com/doctrine/lexer/issues",
+ "source": "https://github.com/doctrine/lexer/tree/1.2.1"
+ },
"funding": [
{
"url": "https://www.doctrine-project.org/sponsorship.html",
@@ -430,6 +468,10 @@
}
],
"description": "A tool to automatically fix PHP code style",
+ "support": {
+ "issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues",
+ "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v2.16.4"
+ },
"funding": [
{
"url": "https://github.com/keradus",
@@ -484,6 +526,10 @@
"object",
"object graph"
],
+ "support": {
+ "issues": "https://github.com/myclabs/DeepCopy/issues",
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.x"
+ },
"funding": [
{
"url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
@@ -493,74 +539,86 @@
"time": "2020-06-29T13:22:24+00:00"
},
{
- "name": "paragonie/random_compat",
- "version": "v9.99.99",
+ "name": "nikic/php-parser",
+ "version": "v4.10.2",
"source": {
"type": "git",
- "url": "https://github.com/paragonie/random_compat.git",
- "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95"
+ "url": "https://github.com/nikic/PHP-Parser.git",
+ "reference": "658f1be311a230e0907f5dfe0213742aff0596de"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95",
- "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/658f1be311a230e0907f5dfe0213742aff0596de",
+ "reference": "658f1be311a230e0907f5dfe0213742aff0596de",
"shasum": ""
},
"require": {
- "php": "^7"
+ "ext-tokenizer": "*",
+ "php": ">=7.0"
},
"require-dev": {
- "phpunit/phpunit": "4.*|5.*",
- "vimeo/psalm": "^1"
- },
- "suggest": {
- "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
+ "ircmaxell/php-yacc": "^0.0.7",
+ "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
},
+ "bin": [
+ "bin/php-parse"
+ ],
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.9-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PhpParser\\": "lib/PhpParser"
+ }
+ },
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Paragon Initiative Enterprises",
- "email": "security@paragonie.com",
- "homepage": "https://paragonie.com"
+ "name": "Nikita Popov"
}
],
- "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
+ "description": "A PHP parser written in PHP",
"keywords": [
- "csprng",
- "polyfill",
- "pseudorandom",
- "random"
+ "parser",
+ "php"
],
- "time": "2018-07-02T15:55:56+00:00"
+ "support": {
+ "issues": "https://github.com/nikic/PHP-Parser/issues",
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.2"
+ },
+ "time": "2020-09-26T10:30:38+00:00"
},
{
"name": "phar-io/manifest",
- "version": "1.0.3",
+ "version": "2.0.1",
"source": {
"type": "git",
"url": "https://github.com/phar-io/manifest.git",
- "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4"
+ "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4",
- "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133",
+ "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-phar": "*",
- "phar-io/version": "^2.0",
- "php": "^5.6 || ^7.0"
+ "ext-xmlwriter": "*",
+ "phar-io/version": "^3.0.1",
+ "php": "^7.2 || ^8.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "2.0.x-dev"
}
},
"autoload": {
@@ -590,24 +648,28 @@
}
],
"description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
- "time": "2018-07-08T19:23:20+00:00"
+ "support": {
+ "issues": "https://github.com/phar-io/manifest/issues",
+ "source": "https://github.com/phar-io/manifest/tree/master"
+ },
+ "time": "2020-06-27T14:33:11+00:00"
},
{
"name": "phar-io/version",
- "version": "2.0.1",
+ "version": "3.0.2",
"source": {
"type": "git",
"url": "https://github.com/phar-io/version.git",
- "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6"
+ "reference": "c6bb6825def89e0a32220f88337f8ceaf1975fa0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6",
- "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6",
+ "url": "https://api.github.com/repos/phar-io/version/zipball/c6bb6825def89e0a32220f88337f8ceaf1975fa0",
+ "reference": "c6bb6825def89e0a32220f88337f8ceaf1975fa0",
"shasum": ""
},
"require": {
- "php": "^5.6 || ^7.0"
+ "php": "^7.2 || ^8.0"
},
"type": "library",
"autoload": {
@@ -637,27 +699,31 @@
}
],
"description": "Library for handling version information and constraints",
- "time": "2018-07-08T19:19:57+00:00"
+ "support": {
+ "issues": "https://github.com/phar-io/version/issues",
+ "source": "https://github.com/phar-io/version/tree/master"
+ },
+ "time": "2020-06-27T14:39:04+00:00"
},
{
"name": "php-cs-fixer/diff",
- "version": "v1.3.0",
+ "version": "v1.3.1",
"source": {
"type": "git",
"url": "https://github.com/PHP-CS-Fixer/diff.git",
- "reference": "78bb099e9c16361126c86ce82ec4405ebab8e756"
+ "reference": "dbd31aeb251639ac0b9e7e29405c1441907f5759"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/78bb099e9c16361126c86ce82ec4405ebab8e756",
- "reference": "78bb099e9c16361126c86ce82ec4405ebab8e756",
+ "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/dbd31aeb251639ac0b9e7e29405c1441907f5759",
+ "reference": "dbd31aeb251639ac0b9e7e29405c1441907f5759",
"shasum": ""
},
"require": {
- "php": "^5.6 || ^7.0"
+ "php": "^5.6 || ^7.0 || ^8.0"
},
"require-dev": {
- "phpunit/phpunit": "^5.7.23 || ^6.4.3",
+ "phpunit/phpunit": "^5.7.23 || ^6.4.3 || ^7.0",
"symfony/process": "^3.3"
},
"type": "library",
@@ -672,14 +738,14 @@
],
"authors": [
{
- "name": "Kore Nordmann",
- "email": "mail@kore-nordmann.de"
- },
- {
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de"
},
{
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
+ },
+ {
"name": "SpacePossum"
}
],
@@ -688,7 +754,11 @@
"keywords": [
"diff"
],
- "time": "2018-02-15T16:58:55+00:00"
+ "support": {
+ "issues": "https://github.com/PHP-CS-Fixer/diff/issues",
+ "source": "https://github.com/PHP-CS-Fixer/diff/tree/v1.3.1"
+ },
+ "time": "2020-10-14T08:39:05+00:00"
},
{
"name": "phpdocumentor/reflection-common",
@@ -737,20 +807,24 @@
"reflection",
"static analysis"
],
+ "support": {
+ "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
+ },
"time": "2020-06-27T09:03:43+00:00"
},
{
"name": "phpdocumentor/reflection-docblock",
- "version": "5.2.0",
+ "version": "5.2.2",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "3170448f5769fe19f456173d833734e0ff1b84df"
+ "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/3170448f5769fe19f456173d833734e0ff1b84df",
- "reference": "3170448f5769fe19f456173d833734e0ff1b84df",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556",
+ "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556",
"shasum": ""
},
"require": {
@@ -789,20 +863,24 @@
}
],
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
- "time": "2020-07-20T20:05:34+00:00"
+ "support": {
+ "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master"
+ },
+ "time": "2020-09-03T19:13:55+00:00"
},
{
"name": "phpdocumentor/type-resolver",
- "version": "1.3.0",
+ "version": "1.4.0",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "e878a14a65245fbe78f8080eba03b47c3b705651"
+ "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/e878a14a65245fbe78f8080eba03b47c3b705651",
- "reference": "e878a14a65245fbe78f8080eba03b47c3b705651",
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0",
+ "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0",
"shasum": ""
},
"require": {
@@ -834,32 +912,36 @@
}
],
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
- "time": "2020-06-27T10:12:23+00:00"
+ "support": {
+ "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
+ "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0"
+ },
+ "time": "2020-09-17T18:55:26+00:00"
},
{
"name": "phpspec/prophecy",
- "version": "1.11.1",
+ "version": "1.12.1",
"source": {
"type": "git",
"url": "https://github.com/phpspec/prophecy.git",
- "reference": "b20034be5efcdab4fb60ca3a29cba2949aead160"
+ "reference": "8ce87516be71aae9b956f81906aaf0338e0d8a2d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/b20034be5efcdab4fb60ca3a29cba2949aead160",
- "reference": "b20034be5efcdab4fb60ca3a29cba2949aead160",
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/8ce87516be71aae9b956f81906aaf0338e0d8a2d",
+ "reference": "8ce87516be71aae9b956f81906aaf0338e0d8a2d",
"shasum": ""
},
"require": {
"doctrine/instantiator": "^1.2",
- "php": "^7.2",
- "phpdocumentor/reflection-docblock": "^5.0",
+ "php": "^7.2 || ~8.0, <8.1",
+ "phpdocumentor/reflection-docblock": "^5.2",
"sebastian/comparator": "^3.0 || ^4.0",
"sebastian/recursion-context": "^3.0 || ^4.0"
},
"require-dev": {
"phpspec/phpspec": "^6.0",
- "phpunit/phpunit": "^8.0"
+ "phpunit/phpunit": "^8.0 || ^9.0 <9.3"
},
"type": "library",
"extra": {
@@ -897,44 +979,52 @@
"spy",
"stub"
],
- "time": "2020-07-08T12:44:21+00:00"
+ "support": {
+ "issues": "https://github.com/phpspec/prophecy/issues",
+ "source": "https://github.com/phpspec/prophecy/tree/1.12.1"
+ },
+ "time": "2020-09-29T09:10:42+00:00"
},
{
"name": "phpunit/php-code-coverage",
- "version": "7.0.10",
+ "version": "9.2.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "f1884187926fbb755a9aaf0b3836ad3165b478bf"
+ "reference": "ed363c3ce393560a1c300dce0298bbf0f0528b13"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f1884187926fbb755a9aaf0b3836ad3165b478bf",
- "reference": "f1884187926fbb755a9aaf0b3836ad3165b478bf",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ed363c3ce393560a1c300dce0298bbf0f0528b13",
+ "reference": "ed363c3ce393560a1c300dce0298bbf0f0528b13",
"shasum": ""
},
"require": {
"ext-dom": "*",
+ "ext-libxml": "*",
"ext-xmlwriter": "*",
- "php": "^7.2",
- "phpunit/php-file-iterator": "^2.0.2",
- "phpunit/php-text-template": "^1.2.1",
- "phpunit/php-token-stream": "^3.1.1",
- "sebastian/code-unit-reverse-lookup": "^1.0.1",
- "sebastian/environment": "^4.2.2",
- "sebastian/version": "^2.0.1",
- "theseer/tokenizer": "^1.1.3"
+ "nikic/php-parser": "^4.8",
+ "php": ">=7.3",
+ "phpunit/php-file-iterator": "^3.0.3",
+ "phpunit/php-text-template": "^2.0.2",
+ "sebastian/code-unit-reverse-lookup": "^2.0.2",
+ "sebastian/complexity": "^2.0",
+ "sebastian/environment": "^5.1.2",
+ "sebastian/lines-of-code": "^1.0",
+ "sebastian/version": "^3.0.1",
+ "theseer/tokenizer": "^1.2.0"
},
"require-dev": {
- "phpunit/phpunit": "^8.2.2"
+ "phpunit/phpunit": "^9.3"
},
"suggest": {
- "ext-xdebug": "^2.7.2"
+ "ext-pcov": "*",
+ "ext-xdebug": "*"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "7.0-dev"
+ "dev-master": "9.2-dev"
}
},
"autoload": {
@@ -960,32 +1050,42 @@
"testing",
"xunit"
],
- "time": "2019-11-20T13:55:58+00:00"
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T15:46:21+00:00"
},
{
"name": "phpunit/php-file-iterator",
- "version": "2.0.2",
+ "version": "3.0.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "050bedf145a257b1ff02746c31894800e5122946"
+ "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946",
- "reference": "050bedf145a257b1ff02746c31894800e5122946",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8",
+ "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8",
"shasum": ""
},
"require": {
- "php": "^7.1"
+ "php": ">=7.3"
},
"require-dev": {
- "phpunit/phpunit": "^7.1"
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0.x-dev"
+ "dev-master": "3.0-dev"
}
},
"autoload": {
@@ -1010,26 +1110,48 @@
"filesystem",
"iterator"
],
- "time": "2018-09-13T20:33:42+00:00"
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:57:25+00:00"
},
{
- "name": "phpunit/php-text-template",
- "version": "1.2.1",
+ "name": "phpunit/php-invoker",
+ "version": "3.1.1",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
+ "url": "https://github.com/sebastianbergmann/php-invoker.git",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "ext-pcntl": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-pcntl": "*"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.1-dev"
+ }
+ },
"autoload": {
"classmap": [
"src/"
@@ -1046,37 +1168,47 @@
"role": "lead"
}
],
- "description": "Simple template engine.",
- "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+ "description": "Invoke callables with a timeout",
+ "homepage": "https://github.com/sebastianbergmann/php-invoker/",
"keywords": [
- "template"
+ "process"
],
- "time": "2015-06-21T13:50:34+00:00"
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:58:55+00:00"
},
{
- "name": "phpunit/php-timer",
- "version": "2.1.2",
+ "name": "phpunit/php-text-template",
+ "version": "2.0.4",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "1038454804406b0b5f5f520358e78c1c2f71501e"
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e",
- "reference": "1038454804406b0b5f5f520358e78c1c2f71501e",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
"shasum": ""
},
"require": {
- "php": "^7.1"
+ "php": ">=7.3"
},
"require-dev": {
- "phpunit/phpunit": "^7.0"
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.1-dev"
+ "dev-master": "2.0-dev"
}
},
"autoload": {
@@ -1095,38 +1227,47 @@
"role": "lead"
}
],
- "description": "Utility class for timing",
- "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "description": "Simple template engine.",
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
"keywords": [
- "timer"
+ "template"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
],
- "time": "2019-06-07T04:22:29+00:00"
+ "time": "2020-10-26T05:33:50+00:00"
},
{
- "name": "phpunit/php-token-stream",
- "version": "3.1.1",
+ "name": "phpunit/php-timer",
+ "version": "5.0.3",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-token-stream.git",
- "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff"
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff",
- "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
"shasum": ""
},
"require": {
- "ext-tokenizer": "*",
- "php": "^7.1"
+ "php": ">=7.3"
},
"require-dev": {
- "phpunit/phpunit": "^7.0"
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.1-dev"
+ "dev-master": "5.0-dev"
}
},
"autoload": {
@@ -1141,65 +1282,78 @@
"authors": [
{
"name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
}
],
- "description": "Wrapper around PHP's tokenizer extension.",
- "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
+ "description": "Utility class for timing",
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
"keywords": [
- "tokenizer"
+ "timer"
],
- "abandoned": true,
- "time": "2019-09-17T06:23:10+00:00"
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-timer/issues",
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:16:10+00:00"
},
{
"name": "phpunit/phpunit",
- "version": "8.5.8",
+ "version": "9.4.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "34c18baa6a44f1d1fbf0338907139e9dce95b997"
+ "reference": "3866b2eeeed21b1b099c4bc0b7a1690ac6fd5baa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/34c18baa6a44f1d1fbf0338907139e9dce95b997",
- "reference": "34c18baa6a44f1d1fbf0338907139e9dce95b997",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3866b2eeeed21b1b099c4bc0b7a1690ac6fd5baa",
+ "reference": "3866b2eeeed21b1b099c4bc0b7a1690ac6fd5baa",
"shasum": ""
},
"require": {
- "doctrine/instantiator": "^1.2.0",
+ "doctrine/instantiator": "^1.3.1",
"ext-dom": "*",
"ext-json": "*",
"ext-libxml": "*",
"ext-mbstring": "*",
"ext-xml": "*",
"ext-xmlwriter": "*",
- "myclabs/deep-copy": "^1.9.1",
- "phar-io/manifest": "^1.0.3",
- "phar-io/version": "^2.0.1",
- "php": "^7.2",
- "phpspec/prophecy": "^1.8.1",
- "phpunit/php-code-coverage": "^7.0.7",
- "phpunit/php-file-iterator": "^2.0.2",
- "phpunit/php-text-template": "^1.2.1",
- "phpunit/php-timer": "^2.1.2",
- "sebastian/comparator": "^3.0.2",
- "sebastian/diff": "^3.0.2",
- "sebastian/environment": "^4.2.2",
- "sebastian/exporter": "^3.1.1",
- "sebastian/global-state": "^3.0.0",
- "sebastian/object-enumerator": "^3.0.3",
- "sebastian/resource-operations": "^2.0.1",
- "sebastian/type": "^1.1.3",
- "sebastian/version": "^2.0.1"
+ "myclabs/deep-copy": "^1.10.1",
+ "phar-io/manifest": "^2.0.1",
+ "phar-io/version": "^3.0.2",
+ "php": ">=7.3",
+ "phpspec/prophecy": "^1.12.1",
+ "phpunit/php-code-coverage": "^9.2",
+ "phpunit/php-file-iterator": "^3.0.5",
+ "phpunit/php-invoker": "^3.1.1",
+ "phpunit/php-text-template": "^2.0.3",
+ "phpunit/php-timer": "^5.0.2",
+ "sebastian/cli-parser": "^1.0.1",
+ "sebastian/code-unit": "^1.0.6",
+ "sebastian/comparator": "^4.0.5",
+ "sebastian/diff": "^4.0.3",
+ "sebastian/environment": "^5.1.3",
+ "sebastian/exporter": "^4.0.3",
+ "sebastian/global-state": "^5.0.1",
+ "sebastian/object-enumerator": "^4.0.3",
+ "sebastian/resource-operations": "^3.0.3",
+ "sebastian/type": "^2.3",
+ "sebastian/version": "^3.0.2"
},
"require-dev": {
- "ext-pdo": "*"
+ "ext-pdo": "*",
+ "phpspec/prophecy-phpunit": "^2.0.1"
},
"suggest": {
"ext-soap": "*",
- "ext-xdebug": "*",
- "phpunit/php-invoker": "^2.0.0"
+ "ext-xdebug": "*"
},
"bin": [
"phpunit"
@@ -1207,12 +1361,15 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "8.5-dev"
+ "dev-master": "9.4-dev"
}
},
"autoload": {
"classmap": [
"src/"
+ ],
+ "files": [
+ "src/Framework/Assert/Functions.php"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -1233,6 +1390,10 @@
"testing",
"xunit"
],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/phpunit/issues",
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.4.2"
+ },
"funding": [
{
"url": "https://phpunit.de/donate.html",
@@ -1243,7 +1404,7 @@
"type": "github"
}
],
- "time": "2020-06-22T07:06:58+00:00"
+ "time": "2020-10-19T09:23:29+00:00"
},
{
"name": "psr/container",
@@ -1292,6 +1453,10 @@
"container-interop",
"psr"
],
+ "support": {
+ "issues": "https://github.com/php-fig/container/issues",
+ "source": "https://github.com/php-fig/container/tree/master"
+ },
"time": "2017-02-14T16:28:37+00:00"
},
{
@@ -1338,6 +1503,10 @@
"psr",
"psr-14"
],
+ "support": {
+ "issues": "https://github.com/php-fig/event-dispatcher/issues",
+ "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
+ },
"time": "2019-01-08T18:20:26+00:00"
},
{
@@ -1385,32 +1554,147 @@
"psr",
"psr-3"
],
+ "support": {
+ "source": "https://github.com/php-fig/log/tree/1.1.3"
+ },
"time": "2020-03-23T09:12:05+00:00"
},
{
- "name": "sebastian/code-unit-reverse-lookup",
+ "name": "sebastian/cli-parser",
"version": "1.0.1",
"source": {
"type": "git",
+ "url": "https://github.com/sebastianbergmann/cli-parser.git",
+ "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2",
+ "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for parsing CLI options",
+ "homepage": "https://github.com/sebastianbergmann/cli-parser",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T06:08:49+00:00"
+ },
+ {
+ "name": "sebastian/code-unit",
+ "version": "1.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit.git",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/code-unit",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:08:54+00:00"
+ },
+ {
+ "name": "sebastian/code-unit-reverse-lookup",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
"url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
- "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
+ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
- "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
"shasum": ""
},
"require": {
- "php": "^5.6 || ^7.0"
+ "php": ">=7.3"
},
"require-dev": {
- "phpunit/phpunit": "^5.7 || ^6.0"
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "2.0-dev"
}
},
"autoload": {
@@ -1430,34 +1714,44 @@
],
"description": "Looks up which function or method a line of code belongs to",
"homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
- "time": "2017-03-04T06:30:41+00:00"
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:30:19+00:00"
},
{
"name": "sebastian/comparator",
- "version": "3.0.2",
+ "version": "4.0.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da"
+ "reference": "55f4261989e546dc112258c7a75935a81a7ce382"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da",
- "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382",
+ "reference": "55f4261989e546dc112258c7a75935a81a7ce382",
"shasum": ""
},
"require": {
- "php": "^7.1",
- "sebastian/diff": "^3.0",
- "sebastian/exporter": "^3.1"
+ "php": ">=7.3",
+ "sebastian/diff": "^4.0",
+ "sebastian/exporter": "^4.0"
},
"require-dev": {
- "phpunit/phpunit": "^7.1"
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-master": "4.0-dev"
}
},
"autoload": {
@@ -1471,6 +1765,10 @@
],
"authors": [
{
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
"name": "Jeff Welch",
"email": "whatthejeff@gmail.com"
},
@@ -1481,10 +1779,6 @@
{
"name": "Bernhard Schussek",
"email": "bschussek@2bepublished.at"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
}
],
"description": "Provides the functionality to compare PHP values for equality",
@@ -1494,33 +1788,100 @@
"compare",
"equality"
],
- "time": "2018-07-12T15:12:46+00:00"
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/comparator/issues",
+ "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T15:49:45+00:00"
+ },
+ {
+ "name": "sebastian/complexity",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/complexity.git",
+ "reference": "739b35e53379900cc9ac327b2147867b8b6efd88"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88",
+ "reference": "739b35e53379900cc9ac327b2147867b8b6efd88",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.7",
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for calculating the complexity of PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/complexity",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/complexity/issues",
+ "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T15:52:27+00:00"
},
{
"name": "sebastian/diff",
- "version": "3.0.2",
+ "version": "4.0.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29"
+ "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29",
- "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d",
+ "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d",
"shasum": ""
},
"require": {
- "php": "^7.1"
+ "php": ">=7.3"
},
"require-dev": {
- "phpunit/phpunit": "^7.5 || ^8.0",
- "symfony/process": "^2 || ^3.3 || ^4"
+ "phpunit/phpunit": "^9.3",
+ "symfony/process": "^4.2 || ^5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-master": "4.0-dev"
}
},
"autoload": {
@@ -1534,12 +1895,12 @@
],
"authors": [
{
- "name": "Kore Nordmann",
- "email": "mail@kore-nordmann.de"
- },
- {
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
}
],
"description": "Diff implementation",
@@ -1550,27 +1911,37 @@
"unidiff",
"unified diff"
],
- "time": "2019-02-04T06:01:07+00:00"
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/diff/issues",
+ "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:10:38+00:00"
},
{
"name": "sebastian/environment",
- "version": "4.2.3",
+ "version": "5.1.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368"
+ "reference": "388b6ced16caa751030f6a69e588299fa09200ac"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/464c90d7bdf5ad4e8a6aea15c091fec0603d4368",
- "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac",
+ "reference": "388b6ced16caa751030f6a69e588299fa09200ac",
"shasum": ""
},
"require": {
- "php": "^7.1"
+ "php": ">=7.3"
},
"require-dev": {
- "phpunit/phpunit": "^7.5"
+ "phpunit/phpunit": "^9.3"
},
"suggest": {
"ext-posix": "*"
@@ -1578,7 +1949,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.2-dev"
+ "dev-master": "5.1-dev"
}
},
"autoload": {
@@ -1603,34 +1974,44 @@
"environment",
"hhvm"
],
- "time": "2019-11-20T08:46:58+00:00"
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/environment/issues",
+ "source": "https://github.com/sebastianbergmann/environment/tree/5.1.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:52:38+00:00"
},
{
"name": "sebastian/exporter",
- "version": "3.1.2",
+ "version": "4.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e"
+ "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e",
- "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65",
+ "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65",
"shasum": ""
},
"require": {
- "php": "^7.0",
- "sebastian/recursion-context": "^3.0"
+ "php": ">=7.3",
+ "sebastian/recursion-context": "^4.0"
},
"require-dev": {
"ext-mbstring": "*",
- "phpunit/phpunit": "^6.0"
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.1.x-dev"
+ "dev-master": "4.0-dev"
}
},
"autoload": {
@@ -1670,30 +2051,40 @@
"export",
"exporter"
],
- "time": "2019-09-14T09:02:43+00:00"
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/exporter/issues",
+ "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:24:23+00:00"
},
{
"name": "sebastian/global-state",
- "version": "3.0.0",
+ "version": "5.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4"
+ "reference": "a90ccbddffa067b51f574dea6eb25d5680839455"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4",
- "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/a90ccbddffa067b51f574dea6eb25d5680839455",
+ "reference": "a90ccbddffa067b51f574dea6eb25d5680839455",
"shasum": ""
},
"require": {
- "php": "^7.2",
- "sebastian/object-reflector": "^1.1.1",
- "sebastian/recursion-context": "^3.0"
+ "php": ">=7.3",
+ "sebastian/object-reflector": "^2.0",
+ "sebastian/recursion-context": "^4.0"
},
"require-dev": {
"ext-dom": "*",
- "phpunit/phpunit": "^8.0"
+ "phpunit/phpunit": "^9.3"
},
"suggest": {
"ext-uopz": "*"
@@ -1701,7 +2092,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-master": "5.0-dev"
}
},
"autoload": {
@@ -1724,34 +2115,101 @@
"keywords": [
"global state"
],
- "time": "2019-02-01T05:30:01+00:00"
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/global-state/issues",
+ "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T15:55:19+00:00"
+ },
+ {
+ "name": "sebastian/lines-of-code",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/lines-of-code.git",
+ "reference": "acf76492a65401babcf5283296fa510782783a7a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/acf76492a65401babcf5283296fa510782783a7a",
+ "reference": "acf76492a65401babcf5283296fa510782783a7a",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.6",
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for counting the lines of code in PHP source code",
+ "homepage": "https://github.com/sebastianbergmann/lines-of-code",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T17:03:56+00:00"
},
{
"name": "sebastian/object-enumerator",
- "version": "3.0.3",
+ "version": "4.0.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-enumerator.git",
- "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5"
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5",
- "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
"shasum": ""
},
"require": {
- "php": "^7.0",
- "sebastian/object-reflector": "^1.1.1",
- "sebastian/recursion-context": "^3.0"
+ "php": ">=7.3",
+ "sebastian/object-reflector": "^2.0",
+ "sebastian/recursion-context": "^4.0"
},
"require-dev": {
- "phpunit/phpunit": "^6.0"
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0.x-dev"
+ "dev-master": "4.0-dev"
}
},
"autoload": {
@@ -1771,32 +2229,42 @@
],
"description": "Traverses array structures and object graphs to enumerate all referenced objects",
"homepage": "https://github.com/sebastianbergmann/object-enumerator/",
- "time": "2017-08-03T12:35:26+00:00"
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:12:34+00:00"
},
{
"name": "sebastian/object-reflector",
- "version": "1.1.1",
+ "version": "2.0.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-reflector.git",
- "reference": "773f97c67f28de00d397be301821b06708fca0be"
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be",
- "reference": "773f97c67f28de00d397be301821b06708fca0be",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
"shasum": ""
},
"require": {
- "php": "^7.0"
+ "php": ">=7.3"
},
"require-dev": {
- "phpunit/phpunit": "^6.0"
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.1-dev"
+ "dev-master": "2.0-dev"
}
},
"autoload": {
@@ -1816,32 +2284,42 @@
],
"description": "Allows reflection of object attributes, including inherited and non-public ones",
"homepage": "https://github.com/sebastianbergmann/object-reflector/",
- "time": "2017-03-29T09:07:27+00:00"
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:14:26+00:00"
},
{
"name": "sebastian/recursion-context",
- "version": "3.0.0",
+ "version": "4.0.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8"
+ "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
- "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172",
+ "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172",
"shasum": ""
},
"require": {
- "php": "^7.0"
+ "php": ">=7.3"
},
"require-dev": {
- "phpunit/phpunit": "^6.0"
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0.x-dev"
+ "dev-master": "4.0-dev"
}
},
"autoload": {
@@ -1855,43 +2333,56 @@
],
"authors": [
{
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de"
},
{
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
"name": "Adam Harvey",
"email": "aharvey@php.net"
}
],
"description": "Provides functionality to recursively process PHP variables",
"homepage": "http://www.github.com/sebastianbergmann/recursion-context",
- "time": "2017-03-03T06:23:57+00:00"
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:17:30+00:00"
},
{
"name": "sebastian/resource-operations",
- "version": "2.0.1",
+ "version": "3.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/resource-operations.git",
- "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9"
+ "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9",
- "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9",
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
+ "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
"shasum": ""
},
"require": {
- "php": "^7.1"
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-master": "3.0-dev"
}
},
"autoload": {
@@ -1911,32 +2402,42 @@
],
"description": "Provides a list of PHP built-in functions that operate on resources",
"homepage": "https://www.github.com/sebastianbergmann/resource-operations",
- "time": "2018-10-04T04:07:39+00:00"
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/resource-operations/issues",
+ "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T06:45:17+00:00"
},
{
"name": "sebastian/type",
- "version": "1.1.3",
+ "version": "2.3.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/type.git",
- "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3"
+ "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/3aaaa15fa71d27650d62a948be022fe3b48541a3",
- "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/81cd61ab7bbf2de744aba0ea61fae32f721df3d2",
+ "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2",
"shasum": ""
},
"require": {
- "php": "^7.2"
+ "php": ">=7.3"
},
"require-dev": {
- "phpunit/phpunit": "^8.2"
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.1-dev"
+ "dev-master": "2.3-dev"
}
},
"autoload": {
@@ -1957,29 +2458,39 @@
],
"description": "Collection of value objects that represent the types of the PHP type system",
"homepage": "https://github.com/sebastianbergmann/type",
- "time": "2019-07-02T08:10:15+00:00"
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/type/issues",
+ "source": "https://github.com/sebastianbergmann/type/tree/2.3.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:18:59+00:00"
},
{
"name": "sebastian/version",
- "version": "2.0.1",
+ "version": "3.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/version.git",
- "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
+ "reference": "c6c1022351a901512170118436c764e473f6de8c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
- "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
+ "reference": "c6c1022351a901512170118436c764e473f6de8c",
"shasum": ""
},
"require": {
- "php": ">=5.6"
+ "php": ">=7.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0.x-dev"
+ "dev-master": "3.0-dev"
}
},
"autoload": {
@@ -2000,7 +2511,17 @@
],
"description": "Library that helps with managing the version number of Git-hosted PHP projects",
"homepage": "https://github.com/sebastianbergmann/version",
- "time": "2016-10-03T07:35:21+00:00"
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/version/issues",
+ "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T06:39:44+00:00"
},
{
"name": "squizlabs/php_codesniffer",
@@ -2051,20 +2572,25 @@
"phpcs",
"standards"
],
+ "support": {
+ "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues",
+ "source": "https://github.com/squizlabs/PHP_CodeSniffer",
+ "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
+ },
"time": "2020-10-23T02:01:07+00:00"
},
{
"name": "symfony/console",
- "version": "v5.1.3",
+ "version": "v5.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "2226c68009627934b8cfc01260b4d287eab070df"
+ "reference": "ae789a8a2ad189ce7e8216942cdb9b77319f5eb8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/2226c68009627934b8cfc01260b4d287eab070df",
- "reference": "2226c68009627934b8cfc01260b4d287eab070df",
+ "url": "https://api.github.com/repos/symfony/console/zipball/ae789a8a2ad189ce7e8216942cdb9b77319f5eb8",
+ "reference": "ae789a8a2ad189ce7e8216942cdb9b77319f5eb8",
"shasum": ""
},
"require": {
@@ -2130,6 +2656,9 @@
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/console/tree/v5.1.7"
+ },
"funding": [
{
"url": "https://symfony.com/sponsor",
@@ -2144,20 +2673,20 @@
"type": "tidelift"
}
],
- "time": "2020-07-06T13:23:11+00:00"
+ "time": "2020-10-07T15:23:00+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v2.1.3",
+ "version": "v2.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "5e20b83385a77593259c9f8beb2c43cd03b2ac14"
+ "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5e20b83385a77593259c9f8beb2c43cd03b2ac14",
- "reference": "5e20b83385a77593259c9f8beb2c43cd03b2ac14",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665",
+ "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665",
"shasum": ""
},
"require": {
@@ -2166,7 +2695,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.1-dev"
+ "dev-master": "2.2-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -2194,6 +2723,9 @@
],
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/deprecation-contracts/tree/master"
+ },
"funding": [
{
"url": "https://symfony.com/sponsor",
@@ -2208,20 +2740,20 @@
"type": "tidelift"
}
],
- "time": "2020-06-06T08:49:21+00:00"
+ "time": "2020-09-07T11:33:47+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v5.1.3",
+ "version": "v5.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "7827d55911f91c070fc293ea51a06eec80797d76"
+ "reference": "d5de97d6af175a9e8131c546db054ca32842dd0f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/7827d55911f91c070fc293ea51a06eec80797d76",
- "reference": "7827d55911f91c070fc293ea51a06eec80797d76",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d5de97d6af175a9e8131c546db054ca32842dd0f",
+ "reference": "d5de97d6af175a9e8131c546db054ca32842dd0f",
"shasum": ""
},
"require": {
@@ -2241,6 +2773,7 @@
"psr/log": "~1.0",
"symfony/config": "^4.4|^5.0",
"symfony/dependency-injection": "^4.4|^5.0",
+ "symfony/error-handler": "^4.4|^5.0",
"symfony/expression-language": "^4.4|^5.0",
"symfony/http-foundation": "^4.4|^5.0",
"symfony/service-contracts": "^1.1|^2",
@@ -2280,6 +2813,9 @@
],
"description": "Symfony EventDispatcher Component",
"homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/event-dispatcher/tree/v5.1.7"
+ },
"funding": [
{
"url": "https://symfony.com/sponsor",
@@ -2294,20 +2830,20 @@
"type": "tidelift"
}
],
- "time": "2020-06-18T18:24:02+00:00"
+ "time": "2020-09-18T14:27:32+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v2.1.3",
+ "version": "v2.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "f6f613d74cfc5a623fc36294d3451eb7fa5a042b"
+ "reference": "0ba7d54483095a198fa51781bc608d17e84dffa2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f6f613d74cfc5a623fc36294d3451eb7fa5a042b",
- "reference": "f6f613d74cfc5a623fc36294d3451eb7fa5a042b",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/0ba7d54483095a198fa51781bc608d17e84dffa2",
+ "reference": "0ba7d54483095a198fa51781bc608d17e84dffa2",
"shasum": ""
},
"require": {
@@ -2320,7 +2856,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.1-dev"
+ "dev-master": "2.2-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -2356,6 +2892,9 @@
"interoperability",
"standards"
],
+ "support": {
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.2.0"
+ },
"funding": [
{
"url": "https://symfony.com/sponsor",
@@ -2370,20 +2909,20 @@
"type": "tidelift"
}
],
- "time": "2020-07-06T13:23:11+00:00"
+ "time": "2020-09-07T11:33:47+00:00"
},
{
"name": "symfony/filesystem",
- "version": "v5.1.3",
+ "version": "v5.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "6e4320f06d5f2cce0d96530162491f4465179157"
+ "reference": "1a8697545a8d87b9f2f6b1d32414199cc5e20aae"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/6e4320f06d5f2cce0d96530162491f4465179157",
- "reference": "6e4320f06d5f2cce0d96530162491f4465179157",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/1a8697545a8d87b9f2f6b1d32414199cc5e20aae",
+ "reference": "1a8697545a8d87b9f2f6b1d32414199cc5e20aae",
"shasum": ""
},
"require": {
@@ -2420,6 +2959,9 @@
],
"description": "Symfony Filesystem Component",
"homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/filesystem/tree/v5.1.7"
+ },
"funding": [
{
"url": "https://symfony.com/sponsor",
@@ -2434,20 +2976,20 @@
"type": "tidelift"
}
],
- "time": "2020-05-30T20:35:19+00:00"
+ "time": "2020-09-27T14:02:37+00:00"
},
{
"name": "symfony/finder",
- "version": "v5.1.3",
+ "version": "v5.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "4298870062bfc667cb78d2b379be4bf5dec5f187"
+ "reference": "2c3ba7ad6884e6c4451ce2340e2dc23f6fa3e0d8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/4298870062bfc667cb78d2b379be4bf5dec5f187",
- "reference": "4298870062bfc667cb78d2b379be4bf5dec5f187",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/2c3ba7ad6884e6c4451ce2340e2dc23f6fa3e0d8",
+ "reference": "2c3ba7ad6884e6c4451ce2340e2dc23f6fa3e0d8",
"shasum": ""
},
"require": {
@@ -2483,6 +3025,9 @@
],
"description": "Symfony Finder Component",
"homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/finder/tree/v5.1.7"
+ },
"funding": [
{
"url": "https://symfony.com/sponsor",
@@ -2497,20 +3042,20 @@
"type": "tidelift"
}
],
- "time": "2020-05-20T17:43:50+00:00"
+ "time": "2020-09-02T16:23:27+00:00"
},
{
"name": "symfony/options-resolver",
- "version": "v5.1.3",
+ "version": "v5.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/options-resolver.git",
- "reference": "9ff59517938f88d90b6e65311fef08faa640f681"
+ "reference": "4c7e155bf7d93ea4ba3824d5a14476694a5278dd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/options-resolver/zipball/9ff59517938f88d90b6e65311fef08faa640f681",
- "reference": "9ff59517938f88d90b6e65311fef08faa640f681",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/4c7e155bf7d93ea4ba3824d5a14476694a5278dd",
+ "reference": "4c7e155bf7d93ea4ba3824d5a14476694a5278dd",
"shasum": ""
},
"require": {
@@ -2553,6 +3098,9 @@
"configuration",
"options"
],
+ "support": {
+ "source": "https://github.com/symfony/options-resolver/tree/v5.1.7"
+ },
"funding": [
{
"url": "https://symfony.com/sponsor",
@@ -2567,24 +3115,24 @@
"type": "tidelift"
}
],
- "time": "2020-07-12T12:58:00+00:00"
+ "time": "2020-09-27T03:44:28+00:00"
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.18.1",
+ "version": "v1.20.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "1c302646f6efc070cd46856e600e5e0684d6b454"
+ "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/1c302646f6efc070cd46856e600e5e0684d6b454",
- "reference": "1c302646f6efc070cd46856e600e5e0684d6b454",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f4ba089a5b6366e453971d3aad5fe8e897b37f41",
+ "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": ">=7.1"
},
"suggest": {
"ext-ctype": "For best performance"
@@ -2592,7 +3140,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.18-dev"
+ "dev-main": "1.20-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -2629,6 +3177,9 @@
"polyfill",
"portable"
],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.20.0"
+ },
"funding": [
{
"url": "https://symfony.com/sponsor",
@@ -2643,24 +3194,24 @@
"type": "tidelift"
}
],
- "time": "2020-07-14T12:35:20+00:00"
+ "time": "2020-10-23T14:02:19+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "v1.18.1",
+ "version": "v1.20.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "b740103edbdcc39602239ee8860f0f45a8eb9aa5"
+ "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b740103edbdcc39602239ee8860f0f45a8eb9aa5",
- "reference": "b740103edbdcc39602239ee8860f0f45a8eb9aa5",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c",
+ "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": ">=7.1"
},
"suggest": {
"ext-intl": "For best performance"
@@ -2668,7 +3219,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.18-dev"
+ "dev-main": "1.20-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -2707,6 +3258,9 @@
"portable",
"shim"
],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.20.0"
+ },
"funding": [
{
"url": "https://symfony.com/sponsor",
@@ -2721,24 +3275,24 @@
"type": "tidelift"
}
],
- "time": "2020-07-14T12:35:20+00:00"
+ "time": "2020-10-23T14:02:19+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.18.1",
+ "version": "v1.20.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "37078a8dd4a2a1e9ab0231af7c6cb671b2ed5a7e"
+ "reference": "727d1096295d807c309fb01a851577302394c897"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/37078a8dd4a2a1e9ab0231af7c6cb671b2ed5a7e",
- "reference": "37078a8dd4a2a1e9ab0231af7c6cb671b2ed5a7e",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/727d1096295d807c309fb01a851577302394c897",
+ "reference": "727d1096295d807c309fb01a851577302394c897",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": ">=7.1"
},
"suggest": {
"ext-intl": "For best performance"
@@ -2746,7 +3300,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.18-dev"
+ "dev-main": "1.20-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -2788,6 +3342,9 @@
"portable",
"shim"
],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.20.0"
+ },
"funding": [
{
"url": "https://symfony.com/sponsor",
@@ -2802,24 +3359,24 @@
"type": "tidelift"
}
],
- "time": "2020-07-14T12:35:20+00:00"
+ "time": "2020-10-23T14:02:19+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.18.1",
+ "version": "v1.20.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "a6977d63bf9a0ad4c65cd352709e230876f9904a"
+ "reference": "39d483bdf39be819deabf04ec872eb0b2410b531"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/a6977d63bf9a0ad4c65cd352709e230876f9904a",
- "reference": "a6977d63bf9a0ad4c65cd352709e230876f9904a",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/39d483bdf39be819deabf04ec872eb0b2410b531",
+ "reference": "39d483bdf39be819deabf04ec872eb0b2410b531",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": ">=7.1"
},
"suggest": {
"ext-mbstring": "For best performance"
@@ -2827,7 +3384,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.18-dev"
+ "dev-main": "1.20-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -2865,6 +3422,9 @@
"portable",
"shim"
],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.20.0"
+ },
"funding": [
{
"url": "https://symfony.com/sponsor",
@@ -2879,47 +3439,35 @@
"type": "tidelift"
}
],
- "time": "2020-07-14T12:35:20+00:00"
+ "time": "2020-10-23T14:02:19+00:00"
},
{
"name": "symfony/polyfill-php70",
- "version": "v1.18.1",
+ "version": "v1.20.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php70.git",
- "reference": "0dd93f2c578bdc9c72697eaa5f1dd25644e618d3"
+ "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/0dd93f2c578bdc9c72697eaa5f1dd25644e618d3",
- "reference": "0dd93f2c578bdc9c72697eaa5f1dd25644e618d3",
+ "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/5f03a781d984aae42cebd18e7912fa80f02ee644",
+ "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644",
"shasum": ""
},
"require": {
- "paragonie/random_compat": "~1.0|~2.0|~9.99",
- "php": ">=5.3.3"
+ "php": ">=7.1"
},
- "type": "library",
+ "type": "metapackage",
"extra": {
"branch-alias": {
- "dev-master": "1.18-dev"
+ "dev-main": "1.20-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
- "autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Php70\\": ""
- },
- "files": [
- "bootstrap.php"
- ],
- "classmap": [
- "Resources/stubs"
- ]
- },
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
@@ -2942,6 +3490,9 @@
"portable",
"shim"
],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php70/tree/v1.20.0"
+ },
"funding": [
{
"url": "https://symfony.com/sponsor",
@@ -2956,29 +3507,29 @@
"type": "tidelift"
}
],
- "time": "2020-07-14T12:35:20+00:00"
+ "time": "2020-10-23T14:02:19+00:00"
},
{
"name": "symfony/polyfill-php72",
- "version": "v1.18.1",
+ "version": "v1.20.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php72.git",
- "reference": "639447d008615574653fb3bc60d1986d7172eaae"
+ "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/639447d008615574653fb3bc60d1986d7172eaae",
- "reference": "639447d008615574653fb3bc60d1986d7172eaae",
+ "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cede45fcdfabdd6043b3592e83678e42ec69e930",
+ "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": ">=7.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.18-dev"
+ "dev-main": "1.20-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -3015,6 +3566,9 @@
"portable",
"shim"
],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php72/tree/v1.20.0"
+ },
"funding": [
{
"url": "https://symfony.com/sponsor",
@@ -3029,29 +3583,29 @@
"type": "tidelift"
}
],
- "time": "2020-07-14T12:35:20+00:00"
+ "time": "2020-10-23T14:02:19+00:00"
},
{
"name": "symfony/polyfill-php73",
- "version": "v1.18.1",
+ "version": "v1.20.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php73.git",
- "reference": "fffa1a52a023e782cdcc221d781fe1ec8f87fcca"
+ "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fffa1a52a023e782cdcc221d781fe1ec8f87fcca",
- "reference": "fffa1a52a023e782cdcc221d781fe1ec8f87fcca",
+ "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/8ff431c517be11c78c48a39a66d37431e26a6bed",
+ "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": ">=7.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.18-dev"
+ "dev-main": "1.20-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -3091,6 +3645,9 @@
"portable",
"shim"
],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php73/tree/v1.20.0"
+ },
"funding": [
{
"url": "https://symfony.com/sponsor",
@@ -3105,29 +3662,29 @@
"type": "tidelift"
}
],
- "time": "2020-07-14T12:35:20+00:00"
+ "time": "2020-10-23T14:02:19+00:00"
},
{
"name": "symfony/polyfill-php80",
- "version": "v1.18.1",
+ "version": "v1.20.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "d87d5766cbf48d72388a9f6b85f280c8ad51f981"
+ "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/d87d5766cbf48d72388a9f6b85f280c8ad51f981",
- "reference": "d87d5766cbf48d72388a9f6b85f280c8ad51f981",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/e70aa8b064c5b72d3df2abd5ab1e90464ad009de",
+ "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de",
"shasum": ""
},
"require": {
- "php": ">=7.0.8"
+ "php": ">=7.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.18-dev"
+ "dev-main": "1.20-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -3171,6 +3728,9 @@
"portable",
"shim"
],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.20.0"
+ },
"funding": [
{
"url": "https://symfony.com/sponsor",
@@ -3185,20 +3745,20 @@
"type": "tidelift"
}
],
- "time": "2020-07-14T12:35:20+00:00"
+ "time": "2020-10-23T14:02:19+00:00"
},
{
"name": "symfony/process",
- "version": "v5.1.3",
+ "version": "v5.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "1864216226af21eb76d9477f691e7cbf198e0402"
+ "reference": "d3a2e64866169586502f0cd9cab69135ad12cee9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/1864216226af21eb76d9477f691e7cbf198e0402",
- "reference": "1864216226af21eb76d9477f691e7cbf198e0402",
+ "url": "https://api.github.com/repos/symfony/process/zipball/d3a2e64866169586502f0cd9cab69135ad12cee9",
+ "reference": "d3a2e64866169586502f0cd9cab69135ad12cee9",
"shasum": ""
},
"require": {
@@ -3235,6 +3795,9 @@
],
"description": "Symfony Process Component",
"homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/process/tree/5.1"
+ },
"funding": [
{
"url": "https://symfony.com/sponsor",
@@ -3249,20 +3812,20 @@
"type": "tidelift"
}
],
- "time": "2020-07-23T08:36:24+00:00"
+ "time": "2020-09-02T16:23:27+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "v2.1.3",
+ "version": "v2.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "58c7475e5457c5492c26cc740cc0ad7464be9442"
+ "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/58c7475e5457c5492c26cc740cc0ad7464be9442",
- "reference": "58c7475e5457c5492c26cc740cc0ad7464be9442",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1",
+ "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1",
"shasum": ""
},
"require": {
@@ -3275,7 +3838,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.1-dev"
+ "dev-master": "2.2-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -3311,6 +3874,9 @@
"interoperability",
"standards"
],
+ "support": {
+ "source": "https://github.com/symfony/service-contracts/tree/master"
+ },
"funding": [
{
"url": "https://symfony.com/sponsor",
@@ -3325,11 +3891,11 @@
"type": "tidelift"
}
],
- "time": "2020-07-06T13:23:11+00:00"
+ "time": "2020-09-07T11:33:47+00:00"
},
{
"name": "symfony/stopwatch",
- "version": "v5.1.3",
+ "version": "v5.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/stopwatch.git",
@@ -3375,6 +3941,9 @@
],
"description": "Symfony Stopwatch Component",
"homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/stopwatch/tree/v5.1.4"
+ },
"funding": [
{
"url": "https://symfony.com/sponsor",
@@ -3393,16 +3962,16 @@
},
{
"name": "symfony/string",
- "version": "v5.1.3",
+ "version": "v5.1.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "f629ba9b611c76224feb21fe2bcbf0b6f992300b"
+ "reference": "4a9afe9d07bac506f75bcee8ed3ce76da5a9343e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/f629ba9b611c76224feb21fe2bcbf0b6f992300b",
- "reference": "f629ba9b611c76224feb21fe2bcbf0b6f992300b",
+ "url": "https://api.github.com/repos/symfony/string/zipball/4a9afe9d07bac506f75bcee8ed3ce76da5a9343e",
+ "reference": "4a9afe9d07bac506f75bcee8ed3ce76da5a9343e",
"shasum": ""
},
"require": {
@@ -3460,6 +4029,9 @@
"utf-8",
"utf8"
],
+ "support": {
+ "source": "https://github.com/symfony/string/tree/v5.1.7"
+ },
"funding": [
{
"url": "https://symfony.com/sponsor",
@@ -3474,7 +4046,7 @@
"type": "tidelift"
}
],
- "time": "2020-07-08T08:27:49+00:00"
+ "time": "2020-09-15T12:23:47+00:00"
},
{
"name": "theseer/tokenizer",
@@ -3514,6 +4086,10 @@
}
],
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
+ "support": {
+ "issues": "https://github.com/theseer/tokenizer/issues",
+ "source": "https://github.com/theseer/tokenizer/tree/master"
+ },
"funding": [
{
"url": "https://github.com/theseer",
@@ -3569,7 +4145,74 @@
"check",
"validate"
],
+ "support": {
+ "issues": "https://github.com/webmozart/assert/issues",
+ "source": "https://github.com/webmozart/assert/tree/master"
+ },
"time": "2020-07-08T17:02:28+00:00"
+ },
+ {
+ "name": "yoast/phpunit-polyfills",
+ "version": "0.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Yoast/PHPUnit-Polyfills.git",
+ "reference": "cf3da76ae146f28050a7c4c879634c8b4c26d3d7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/cf3da76ae146f28050a7c4c879634c8b4c26d3d7",
+ "reference": "cf3da76ae146f28050a7c4c879634c8b4c26d3d7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.6",
+ "phpunit/phpunit": "^5.7 || ^6.0 || ^7.0 || ^8.0 || ^9.0"
+ },
+ "require-dev": {
+ "php-parallel-lint/php-console-highlighter": "^0.5",
+ "php-parallel-lint/php-parallel-lint": "^1.2.0",
+ "yoast/yoastcs": "^2.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.x-dev",
+ "dev-develop": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "phpunitpolyfills-autoload.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Team Yoast",
+ "email": "support@yoast.com",
+ "homepage": "https://yoast.com"
+ },
+ {
+ "name": "Contributors",
+ "homepage": "https://github.com/Yoast/PHPUnit-Polyfills/graphs/contributors"
+ }
+ ],
+ "description": "Set of polyfills for changed PHPUnit functionality to allow for creating PHPUnit cross-version compatible tests",
+ "homepage": "https://github.com/Yoast/PHPUnit-Polyfills",
+ "keywords": [
+ "phpunit",
+ "polyfill",
+ "testing"
+ ],
+ "support": {
+ "issues": "https://github.com/Yoast/PHPUnit-Polyfills/issues",
+ "source": "https://github.com/Yoast/PHPUnit-Polyfills"
+ },
+ "time": "2020-10-26T10:59:22+00:00"
}
],
"aliases": [],
@@ -3582,5 +4225,5 @@
"ext-mysqli": "*"
},
"platform-dev": [],
- "plugin-api-version": "1.1.0"
+ "plugin-api-version": "2.0.0"
}
diff --git a/lib/mysql.php b/lib/mysql.php
index d05d7a8..7c79210 100644
--- a/lib/mysql.php
+++ b/lib/mysql.php
@@ -411,14 +411,41 @@ namespace {
return mysqli_fetch_lengths($result);
}
- function mysql_fetch_field($result) /* : object|*/
+ function mysql_fetch_field($result, $field_offset = null) /* : object|*/
{
+ static $fields = array();
+
if (!\Dshafik\MySQL::checkValidResult($result, __FUNCTION__)) {
// @codeCoverageIgnoreStart
return false;
// @codeCoverageIgnoreEnd
}
- $res = mysqli_fetch_field($result);
+
+ $result_hash = spl_object_hash($result);
+ if ($field_offset === null) {
+ $fields[$result_hash][] = true;
+ $res = mysqli_fetch_field($result);
+ } elseif ($field_offset > mysqli_num_fields($result)) {
+ trigger_error('mysql_fetch_field(): Bad field offset', E_USER_WARNING);
+ return false;
+ } else {
+ $i = 0;
+ if (isset($fields[$result_hash])) {
+ $i = count($fields[$result_hash]);
+ }
+
+ while ($i <= $field_offset) {
+ $res = mysqli_fetch_field($result);
+
+ if ($res === false) {
+ return false;
+ }
+
+ $fields[$result_hash][$i] = true;
+ $i++;
+ }
+ }
+
if ($res instanceof \stdClass) {
$res->not_null = ($res->flags & MYSQLI_NOT_NULL_FLAG) ? 1 : 0;
$res->primary_key = ($res->flags & MYSQLI_PRI_KEY_FLAG ) ? 1 : 0;
@@ -428,7 +455,89 @@ namespace {
$res->blob = ($res->flags & MYSQLI_BLOB_FLAG ) ? 1 : 0;
$res->unsigned = ($res->flags & MYSQLI_UNSIGNED_FLAG ) ? 1 : 0;
$res->zerofill = ($res->flags & MYSQLI_ZEROFILL_FLAG ) ? 1 : 0;
+
+ switch ($res->type) {
+ case MYSQLI_TYPE_CHAR:
+ $res->type = 'tinyint';
+ break;
+ case MYSQLI_TYPE_SHORT:
+ $res->type = 'smallint';
+ break;
+ case MYSQLI_TYPE_DECIMAL:
+ $res->type = 'decimal';
+ break;
+ case MYSQLI_TYPE_LONG:
+ $res->type = 'int';
+ break;
+ case MYSQLI_TYPE_FLOAT:
+ $res->type = 'float';
+ break;
+ case MYSQLI_TYPE_DOUBLE:
+ $res->type = 'double';
+ break;
+ case MYSQLI_TYPE_NULL:
+ $res->type = 'null';
+ break;
+ case MYSQLI_TYPE_TIMESTAMP:
+ $res->type = 'timestamp';
+ break;
+ case MYSQLI_TYPE_LONGLONG:
+ $res->type = 'bigint';
+ break;
+ case MYSQLI_TYPE_INT24:
+ $res->type = 'mediumint';
+ break;
+ case MYSQLI_TYPE_DATE:
+ $res->type = 'date';
+ break;
+ case MYSQLI_TYPE_TIME:
+ $res->type = 'time';
+ break;
+ case MYSQLI_TYPE_DATETIME:
+ $res->type = 'datetime';
+ break;
+ case MYSQLI_TYPE_YEAR:
+ $res->type = 'year';
+ break;
+ case MYSQLI_TYPE_NEWDATE:
+ $res->type = 'date';
+ break;
+ case MYSQLI_TYPE_BIT:
+ $res->type = 'bit';
+ break;
+ case MYSQLI_TYPE_ENUM:
+ $res->type = 'enum';
+ break;
+ case MYSQLI_TYPE_SET:
+ $res->type = 'set';
+ break;
+ case MYSQLI_TYPE_TINY_BLOB:
+ $res->type = 'tinyblob';
+ break;
+ case MYSQLI_TYPE_MEDIUM_BLOB:
+ $res->type = 'mediumblob';
+ break;
+ case MYSQLI_TYPE_LONG_BLOB:
+ $res->type = 'longblob';
+ break;
+ case MYSQLI_TYPE_BLOB:
+ $res->type = 'blob';
+ break;
+ case MYSQLI_TYPE_VAR_STRING:
+ $res->type = 'string';
+ break;
+ case MYSQLI_TYPE_STRING:
+ $res->type = 'string';
+ break;
+ case MYSQLI_TYPE_GEOMETRY:
+ $res->type = 'geometry';
+ break;
+ case MYSQLI_TYPE_NEWDECIMAL:
+ $res->type = 'numeric';
+ break;
+ }
}
+
return $res;
}
diff --git a/tests/MySqlShimTest.php b/tests/MySqlShimTest.php
index 1a63aad..a16f2c9 100644
--- a/tests/MySqlShimTest.php
+++ b/tests/MySqlShimTest.php
@@ -9,7 +9,7 @@
*/
namespace Dshafik\MySQL\Tests;
-class MySqlShimTest extends \PHPUnit\Framework\TestCase
+class MySqlShimTest extends \Yoast\PHPUnitPolyfills\TestCases\TestCase
{
/**
* @var string MySQL Host
@@ -28,11 +28,6 @@ class MySqlShimTest extends \PHPUnit\Framework\TestCase
*/
protected static $dbs = array();
- /**
- * @var \SebastianBergmann\Environment\Runtime
- */
- protected $runtime;
-
public function __construct($name = null, array $data = array(), $dataName = '')
{
if (getenv('MYSQL_HOST') !== false) {
@@ -44,12 +39,10 @@ class MySqlShimTest extends \PHPUnit\Framework\TestCase
}
if (getenv('MYSQL_PASSWORD') !== false) {
- var_dump(getenv('MYSQL_PASSWORD'));
static::$password = getenv('MYSQL_PASSWORD');
}
parent::__construct($name, $data, $dataName);
- $this->runtime = new \SebastianBergmann\Environment\Runtime();
}
public function test_mysql_connect()
@@ -71,6 +64,12 @@ class MySqlShimTest extends \PHPUnit\Framework\TestCase
$this->assertConnection($mysql);
}
+ public function test_mysql_connect_port()
+ {
+ $mysql = mysql_connect(static::$host . ':3306', static::$username, static::$password);
+ $this->assertConnection($mysql);
+ }
+
public function test_mysql_connect_fail_warning()
{
$this->expectWarning();
@@ -520,7 +519,7 @@ class MySqlShimTest extends \PHPUnit\Framework\TestCase
$this->assertEquals('testing', mysql_field_table($result, 10));
$this->assertEquals('ten', mysql_field_name($result, 10));
$this->assertEquals('string', mysql_field_type($result, 10));
- $this->assertEquals(35, mysql_field_len($result, 10));
+ $this->assertEquals(52, mysql_field_len($result, 10));
$this->assertEquals('set', mysql_field_flags($result, 10));
$this->assertEquals('testing', mysql_field_table($result, 11));
@@ -598,7 +597,7 @@ class MySqlShimTest extends \PHPUnit\Framework\TestCase
$this->assertEquals('testing', mysql_field_table($result, 10));
$this->assertEquals('ten', mysql_field_name($result, 10));
$this->assertEquals('string', mysql_field_type($result, 10));
- $this->assertEquals(35*3, mysql_field_len($result, 10));
+ $this->assertEquals(156, mysql_field_len($result, 10));
$this->assertEquals('set', mysql_field_flags($result, 10));
$this->assertEquals('testing', mysql_field_table($result, 11));
@@ -688,10 +687,9 @@ class MySqlShimTest extends \PHPUnit\Framework\TestCase
if ($args !== array()) {
array_unshift($args, null);
- $this->expectWarningMessageMatches('@' . __FILE__ . ':' . (__LINE__ + 1) . '@');
call_user_func_array($function, $args);
}
- $this->expectWarningMessageMatches('@' . __FILE__ . ':' . (__LINE__ + 1) . '@');
+
call_user_func($function, null);
}
@@ -743,6 +741,43 @@ class MySqlShimTest extends \PHPUnit\Framework\TestCase
$this->assertFalse($function($result));
}
+ /**
+ * @dataProvider mysql_fetch_object_dataProvider
+ */
+ public function test_mysql_fetch_object($className, $params, $expectedParams)
+ {
+ $this->getConnection('shim_test');
+ $result = mysql_query("SELECT one, two FROM testing LIMIT 2");
+
+ $fetch = function($result) use ($className, $params) {
+ if ($className === null) {
+ return mysql_fetch_object($result);
+ }
+
+ if ($params === array()) {
+ return mysql_fetch_object($result, $className);
+ }
+
+ return mysql_fetch_object($result, $className, $params);
+ };
+
+ while ($row = $fetch($result)) {
+ if ($className === null) {
+ $this->assertInstanceOf('stdClass', $row);
+ } else {
+ $this->assertInstanceOf($className, $row);
+ }
+
+ $this->assertNotEmpty($row->one);
+ $this->assertNotEmpty($row->two);
+
+ if ($expectedParams !== null) {
+ $this->assertEquals($expectedParams['foo'], $row->foo);
+ $this->assertEquals($expectedParams['bar'], $row->bar);
+ }
+ }
+ }
+
public function test_mysql_num_rows()
{
$this->getConnection('shim_test');
@@ -863,7 +898,7 @@ class MySqlShimTest extends \PHPUnit\Framework\TestCase
$result = mysql_query('SELECT VERSION(');
$this->assertFalse($result);
- $this->assertRegExp(
+ $this->assertMatchesRegularExpression(
'@You have an error in your SQL syntax; check the manual that corresponds to your (.*?) ' .
'server version for the right syntax to use near \'\' at line 1@',
mysql_error()
@@ -925,7 +960,7 @@ class MySqlShimTest extends \PHPUnit\Framework\TestCase
$this->assertEquals('information_schema', mysql_db_name($dbs, 0));
}
- public function test_mysql_fetch_field()
+ public function test_mysql_fetch_field_with_offset()
{
$this->getConnection();
@@ -940,68 +975,68 @@ class MySqlShimTest extends \PHPUnit\Framework\TestCase
$result = mysql_query("SELECT * FROM testing WHERE one = 'six' LIMIT 1");
$this->assertNotFalse($result);
- $map = [
- 0 => [
+ $map = array(
+ 0 => array(
'name' => 'id', 'max_length' => 1, 'not_null' => 1, 'primary_key' => 1,
'unique_key' => 0, 'multiple_key' => 0, 'numeric' => 1, 'blob' => 0,
- 'type' => MYSQLI_TYPE_LONG, 'unsigned' => 0, 'zerofill' => 0
- ],
- 1 => [
+ 'type' => 'int', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 1 => array(
'name' => 'one', 'max_length' => 3, 'not_null' => 0, 'primary_key' => 0,
'unique_key' => 0, 'multiple_key' => 1, 'numeric' => 0, 'blob' => 0,
- 'type' => MYSQLI_TYPE_VAR_STRING, 'unsigned' => 0, 'zerofill' => 0
- ],
- 2 => [
+ 'type' => 'string', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 2 => array(
'name' => 'two', 'max_length' => 1, 'not_null' => 0, 'primary_key' => 0,
'unique_key' => 1, 'multiple_key' => 0, 'numeric' => 0, 'blob' => 0,
- 'type' => MYSQLI_TYPE_VAR_STRING, 'unsigned' => 0, 'zerofill' => 0
- ],
- 3 => [
+ 'type' => 'string', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 3 => array(
'name' => 'three', 'max_length' => 1, 'not_null' => 0, 'primary_key' => 0,
'unique_key' => 0, 'multiple_key' => 1, 'numeric' => 0, 'blob' => 0,
- 'type' => MYSQLI_TYPE_VAR_STRING, 'unsigned' => 0, 'zerofill' => 0
- ],
- 4 => [
+ 'type' => 'string', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 4 => array(
'name' => 'four', 'max_length' => 1, 'not_null' => 0, 'primary_key' => 0,
'unique_key' => 0, 'multiple_key' => 1, 'numeric' => 0, 'blob' => 0,
- 'type' => MYSQLI_TYPE_VAR_STRING, 'unsigned' => 0, 'zerofill' => 0
- ],
- 5 => [
+ 'type' => 'string', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 5 => array(
'name' => 'five', 'max_length' => 1, 'not_null' => 0, 'primary_key' => 0,
'unique_key' => 0, 'multiple_key' => 0, 'numeric' => 0, 'blob' => 0,
- 'type' => MYSQLI_TYPE_VAR_STRING, 'unsigned' => 0, 'zerofill' => 0
- ],
- 6 => [
+ 'type' => 'string', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 6 => array(
'name' => 'six', 'max_length' => 1, 'not_null' => 0, 'primary_key' => 0,
'unique_key' => 0, 'multiple_key' => 0, 'numeric' => 0, 'blob' => 0,
- 'type' => MYSQLI_TYPE_VAR_STRING, 'unsigned' => 0, 'zerofill' => 0
- ],
- 7 => [
+ 'type' => 'string', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 7 => array(
'name' => 'seven', 'max_length' => 1, 'not_null' => 0, 'primary_key' => 0,
'unique_key' => 0, 'multiple_key' => 1, 'numeric' => 0, 'blob' => 0,
- 'type' => MYSQLI_TYPE_VAR_STRING, 'unsigned' => 0, 'zerofill' => 0
- ],
- 8 => [
+ 'type' => 'string', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 8 => array(
'name' => 'eight', 'max_length' => 1, 'not_null' => 0, 'primary_key' => 0,
'unique_key' => 0, 'multiple_key' => 0, 'numeric' => 0, 'blob' => 0,
- 'type' => MYSQLI_TYPE_VAR_STRING, 'unsigned' => 0, 'zerofill' => 0
- ],
- 9 => [
+ 'type' => 'string', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 9 => array(
'name' => 'nine', 'max_length' => 3, 'not_null' => 0, 'primary_key' => 0,
'unique_key' => 0, 'multiple_key' => 0, 'numeric' => 0, 'blob' => 0,
- 'type' => MYSQLI_TYPE_STRING, 'unsigned' => 0, 'zerofill' => 0
- ],
- 10 => [
+ 'type' => 'string', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 10 => array(
'name' => 'ten', 'max_length' => 3, 'not_null' => 0, 'primary_key' => 0,
'unique_key' => 0, 'multiple_key' => 0, 'numeric' => 0, 'blob' => 0,
- 'type' => MYSQLI_TYPE_STRING, 'unsigned' => 0, 'zerofill' => 0
- ],
- 11 => [
+ 'type' => 'string', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 11 => array(
'name' => 'eleven', 'max_length' => 1, 'not_null' => 0, 'primary_key' => 0,
'unique_key' => 0, 'multiple_key' => 0, 'numeric' => 0, 'blob' => 1,
- 'type' => MYSQLI_TYPE_BLOB, 'unsigned' => 0, 'zerofill' => 0
- ],
- ];
+ 'type' => 'blob', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ );
foreach ($map as $index => $values) {
$field = mysql_fetch_field($result, $index);
@@ -1013,6 +1048,149 @@ class MySqlShimTest extends \PHPUnit\Framework\TestCase
}
}
+ public function test_mysql_fetch_field_with_nonconsecutive_offset()
+ {
+ $this->getConnection();
+
+ $result = mysql_query(
+ "INSERT INTO
+ testing (one, two, three, four, five, six, seven, eight, nine, ten, eleven)
+ VALUES
+ ('eight', '8', '8', '8', '8', '8', '8', '8', 'eight', 'eight', '8')"
+ );
+ $this->assertTrue($result);
+
+ $result = mysql_unbuffered_query("SELECT * FROM testing WHERE one = 'eight' LIMIT 1");
+ $this->assertNotFalse($result);
+
+ $row = mysql_fetch_assoc($result);
+
+ $map = array(
+ 1 => array(
+ 'name' => 'one', 'max_length' => 5, 'not_null' => 0, 'primary_key' => 0,
+ 'unique_key' => 0, 'multiple_key' => 1, 'numeric' => 0, 'blob' => 0,
+ 'type' => 'string', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 3 => array(
+ 'name' => 'three', 'max_length' => 1, 'not_null' => 0, 'primary_key' => 0,
+ 'unique_key' => 0, 'multiple_key' => 1, 'numeric' => 0, 'blob' => 0,
+ 'type' => 'string', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 6 => array(
+ 'name' => 'six', 'max_length' => 1, 'not_null' => 0, 'primary_key' => 0,
+ 'unique_key' => 0, 'multiple_key' => 0, 'numeric' => 0, 'blob' => 0,
+ 'type' => 'string', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 10 => array(
+ 'name' => 'ten', 'max_length' => 5, 'not_null' => 0, 'primary_key' => 0,
+ 'unique_key' => 0, 'multiple_key' => 0, 'numeric' => 0, 'blob' => 0,
+ 'type' => 'string', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 11 => array(
+ 'name' => 'eleven', 'max_length' => 1, 'not_null' => 0, 'primary_key' => 0,
+ 'unique_key' => 0, 'multiple_key' => 0, 'numeric' => 0, 'blob' => 1,
+ 'type' => 'blob', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ );
+
+ foreach ($map as $index => $values) {
+ $field = mysql_fetch_field($result, $index);
+ $this->assertInstanceOf(\stdClass::class, $field);
+
+ foreach ($values as $key => $value) {
+ $this->assertEquals($field->{$key}, $value, "Field '$index:$key' doesn't match. Expected: $value, Actual: {$field->{$key}}");
+ }
+ }
+ }
+
+ public function test_mysql_fetch_field_without_offset()
+ {
+ $this->getConnection();
+
+ $result = mysql_query(
+ "INSERT INTO
+ testing (one, two, three, four, five, six, seven, eight, nine, ten, eleven)
+ VALUES
+ ('seven', '7', '7', '7', '7', '7', '7', '7', 'seven', 'seven', '7')"
+ );
+ $this->assertTrue($result, mysql_error());
+
+ $result = mysql_query("SELECT * FROM testing WHERE one = 'seven' LIMIT 1");
+ $this->assertNotFalse($result);
+
+ $map = array(
+ 0 => array(
+ 'name' => 'id', 'max_length' => 1, 'not_null' => 1, 'primary_key' => 1,
+ 'unique_key' => 0, 'multiple_key' => 0, 'numeric' => 1, 'blob' => 0,
+ 'type' => 'int', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 1 => array(
+ 'name' => 'one', 'max_length' => 5, 'not_null' => 0, 'primary_key' => 0,
+ 'unique_key' => 0, 'multiple_key' => 1, 'numeric' => 0, 'blob' => 0,
+ 'type' => 'string', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 2 => array(
+ 'name' => 'two', 'max_length' => 1, 'not_null' => 0, 'primary_key' => 0,
+ 'unique_key' => 1, 'multiple_key' => 0, 'numeric' => 0, 'blob' => 0,
+ 'type' => 'string', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 3 => array(
+ 'name' => 'three', 'max_length' => 1, 'not_null' => 0, 'primary_key' => 0,
+ 'unique_key' => 0, 'multiple_key' => 1, 'numeric' => 0, 'blob' => 0,
+ 'type' => 'string', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 4 => array(
+ 'name' => 'four', 'max_length' => 1, 'not_null' => 0, 'primary_key' => 0,
+ 'unique_key' => 0, 'multiple_key' => 1, 'numeric' => 0, 'blob' => 0,
+ 'type' => 'string', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 5 => array(
+ 'name' => 'five', 'max_length' => 1, 'not_null' => 0, 'primary_key' => 0,
+ 'unique_key' => 0, 'multiple_key' => 0, 'numeric' => 0, 'blob' => 0,
+ 'type' => 'string', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 6 => array(
+ 'name' => 'six', 'max_length' => 1, 'not_null' => 0, 'primary_key' => 0,
+ 'unique_key' => 0, 'multiple_key' => 0, 'numeric' => 0, 'blob' => 0,
+ 'type' => 'string', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 7 => array(
+ 'name' => 'seven', 'max_length' => 1, 'not_null' => 0, 'primary_key' => 0,
+ 'unique_key' => 0, 'multiple_key' => 1, 'numeric' => 0, 'blob' => 0,
+ 'type' => 'string', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 8 => array(
+ 'name' => 'eight', 'max_length' => 1, 'not_null' => 0, 'primary_key' => 0,
+ 'unique_key' => 0, 'multiple_key' => 0, 'numeric' => 0, 'blob' => 0,
+ 'type' => 'string', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 9 => array(
+ 'name' => 'nine', 'max_length' => 5, 'not_null' => 0, 'primary_key' => 0,
+ 'unique_key' => 0, 'multiple_key' => 0, 'numeric' => 0, 'blob' => 0,
+ 'type' => 'string', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 10 => array(
+ 'name' => 'ten', 'max_length' => 5, 'not_null' => 0, 'primary_key' => 0,
+ 'unique_key' => 0, 'multiple_key' => 0, 'numeric' => 0, 'blob' => 0,
+ 'type' => 'string', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ 11 => array(
+ 'name' => 'eleven', 'max_length' => 1, 'not_null' => 0, 'primary_key' => 0,
+ 'unique_key' => 0, 'multiple_key' => 0, 'numeric' => 0, 'blob' => 1,
+ 'type' => 'blob', 'unsigned' => 0, 'zerofill' => 0
+ ),
+ );
+
+ foreach ($map as $index => $values) {
+ $field = mysql_fetch_field($result);
+ $this->assertInstanceOf(\stdClass::class, $field);
+
+ foreach ($values as $key => $value) {
+ $this->assertEquals($field->{$key}, $value, "Field '$index:$key' doesn't match. Expected: $value, Actual: {$field->{$key}}");
+ }
+ }
+ }
+
public function test_mysql_fetch_field_fail_false()
{
$this->expectWarning();
@@ -1024,8 +1202,8 @@ class MySqlShimTest extends \PHPUnit\Framework\TestCase
public function test_mysql_fetch_field_fail_invalid()
{
- // $this->expectWarning();
- // $this->expectWarningMessage("mysql_fetch_field() expects parameter 1 to be resource, boolean given");
+ $this->expectWarning();
+ $this->expectWarningMessage("mysql_fetch_field(): Bad field offset");
$this->getConnection();
@@ -1036,21 +1214,34 @@ class MySqlShimTest extends \PHPUnit\Framework\TestCase
('six', '6', '6', '6', '6', '6', '6', '6', 'six', 'six', '6')"
);
- $result = mysql_query("SELECT * FROM testing WHERE one = 'six' LIMIT 1");
+ $result = mysql_query("SELECT one FROM testing WHERE one = 'six' LIMIT 1");
$this->assertNotFalse($result);
- for ($i = 0; $i <= 12; $i++) {
- $field = mysql_fetch_field($result, $i);
- }
+ $field = mysql_fetch_field($result, 2);
$this->assertFalse($field);
}
- public function tearDown(): void
+ public function test_mysql_list_processes()
+ {
+ $this->getConnection();
+
+ $result = mysql_list_processes();
+
+ while ($row = mysql_fetch_assoc($result)) {
+ $this->assertArrayHasKey('Id', $row);
+ $this->assertArrayHasKey('Host', $row);
+ $this->assertArrayHasKey('db', $row);
+ $this->assertArrayHasKey('Command', $row);
+ $this->assertArrayHasKey('Time', $row);
+ }
+ }
+
+ public function tear_down()
{
@mysql_close();
}
- public static function tearDownAfterClass(): void
+ public static function tear_down_after_class()
{
mysql_connect(static::$host, static::$username, static::$password);
foreach (self::$dbs as $db) {
@@ -1137,6 +1328,33 @@ class MySqlShimTest extends \PHPUnit\Framework\TestCase
);
}
+ public function mysql_fetch_object_dataProvider()
+ {
+ return array(
+ array(
+ 'class' => null,
+ 'params' => array(),
+ 'expectedParams' => null,
+ ),
+ array(
+ 'class' => '\Dshafik\MySQL\Tests\TestResult',
+ 'params' => array(),
+ 'expectedParams' => array(
+ 'foo' => TestResult::DEFAULT_PARAM_VALUE,
+ 'bar' => TestResult::DEFAULT_PARAM_VALUE,
+ )
+ ),
+ array(
+ 'class' => '\Dshafik\MySQL\Tests\TestResult',
+ 'params' => array(TestResult::SET_VALUE, TestResult::SET_VALUE + 1),
+ 'expectedParams' => array(
+ 'foo' => TestResult::SET_VALUE,
+ 'bar' => TestResult::SET_VALUE + 1
+ )
+ )
+ );
+ }
+
public function mysql_function_invalid_result_DataProvider()
{
return array(
@@ -1273,8 +1491,8 @@ class MySqlShimTest extends \PHPUnit\Framework\TestCase
six varchar(255),
seven varchar(255),
eight varchar(255),
- nine ENUM('one', 'two', '\'three', 'three', 'four', 'five', 'six'),
- ten SET('one', 'two', '\'\'three', 'three', 'four', 'five', 'six'),
+ nine ENUM('one', 'two', '\'three', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'),
+ ten SET('one', 'two', '\'\'three', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'),
eleven MEDIUMTEXT,
INDEX one_idx (one),
UNIQUE INDEX two_unq (two),
@@ -1330,3 +1548,18 @@ class MySqlShimTest extends \PHPUnit\Framework\TestCase
);
}
}
+
+class TestResult {
+ const DEFAULT_VALUE = 1;
+ const DEFAULT_PARAM_VALUE = 2;
+ const SET_VALUE = 3;
+
+ public $foo = self::DEFAULT_VALUE;
+ public $bar = self::DEFAULT_VALUE;
+
+ public function __construct($foo = self::DEFAULT_PARAM_VALUE, $bar = self::DEFAULT_PARAM_VALUE)
+ {
+ $this->foo = $foo;
+ $this->bar = $bar;
+ }
+} \ No newline at end of file
diff --git a/tests/coverage.php b/tests/coverage.php
new file mode 100644
index 0000000..8d88eee
--- /dev/null
+++ b/tests/coverage.php
@@ -0,0 +1,3 @@
+<?php
+$xml = simplexml_load_file("build/coverage/xml/mysql.php.xml");
+echo "COVERAGE=" . $xml->file->totals->lines->attributes()->percent; \ No newline at end of file