Unverified Commit 01143c9c authored by Sergei Morozov's avatar Sergei Morozov

Merge branch '3.0.x'

parents 9c91d750 133ce49c
...@@ -3,7 +3,7 @@ build: ...@@ -3,7 +3,7 @@ build:
analysis: analysis:
environment: environment:
php: php:
version: 7.2 version: 7.3
cache: cache:
disabled: false disabled: false
directories: directories:
......
...@@ -14,7 +14,11 @@ before_install: ...@@ -14,7 +14,11 @@ before_install:
fi fi
before_script: before_script:
- if [[ "$DB" == "mysql" || "$DB" == "mysqli" || "$DB" == *"mariadb"* ]]; then mysql < tests/travis/create-mysql-schema.sql; fi; - |
if [[ -n "$IMAGE" ]]
then
bash ./tests/travis/docker-run-mysql-or-mariadb.sh
fi
install: install:
- | - |
...@@ -56,288 +60,152 @@ jobs: ...@@ -56,288 +60,152 @@ jobs:
script: vendor/bin/phpcs script: vendor/bin/phpcs
- stage: Test - stage: Test
php: 7.2 php: 7.3
env: DB=mysql.docker MYSQL_VERSION=8.0 env: DB=mysql.docker IMAGE=mysql:5.7 COVERAGE=yes
sudo: required
services:
- docker
before_script:
- bash ./tests/travis/install-mysql-8.0.sh
- stage: Test - stage: Test
php: 7.2 php: 7.3
env: DB=mysqli.docker MYSQL_VERSION=8.0 env: DB=mysql.docker IMAGE=mysql:8.0 COVERAGE=yes
sudo: required
services:
- docker
before_script:
- bash ./tests/travis/install-mysql-8.0.sh
- stage: Test - stage: Test
php: 7.2 php: 7.3
env: DB=mariadb MARIADB_VERSION=10.3 env: DB=mysqli.docker IMAGE=mysql:5.7 COVERAGE=yes
addons:
mariadb: 10.3
- stage: Test - stage: Test
php: 7.2 php: 7.3
env: DB=mariadb.mysqli MARIADB_VERSION=10.3 env: DB=mysqli.docker IMAGE=mysql:8.0 COVERAGE=yes
addons:
mariadb: 10.3
- stage: Test - stage: Test
php: 7.2 php: 7.3
env: DB=pgsql POSTGRESQL_VERSION=11.0 env: DB=mariadb.docker IMAGE=mariadb:10.0 COVERAGE=yes
sudo: required
services:
- docker
before_script:
- bash ./tests/travis/install-postgres-11.sh
- stage: Test - stage: Test
php: 7.2 php: 7.3
env: DB=sqlite env: DB=mariadb.docker IMAGE=mariadb:10.1 COVERAGE=yes
- stage: Test - stage: Test
php: 7.2 php: 7.3
env: DB=sqlsrv env: DB=mariadb.docker IMAGE=mariadb:10.2 COVERAGE=yes
sudo: required
services:
- docker
before_script:
- bash ./tests/travis/install-sqlsrv-dependencies.sh
- bash ./tests/travis/install-mssql-sqlsrv.sh
- bash ./tests/travis/install-mssql.sh
- stage: Test - stage: Test
php: 7.2 php: 7.3
env: DB=pdo_sqlsrv env: DB=mariadb.docker IMAGE=mariadb:10.3 COVERAGE=yes
sudo: required
services:
- docker
before_script:
- bash ./tests/travis/install-sqlsrv-dependencies.sh
- bash ./tests/travis/install-mssql-pdo_sqlsrv.sh
- bash ./tests/travis/install-mssql.sh
- stage: Test - stage: Test
php: 7.2 php: 7.3
env: DB=sqlite DEPENDENCIES=low env: DB=mariadb.mysqli.docker IMAGE=mariadb:10.0 COVERAGE=yes
install:
- travis_retry composer update --prefer-dist --prefer-lowest
- stage: Test - stage: Test
php: 7.3 php: 7.3
env: DB=mysql.docker MYSQL_VERSION=8.0 env: DB=mariadb.mysqli.docker IMAGE=mariadb:10.1 COVERAGE=yes
sudo: required
services:
- docker
before_script:
- bash ./tests/travis/install-mysql-8.0.sh
- stage: Test - stage: Test
php: 7.3 php: 7.3
env: DB=mysqli.docker MYSQL_VERSION=8.0 env: DB=mariadb.mysqli.docker IMAGE=mariadb:10.2 COVERAGE=yes
sudo: required - stage: Test
services: php: 7.3
- docker env: DB=mariadb.mysqli.docker IMAGE=mariadb:10.3 COVERAGE=yes
before_script: - stage: Test
- bash ./tests/travis/install-mysql-8.0.sh php: 7.3
env: DB=pgsql POSTGRESQL_VERSION=9.4 COVERAGE=yes
addons:
postgresql: "9.4"
- stage: Test - stage: Test
php: 7.3 php: 7.3
env: DB=mariadb MARIADB_VERSION=10.3 env: DB=pgsql POSTGRESQL_VERSION=9.5 COVERAGE=yes
addons: addons:
mariadb: 10.3 postgresql: "9.5"
- stage: Test - stage: Test
php: 7.3 php: 7.3
env: DB=mariadb.mysqli MARIADB_VERSION=10.3 env: DB=pgsql POSTGRESQL_VERSION=9.6 COVERAGE=yes
addons: addons:
mariadb: 10.3 postgresql: "9.6"
- stage: Test - stage: Test
php: 7.3 php: 7.3
env: DB=pgsql POSTGRESQL_VERSION=11.0 env: DB=pgsql POSTGRESQL_VERSION=10.0 COVERAGE=yes
sudo: required sudo: required
services: addons:
- docker postgresql: "10"
before_script: before_script:
- bash ./tests/travis/install-postgres-11.sh - bash ./tests/travis/install-postgres-10.sh
- stage: Test - stage: Test
php: 7.3 php: 7.3
env: DB=sqlite env: DB=pgsql POSTGRESQL_VERSION=11.0 COVERAGE=yes
sudo: required
before_script:
- bash ./tests/travis/install-postgres-11.sh
- stage: Test - stage: Test
php: 7.3 php: 7.3
env: DB=sqlsrv env: DB=sqlsrv COVERAGE=yes
sudo: required sudo: required
services:
- docker
before_script: before_script:
- bash ./tests/travis/install-sqlsrv-dependencies.sh - bash ./tests/travis/install-sqlsrv-dependencies.sh
- bash ./tests/travis/install-mssql-sqlsrv.sh - bash ./tests/travis/install-mssql-sqlsrv.sh
- bash ./tests/travis/install-mssql.sh - bash ./tests/travis/install-mssql.sh
- stage: Test - stage: Test
php: 7.3 php: 7.3
env: DB=pdo_sqlsrv env: DB=pdo_sqlsrv COVERAGE=yes
sudo: required sudo: required
services:
- docker
before_script: before_script:
- bash ./tests/travis/install-sqlsrv-dependencies.sh - bash ./tests/travis/install-sqlsrv-dependencies.sh
- bash ./tests/travis/install-mssql-pdo_sqlsrv.sh - bash ./tests/travis/install-mssql-pdo_sqlsrv.sh
- bash ./tests/travis/install-mssql.sh - bash ./tests/travis/install-mssql.sh
- stage: Test - stage: Test
php: 7.4 php: 7.3
env: DB=mysql COVERAGE=yes env: DB=ibm_db2 COVERAGE=yes
services:
- mysql
- stage: Test
php: 7.4
env: DB=mysql.docker MYSQL_VERSION=5.7 COVERAGE=yes
sudo: required
before_script:
- bash ./tests/travis/install-mysql-5.7.sh
- stage: Test
php: 7.4
env: DB=mysql.docker MYSQL_VERSION=8.0 COVERAGE=yes
sudo: required
services:
- docker
before_script:
- bash ./tests/travis/install-mysql-8.0.sh
- stage: Test
php: 7.4
env: DB=mysqli COVERAGE=yes
services:
- mysql
- stage: Test
php: 7.4
env: DB=mysqli.docker MYSQL_VERSION=5.7 COVERAGE=yes
sudo: required
before_script:
- bash ./tests/travis/install-mysql-5.7.sh
- stage: Test
php: 7.4
env: DB=mysqli.docker MYSQL_VERSION=8.0 COVERAGE=yes
sudo: required sudo: required
services:
- docker
before_script: before_script:
- bash ./tests/travis/install-mysql-8.0.sh - bash ./tests/travis/install-db2.sh
- stage: Test - bash ./tests/travis/install-db2-ibm_db2.sh
php: 7.4
env: DB=mariadb.docker MARIADB_VERSION=10.1 COVERAGE=yes
services:
- docker
before_script:
- bash ./tests/travis/install-mariadb.sh
- stage: Test
php: 7.4
env: DB=mariadb MARIADB_VERSION=10.2 COVERAGE=yes
addons:
mariadb: 10.2
- stage: Test - stage: Test
php: 7.4 php: 7.3
env: DB=mariadb MARIADB_VERSION=10.3 COVERAGE=yes env: DB=sqlite DEPENDENCIES=low
addons: install:
mariadb: 10.3 - travis_retry composer update --prefer-dist --prefer-lowest
- stage: Test - stage: Test
php: 7.4 php: 7.4
env: DB=mariadb.mysqli.docker MARIADB_VERSION=10.1 COVERAGE=yes env: DB=mysql.docker IMAGE=mysql:8.0
services:
- docker
before_script:
- bash ./tests/travis/install-mariadb.sh
- stage: Test - stage: Test
php: 7.4 php: 7.4
env: DB=mariadb.mysqli MARIADB_VERSION=10.2 COVERAGE=yes env: DB=mysqli.docker IMAGE=mysql:8.0
addons:
mariadb: 10.2
- stage: Test - stage: Test
php: 7.4 php: 7.4
env: DB=mariadb.mysqli MARIADB_VERSION=10.3 COVERAGE=yes env: DB=mariadb.docker IMAGE=mariadb:10.3
addons:
mariadb: 10.3
- stage: Test - stage: Test
php: 7.4 php: 7.4
env: DB=pgsql POSTGRESQL_VERSION=9.4 COVERAGE=yes env: DB=mariadb.mysqli.docker IMAGE=mariadb:10.3
addons:
postgresql: "9.4"
- stage: Test - stage: Test
php: 7.4 php: 7.4
env: DB=pgsql POSTGRESQL_VERSION=9.5 COVERAGE=yes env: DB=pgsql POSTGRESQL_VERSION=11.0
addons:
postgresql: "9.5"
- stage: Test
php: 7.4
env: DB=pgsql POSTGRESQL_VERSION=9.6 COVERAGE=yes
addons:
postgresql: "9.6"
- stage: Test
php: 7.4
env: DB=pgsql POSTGRESQL_VERSION=10.0 COVERAGE=yes
sudo: required sudo: required
addons:
postgresql: "10"
before_script: before_script:
- bash ./tests/travis/install-postgres-10.sh - bash ./tests/travis/install-postgres-11.sh
- stage: Test - stage: Test
php: 7.4 php: 7.4
env: DB=pgsql POSTGRESQL_VERSION=11.0 COVERAGE=yes env: DB=sqlite
sudo: required
services:
- docker
before_script:
- bash ./tests/travis/install-postgres-11.sh
- stage: Test - stage: Test
php: 7.4 php: 7.4
env: DB=sqlsrv COVERAGE=yes env: DB=sqlsrv
sudo: required sudo: required
services:
- docker
before_script: before_script:
- bash ./tests/travis/install-sqlsrv-dependencies.sh - bash ./tests/travis/install-sqlsrv-dependencies.sh
- bash ./tests/travis/install-mssql-sqlsrv.sh - bash ./tests/travis/install-mssql-sqlsrv.sh
- bash ./tests/travis/install-mssql.sh - bash ./tests/travis/install-mssql.sh
- stage: Test - stage: Test
php: 7.4 php: 7.4
env: DB=pdo_sqlsrv COVERAGE=yes env: DB=pdo_sqlsrv
sudo: required sudo: required
services:
- docker
before_script: before_script:
- bash ./tests/travis/install-sqlsrv-dependencies.sh - bash ./tests/travis/install-sqlsrv-dependencies.sh
- bash ./tests/travis/install-mssql-pdo_sqlsrv.sh - bash ./tests/travis/install-mssql-pdo_sqlsrv.sh
- bash ./tests/travis/install-mssql.sh - bash ./tests/travis/install-mssql.sh
- stage: Test
php: 7.4
env: DB=ibm_db2 COVERAGE=yes
sudo: required
services:
- docker
before_script:
- bash ./tests/travis/install-db2.sh
- bash ./tests/travis/install-db2-ibm_db2.sh
- stage: Test - stage: Test
php: nightly php: nightly
env: DB=mysql.docker MYSQL_VERSION=8.0 env: DB=mysql.docker IMAGE=mysql:8.0
sudo: required
services:
- docker
before_script:
- bash ./tests/travis/install-mysql-8.0.sh
- stage: Test - stage: Test
php: nightly php: nightly
env: DB=mysqli.docker MYSQL_VERSION=8.0 env: DB=mysqli.docker IMAGE=mysql:8.0
sudo: required
services:
- docker
before_script:
- bash ./tests/travis/install-mysql-8.0.sh
- stage: Test - stage: Test
php: nightly php: nightly
env: DB=mariadb MARIADB_VERSION=10.3 env: DB=mariadb.docker IMAGE=mariadb:10.3
addons:
mariadb: 10.3
- stage: Test - stage: Test
php: nightly php: nightly
env: DB=mariadb.mysqli MARIADB_VERSION=10.3 env: DB=mariadb.mysqli.docker IMAGE=mariadb:10.3
addons:
mariadb: 10.3
- stage: Test - stage: Test
php: nightly php: nightly
env: DB=pgsql POSTGRESQL_VERSION=11.0 env: DB=pgsql POSTGRESQL_VERSION=11.0
sudo: required sudo: required
services:
- docker
before_script: before_script:
- bash ./tests/travis/install-postgres-11.sh - bash ./tests/travis/install-postgres-11.sh
- stage: Test - stage: Test
...@@ -347,8 +215,6 @@ jobs: ...@@ -347,8 +215,6 @@ jobs:
php: nightly php: nightly
env: DB=sqlsrv env: DB=sqlsrv
sudo: required sudo: required
services:
- docker
before_script: before_script:
- bash ./tests/travis/install-sqlsrv-dependencies.sh - bash ./tests/travis/install-sqlsrv-dependencies.sh
- bash ./tests/travis/install-mssql-sqlsrv.sh - bash ./tests/travis/install-mssql-sqlsrv.sh
...@@ -357,8 +223,6 @@ jobs: ...@@ -357,8 +223,6 @@ jobs:
php: nightly php: nightly
env: DB=pdo_sqlsrv env: DB=pdo_sqlsrv
sudo: required sudo: required
services:
- docker
before_script: before_script:
- bash ./tests/travis/install-sqlsrv-dependencies.sh - bash ./tests/travis/install-sqlsrv-dependencies.sh
- bash ./tests/travis/install-mssql-pdo_sqlsrv.sh - bash ./tests/travis/install-mssql-pdo_sqlsrv.sh
...@@ -366,7 +230,7 @@ jobs: ...@@ -366,7 +230,7 @@ jobs:
- stage: Test - stage: Test
if: type = cron if: type = cron
php: 7.2 php: 7.3
env: DB=sqlite DEPENDENCIES=dev env: DB=sqlite DEPENDENCIES=dev
install: install:
- composer config minimum-stability dev - composer config minimum-stability dev
......
...@@ -30,14 +30,6 @@ The statement implementations no longer detect whether `$params` is a zero- or o ...@@ -30,14 +30,6 @@ The statement implementations no longer detect whether `$params` is a zero- or o
The `ServerInfoAwareConnection::requiresQueryForServerVersion()` method has been removed as an implementation detail which is the same for almost all supported drivers. The `ServerInfoAwareConnection::requiresQueryForServerVersion()` method has been removed as an implementation detail which is the same for almost all supported drivers.
## BC BREAK: PingableConnection and ServerInfoAwareConnection interfaces now extends Connection
All implementations of the `PingableConnection` and `ServerInfoAwareConnection` interfaces have to implement the methods defined in the `Connection` interface as well.
## BC BREAK: VersionAwarePlatformDriver interface now extends Driver
All implementations of the `VersionAwarePlatformDriver` interface have to implement the methods defined in the `Driver` interface as well.
## BC BREAK: Removed support for PostgreSQL 9.3 and older ## BC BREAK: Removed support for PostgreSQL 9.3 and older
DBAL now requires PostgeSQL 9.4 or newer, support for unmaintained versions has been dropped. DBAL now requires PostgeSQL 9.4 or newer, support for unmaintained versions has been dropped.
...@@ -355,6 +347,14 @@ The Drizzle project is abandoned and is therefore not supported by Doctrine DBAL ...@@ -355,6 +347,14 @@ The Drizzle project is abandoned and is therefore not supported by Doctrine DBAL
# Upgrade to 3.0 # Upgrade to 3.0
## BC BREAK: PingableConnection and ServerInfoAwareConnection interfaces now extend Connection
All implementations of the `PingableConnection` and `ServerInfoAwareConnection` interfaces have to implement the methods defined in the `Connection` interface as well.
## BC BREAK: VersionAwarePlatformDriver interface now extends Driver
All implementations of the `VersionAwarePlatformDriver` interface have to implement the methods defined in the `Driver` interface as well.
## BC BREAK: Removed Doctrine\DBAL\Version ## BC BREAK: Removed Doctrine\DBAL\Version
The `Doctrine\DBAL\Version` class is no longer available: please refrain from checking the DBAL version at runtime. The `Doctrine\DBAL\Version` class is no longer available: please refrain from checking the DBAL version at runtime.
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
{"name": "Jonathan Wage", "email": "jonwage@gmail.com"} {"name": "Jonathan Wage", "email": "jonwage@gmail.com"}
], ],
"require": { "require": {
"php": "^7.2", "php": "^7.3",
"doctrine/cache": "^1.0", "doctrine/cache": "^1.0",
"doctrine/event-manager": "^1.0", "doctrine/event-manager": "^1.0",
"ocramius/package-versions": "^1.4" "ocramius/package-versions": "^1.4"
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
"jetbrains/phpstorm-stubs": "^2019.1", "jetbrains/phpstorm-stubs": "^2019.1",
"phpstan/phpstan": "^0.11.6", "phpstan/phpstan": "^0.11.6",
"phpstan/phpstan-phpunit": "^0.11", "phpstan/phpstan-phpunit": "^0.11",
"phpunit/phpunit": "^8.4.1", "phpunit/phpunit": "^9.0",
"symfony/console": "^2.0.5|^3.0|^4.0|^5.0" "symfony/console": "^2.0.5|^3.0|^4.0|^5.0"
}, },
"suggest": { "suggest": {
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
"bin": ["bin/doctrine-dbal"], "bin": ["bin/doctrine-dbal"],
"config": { "config": {
"platform": { "platform": {
"php": "7.2.0" "php": "7.3.0"
}, },
"sort-packages": true "sort-packages": true
}, },
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "1d91a8d87cf22c7dbee3c58f8777ecf5", "content-hash": "ea6ec5389b21f5bda19d375bad21d81f",
"packages": [ "packages": [
{ {
"name": "doctrine/cache", "name": "doctrine/cache",
...@@ -379,16 +379,16 @@ ...@@ -379,16 +379,16 @@
}, },
{ {
"name": "doctrine/instantiator", "name": "doctrine/instantiator",
"version": "1.2.0", "version": "1.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/instantiator.git", "url": "https://github.com/doctrine/instantiator.git",
"reference": "a2c590166b2133a4633738648b6b064edae0814a" "reference": "ae466f726242e637cebdd526a7d991b9433bacf1"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a", "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1",
"reference": "a2c590166b2133a4633738648b6b064edae0814a", "reference": "ae466f726242e637cebdd526a7d991b9433bacf1",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -431,7 +431,7 @@ ...@@ -431,7 +431,7 @@
"constructor", "constructor",
"instantiate" "instantiate"
], ],
"time": "2019-03-17T17:37:11+00:00" "time": "2019-10-21T16:45:58+00:00"
}, },
{ {
"name": "jean85/pretty-package-versions", "name": "jean85/pretty-package-versions",
...@@ -525,16 +525,16 @@ ...@@ -525,16 +525,16 @@
}, },
{ {
"name": "myclabs/deep-copy", "name": "myclabs/deep-copy",
"version": "1.9.3", "version": "1.9.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/myclabs/DeepCopy.git", "url": "https://github.com/myclabs/DeepCopy.git",
"reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea" "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/007c053ae6f31bba39dfa19a7726f56e9763bbea", "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef",
"reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea", "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -569,7 +569,7 @@ ...@@ -569,7 +569,7 @@
"object", "object",
"object graph" "object graph"
], ],
"time": "2019-08-09T12:45:53+00:00" "time": "2020-01-17T21:11:47+00:00"
}, },
{ {
"name": "nette/bootstrap", "name": "nette/bootstrap",
...@@ -1301,40 +1301,38 @@ ...@@ -1301,40 +1301,38 @@
}, },
{ {
"name": "phpdocumentor/reflection-docblock", "name": "phpdocumentor/reflection-docblock",
"version": "4.3.2", "version": "5.1.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
"reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e" "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/b83ff7cfcfee7827e1e78b637a5904fe6a96698e", "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e",
"reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e", "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.0", "ext-filter": "^7.1",
"phpdocumentor/reflection-common": "^1.0.0 || ^2.0.0", "php": "^7.2",
"phpdocumentor/type-resolver": "~0.4 || ^1.0.0", "phpdocumentor/reflection-common": "^2.0",
"webmozart/assert": "^1.0" "phpdocumentor/type-resolver": "^1.0",
"webmozart/assert": "^1"
}, },
"require-dev": { "require-dev": {
"doctrine/instantiator": "^1.0.5", "doctrine/instantiator": "^1",
"mockery/mockery": "^1.0", "mockery/mockery": "^1"
"phpunit/phpunit": "^6.4"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "4.x-dev" "dev-master": "5.x-dev"
} }
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"phpDocumentor\\Reflection\\": [ "phpDocumentor\\Reflection\\": "src"
"src/"
]
} }
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
...@@ -1345,33 +1343,36 @@ ...@@ -1345,33 +1343,36 @@
{ {
"name": "Mike van Riel", "name": "Mike van Riel",
"email": "me@mikevanriel.com" "email": "me@mikevanriel.com"
},
{
"name": "Jaap van Otterdijk",
"email": "account@ijaap.nl"
} }
], ],
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
"time": "2019-09-12T14:27:41+00:00" "time": "2020-02-22T12:28:44+00:00"
}, },
{ {
"name": "phpdocumentor/type-resolver", "name": "phpdocumentor/type-resolver",
"version": "1.0.1", "version": "1.1.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpDocumentor/TypeResolver.git", "url": "https://github.com/phpDocumentor/TypeResolver.git",
"reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9" "reference": "7462d5f123dfc080dfdf26897032a6513644fc95"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/7462d5f123dfc080dfdf26897032a6513644fc95",
"reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", "reference": "7462d5f123dfc080dfdf26897032a6513644fc95",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.1", "php": "^7.2",
"phpdocumentor/reflection-common": "^2.0" "phpdocumentor/reflection-common": "^2.0"
}, },
"require-dev": { "require-dev": {
"ext-tokenizer": "^7.1", "ext-tokenizer": "^7.2",
"mockery/mockery": "~1", "mockery/mockery": "~1"
"phpunit/phpunit": "^7.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
...@@ -1395,37 +1396,37 @@ ...@@ -1395,37 +1396,37 @@
} }
], ],
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
"time": "2019-08-22T18:11:29+00:00" "time": "2020-02-18T18:59:58+00:00"
}, },
{ {
"name": "phpspec/prophecy", "name": "phpspec/prophecy",
"version": "1.9.0", "version": "v1.10.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpspec/prophecy.git", "url": "https://github.com/phpspec/prophecy.git",
"reference": "f6811d96d97bdf400077a0cc100ae56aa32b9203" "reference": "451c3cd1418cf640de218914901e51b064abb093"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/f6811d96d97bdf400077a0cc100ae56aa32b9203", "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093",
"reference": "f6811d96d97bdf400077a0cc100ae56aa32b9203", "reference": "451c3cd1418cf640de218914901e51b064abb093",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"doctrine/instantiator": "^1.0.2", "doctrine/instantiator": "^1.0.2",
"php": "^5.3|^7.0", "php": "^5.3|^7.0",
"phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0",
"sebastian/comparator": "^1.1|^2.0|^3.0", "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0",
"sebastian/recursion-context": "^1.0|^2.0|^3.0" "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0"
}, },
"require-dev": { "require-dev": {
"phpspec/phpspec": "^2.5|^3.2", "phpspec/phpspec": "^2.5 || ^3.2",
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.8.x-dev" "dev-master": "1.10.x-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -1458,7 +1459,7 @@ ...@@ -1458,7 +1459,7 @@
"spy", "spy",
"stub" "stub"
], ],
"time": "2019-10-03T11:07:50+00:00" "time": "2020-03-05T15:02:03+00:00"
}, },
{ {
"name": "phpstan/phpdoc-parser", "name": "phpstan/phpdoc-parser",
...@@ -1641,40 +1642,41 @@ ...@@ -1641,40 +1642,41 @@
}, },
{ {
"name": "phpunit/php-code-coverage", "name": "phpunit/php-code-coverage",
"version": "7.0.8", "version": "8.0.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
"reference": "aa0d179a13284c7420fc281fc32750e6cc7c9e2f" "reference": "31e94ccc084025d6abee0585df533eb3a792b96a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/aa0d179a13284c7420fc281fc32750e6cc7c9e2f", "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/31e94ccc084025d6abee0585df533eb3a792b96a",
"reference": "aa0d179a13284c7420fc281fc32750e6cc7c9e2f", "reference": "31e94ccc084025d6abee0585df533eb3a792b96a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-dom": "*", "ext-dom": "*",
"ext-xmlwriter": "*", "ext-xmlwriter": "*",
"php": "^7.2", "php": "^7.3",
"phpunit/php-file-iterator": "^2.0.2", "phpunit/php-file-iterator": "^3.0",
"phpunit/php-text-template": "^1.2.1", "phpunit/php-text-template": "^2.0",
"phpunit/php-token-stream": "^3.1.1", "phpunit/php-token-stream": "^4.0",
"sebastian/code-unit-reverse-lookup": "^1.0.1", "sebastian/code-unit-reverse-lookup": "^2.0",
"sebastian/environment": "^4.2.2", "sebastian/environment": "^5.0",
"sebastian/version": "^2.0.1", "sebastian/version": "^3.0",
"theseer/tokenizer": "^1.1.3" "theseer/tokenizer": "^1.1.3"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^8.2.2" "phpunit/phpunit": "^9.0"
}, },
"suggest": { "suggest": {
"ext-xdebug": "^2.7.2" "ext-pcov": "*",
"ext-xdebug": "*"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "7.0-dev" "dev-master": "8.0-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -1700,32 +1702,32 @@ ...@@ -1700,32 +1702,32 @@
"testing", "testing",
"xunit" "xunit"
], ],
"time": "2019-09-17T06:24:36+00:00" "time": "2020-02-19T13:41:19+00:00"
}, },
{ {
"name": "phpunit/php-file-iterator", "name": "phpunit/php-file-iterator",
"version": "2.0.2", "version": "3.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
"reference": "050bedf145a257b1ff02746c31894800e5122946" "reference": "354d4a5faa7449a377a18b94a2026ca3415e3d7a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/354d4a5faa7449a377a18b94a2026ca3415e3d7a",
"reference": "050bedf145a257b1ff02746c31894800e5122946", "reference": "354d4a5faa7449a377a18b94a2026ca3415e3d7a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.1" "php": "^7.3"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^7.1" "phpunit/phpunit": "^9.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "2.0.x-dev" "dev-master": "3.0-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -1750,26 +1752,84 @@ ...@@ -1750,26 +1752,84 @@
"filesystem", "filesystem",
"iterator" "iterator"
], ],
"time": "2018-09-13T20:33:42+00:00" "time": "2020-02-07T06:05:22+00:00"
},
{
"name": "phpunit/php-invoker",
"version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-invoker.git",
"reference": "7579d5a1ba7f3ac11c80004d205877911315ae7a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/7579d5a1ba7f3ac11c80004d205877911315ae7a",
"reference": "7579d5a1ba7f3ac11c80004d205877911315ae7a",
"shasum": ""
},
"require": {
"php": "^7.3"
},
"require-dev": {
"ext-pcntl": "*",
"phpunit/phpunit": "^9.0"
},
"suggest": {
"ext-pcntl": "*"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.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": "Invoke callables with a timeout",
"homepage": "https://github.com/sebastianbergmann/php-invoker/",
"keywords": [
"process"
],
"time": "2020-02-07T06:06:11+00:00"
}, },
{ {
"name": "phpunit/php-text-template", "name": "phpunit/php-text-template",
"version": "1.2.1", "version": "2.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/php-text-template.git", "url": "https://github.com/sebastianbergmann/php-text-template.git",
"reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" "reference": "526dc996cc0ebdfa428cd2dfccd79b7b53fee346"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/526dc996cc0ebdfa428cd2dfccd79b7b53fee346",
"reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", "reference": "526dc996cc0ebdfa428cd2dfccd79b7b53fee346",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.3" "php": "^7.3"
}, },
"type": "library", "type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0-dev"
}
},
"autoload": { "autoload": {
"classmap": [ "classmap": [
"src/" "src/"
...@@ -1791,32 +1851,32 @@ ...@@ -1791,32 +1851,32 @@
"keywords": [ "keywords": [
"template" "template"
], ],
"time": "2015-06-21T13:50:34+00:00" "time": "2020-02-01T07:43:44+00:00"
}, },
{ {
"name": "phpunit/php-timer", "name": "phpunit/php-timer",
"version": "2.1.2", "version": "3.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/php-timer.git", "url": "https://github.com/sebastianbergmann/php-timer.git",
"reference": "1038454804406b0b5f5f520358e78c1c2f71501e" "reference": "4118013a4d0f97356eae8e7fb2f6c6472575d1df"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/4118013a4d0f97356eae8e7fb2f6c6472575d1df",
"reference": "1038454804406b0b5f5f520358e78c1c2f71501e", "reference": "4118013a4d0f97356eae8e7fb2f6c6472575d1df",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.1" "php": "^7.3"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^7.0" "phpunit/phpunit": "^9.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "2.1-dev" "dev-master": "3.0-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -1840,33 +1900,33 @@ ...@@ -1840,33 +1900,33 @@
"keywords": [ "keywords": [
"timer" "timer"
], ],
"time": "2019-06-07T04:22:29+00:00" "time": "2020-02-07T06:08:11+00:00"
}, },
{ {
"name": "phpunit/php-token-stream", "name": "phpunit/php-token-stream",
"version": "3.1.1", "version": "4.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/php-token-stream.git", "url": "https://github.com/sebastianbergmann/php-token-stream.git",
"reference": "995192df77f63a59e47f025390d2d1fdf8f425ff" "reference": "b2560a0c33f7710e4d7f8780964193e8e8f8effe"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff", "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/b2560a0c33f7710e4d7f8780964193e8e8f8effe",
"reference": "995192df77f63a59e47f025390d2d1fdf8f425ff", "reference": "b2560a0c33f7710e4d7f8780964193e8e8f8effe",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-tokenizer": "*", "ext-tokenizer": "*",
"php": "^7.1" "php": "^7.3"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^7.0" "phpunit/phpunit": "^9.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.1-dev" "dev-master": "4.0-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -1889,20 +1949,20 @@ ...@@ -1889,20 +1949,20 @@
"keywords": [ "keywords": [
"tokenizer" "tokenizer"
], ],
"time": "2019-09-17T06:23:10+00:00" "time": "2020-02-07T06:19:00+00:00"
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"version": "8.4.1", "version": "9.0.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git", "url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "366a4a0f2b971fd43b7c351d621e8dd7d7131869" "reference": "68d7e5b17a6b9461e17c00446caa409863154f76"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/366a4a0f2b971fd43b7c351d621e8dd7d7131869", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/68d7e5b17a6b9461e17c00446caa409863154f76",
"reference": "366a4a0f2b971fd43b7c351d621e8dd7d7131869", "reference": "68d7e5b17a6b9461e17c00446caa409863154f76",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -1916,29 +1976,29 @@ ...@@ -1916,29 +1976,29 @@
"myclabs/deep-copy": "^1.9.1", "myclabs/deep-copy": "^1.9.1",
"phar-io/manifest": "^1.0.3", "phar-io/manifest": "^1.0.3",
"phar-io/version": "^2.0.1", "phar-io/version": "^2.0.1",
"php": "^7.2", "php": "^7.3",
"phpspec/prophecy": "^1.8.1", "phpspec/prophecy": "^1.8.1",
"phpunit/php-code-coverage": "^7.0.7", "phpunit/php-code-coverage": "^8.0",
"phpunit/php-file-iterator": "^2.0.2", "phpunit/php-file-iterator": "^3.0",
"phpunit/php-text-template": "^1.2.1", "phpunit/php-invoker": "^3.0",
"phpunit/php-timer": "^2.1.2", "phpunit/php-text-template": "^2.0",
"sebastian/comparator": "^3.0.2", "phpunit/php-timer": "^3.0",
"sebastian/diff": "^3.0.2", "sebastian/comparator": "^4.0",
"sebastian/environment": "^4.2.2", "sebastian/diff": "^4.0",
"sebastian/exporter": "^3.1.1", "sebastian/environment": "^5.0",
"sebastian/global-state": "^3.0.0", "sebastian/exporter": "^4.0",
"sebastian/object-enumerator": "^3.0.3", "sebastian/global-state": "^4.0",
"sebastian/resource-operations": "^2.0.1", "sebastian/object-enumerator": "^4.0",
"sebastian/type": "^1.1.3", "sebastian/resource-operations": "^3.0",
"sebastian/version": "^2.0.1" "sebastian/type": "^2.0",
"sebastian/version": "^3.0"
}, },
"require-dev": { "require-dev": {
"ext-pdo": "*" "ext-pdo": "*"
}, },
"suggest": { "suggest": {
"ext-soap": "*", "ext-soap": "*",
"ext-xdebug": "*", "ext-xdebug": "*"
"phpunit/php-invoker": "^2.0.0"
}, },
"bin": [ "bin": [
"phpunit" "phpunit"
...@@ -1946,12 +2006,15 @@ ...@@ -1946,12 +2006,15 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "8.4-dev" "dev-master": "9.0-dev"
} }
}, },
"autoload": { "autoload": {
"classmap": [ "classmap": [
"src/" "src/"
],
"files": [
"src/Framework/Assert/Functions.php"
] ]
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
...@@ -1972,7 +2035,7 @@ ...@@ -1972,7 +2035,7 @@
"testing", "testing",
"xunit" "xunit"
], ],
"time": "2019-10-07T12:57:41+00:00" "time": "2020-02-13T07:30:12+00:00"
}, },
{ {
"name": "psr/log", "name": "psr/log",
...@@ -2023,28 +2086,28 @@ ...@@ -2023,28 +2086,28 @@
}, },
{ {
"name": "sebastian/code-unit-reverse-lookup", "name": "sebastian/code-unit-reverse-lookup",
"version": "1.0.1", "version": "2.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
"reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" "reference": "5b5dbe0044085ac41df47e79d34911a15b96d82e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5b5dbe0044085ac41df47e79d34911a15b96d82e",
"reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", "reference": "5b5dbe0044085ac41df47e79d34911a15b96d82e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^5.6 || ^7.0" "php": "^7.3"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^5.7 || ^6.0" "phpunit/phpunit": "^9.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.0.x-dev" "dev-master": "2.0-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -2064,34 +2127,34 @@ ...@@ -2064,34 +2127,34 @@
], ],
"description": "Looks up which function or method a line of code belongs to", "description": "Looks up which function or method a line of code belongs to",
"homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
"time": "2017-03-04T06:30:41+00:00" "time": "2020-02-07T06:20:13+00:00"
}, },
{ {
"name": "sebastian/comparator", "name": "sebastian/comparator",
"version": "3.0.2", "version": "4.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git", "url": "https://github.com/sebastianbergmann/comparator.git",
"reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" "reference": "85b3435da967696ed618ff745f32be3ff4a2b8e8"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/85b3435da967696ed618ff745f32be3ff4a2b8e8",
"reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", "reference": "85b3435da967696ed618ff745f32be3ff4a2b8e8",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.1", "php": "^7.3",
"sebastian/diff": "^3.0", "sebastian/diff": "^4.0",
"sebastian/exporter": "^3.1" "sebastian/exporter": "^4.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^7.1" "phpunit/phpunit": "^9.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.0-dev" "dev-master": "4.0-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -2104,6 +2167,10 @@ ...@@ -2104,6 +2167,10 @@
"BSD-3-Clause" "BSD-3-Clause"
], ],
"authors": [ "authors": [
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de"
},
{ {
"name": "Jeff Welch", "name": "Jeff Welch",
"email": "whatthejeff@gmail.com" "email": "whatthejeff@gmail.com"
...@@ -2115,10 +2182,6 @@ ...@@ -2115,10 +2182,6 @@
{ {
"name": "Bernhard Schussek", "name": "Bernhard Schussek",
"email": "bschussek@2bepublished.at" "email": "bschussek@2bepublished.at"
},
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de"
} }
], ],
"description": "Provides the functionality to compare PHP values for equality", "description": "Provides the functionality to compare PHP values for equality",
...@@ -2128,33 +2191,33 @@ ...@@ -2128,33 +2191,33 @@
"compare", "compare",
"equality" "equality"
], ],
"time": "2018-07-12T15:12:46+00:00" "time": "2020-02-07T06:08:51+00:00"
}, },
{ {
"name": "sebastian/diff", "name": "sebastian/diff",
"version": "3.0.2", "version": "4.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/diff.git", "url": "https://github.com/sebastianbergmann/diff.git",
"reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" "reference": "c0c26c9188b538bfa985ae10c9f05d278f12060d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c0c26c9188b538bfa985ae10c9f05d278f12060d",
"reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", "reference": "c0c26c9188b538bfa985ae10c9f05d278f12060d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.1" "php": "^7.3"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^7.5 || ^8.0", "phpunit/phpunit": "^9.0",
"symfony/process": "^2 || ^3.3 || ^4" "symfony/process": "^4 || ^5"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.0-dev" "dev-master": "4.0-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -2167,13 +2230,13 @@ ...@@ -2167,13 +2230,13 @@
"BSD-3-Clause" "BSD-3-Clause"
], ],
"authors": [ "authors": [
{
"name": "Kore Nordmann",
"email": "mail@kore-nordmann.de"
},
{ {
"name": "Sebastian Bergmann", "name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de" "email": "sebastian@phpunit.de"
},
{
"name": "Kore Nordmann",
"email": "mail@kore-nordmann.de"
} }
], ],
"description": "Diff implementation", "description": "Diff implementation",
...@@ -2184,27 +2247,27 @@ ...@@ -2184,27 +2247,27 @@
"unidiff", "unidiff",
"unified diff" "unified diff"
], ],
"time": "2019-02-04T06:01:07+00:00" "time": "2020-02-07T06:09:38+00:00"
}, },
{ {
"name": "sebastian/environment", "name": "sebastian/environment",
"version": "4.2.2", "version": "5.0.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/environment.git", "url": "https://github.com/sebastianbergmann/environment.git",
"reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404" "reference": "9bffdefa7810031a165ddd6275da6a2c1f6f2dfb"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/f2a2c8e1c97c11ace607a7a667d73d47c19fe404", "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/9bffdefa7810031a165ddd6275da6a2c1f6f2dfb",
"reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404", "reference": "9bffdefa7810031a165ddd6275da6a2c1f6f2dfb",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.1" "php": "^7.3"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^7.5" "phpunit/phpunit": "^9.0"
}, },
"suggest": { "suggest": {
"ext-posix": "*" "ext-posix": "*"
...@@ -2212,7 +2275,7 @@ ...@@ -2212,7 +2275,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "4.2-dev" "dev-master": "5.0-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -2237,34 +2300,34 @@ ...@@ -2237,34 +2300,34 @@
"environment", "environment",
"hhvm" "hhvm"
], ],
"time": "2019-05-05T09:05:15+00:00" "time": "2020-02-19T13:40:20+00:00"
}, },
{ {
"name": "sebastian/exporter", "name": "sebastian/exporter",
"version": "3.1.2", "version": "4.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git", "url": "https://github.com/sebastianbergmann/exporter.git",
"reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" "reference": "80c26562e964016538f832f305b2286e1ec29566"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/80c26562e964016538f832f305b2286e1ec29566",
"reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", "reference": "80c26562e964016538f832f305b2286e1ec29566",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.0", "php": "^7.3",
"sebastian/recursion-context": "^3.0" "sebastian/recursion-context": "^4.0"
}, },
"require-dev": { "require-dev": {
"ext-mbstring": "*", "ext-mbstring": "*",
"phpunit/phpunit": "^6.0" "phpunit/phpunit": "^9.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.1.x-dev" "dev-master": "4.0-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -2304,30 +2367,30 @@ ...@@ -2304,30 +2367,30 @@
"export", "export",
"exporter" "exporter"
], ],
"time": "2019-09-14T09:02:43+00:00" "time": "2020-02-07T06:10:52+00:00"
}, },
{ {
"name": "sebastian/global-state", "name": "sebastian/global-state",
"version": "3.0.0", "version": "4.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git", "url": "https://github.com/sebastianbergmann/global-state.git",
"reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4" "reference": "bdb1e7c79e592b8c82cb1699be3c8743119b8a72"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bdb1e7c79e592b8c82cb1699be3c8743119b8a72",
"reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", "reference": "bdb1e7c79e592b8c82cb1699be3c8743119b8a72",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.2", "php": "^7.3",
"sebastian/object-reflector": "^1.1.1", "sebastian/object-reflector": "^2.0",
"sebastian/recursion-context": "^3.0" "sebastian/recursion-context": "^4.0"
}, },
"require-dev": { "require-dev": {
"ext-dom": "*", "ext-dom": "*",
"phpunit/phpunit": "^8.0" "phpunit/phpunit": "^9.0"
}, },
"suggest": { "suggest": {
"ext-uopz": "*" "ext-uopz": "*"
...@@ -2335,7 +2398,7 @@ ...@@ -2335,7 +2398,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.0-dev" "dev-master": "4.0-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -2358,34 +2421,34 @@ ...@@ -2358,34 +2421,34 @@
"keywords": [ "keywords": [
"global state" "global state"
], ],
"time": "2019-02-01T05:30:01+00:00" "time": "2020-02-07T06:11:37+00:00"
}, },
{ {
"name": "sebastian/object-enumerator", "name": "sebastian/object-enumerator",
"version": "3.0.3", "version": "4.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/object-enumerator.git", "url": "https://github.com/sebastianbergmann/object-enumerator.git",
"reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" "reference": "e67516b175550abad905dc952f43285957ef4363"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67516b175550abad905dc952f43285957ef4363",
"reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", "reference": "e67516b175550abad905dc952f43285957ef4363",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.0", "php": "^7.3",
"sebastian/object-reflector": "^1.1.1", "sebastian/object-reflector": "^2.0",
"sebastian/recursion-context": "^3.0" "sebastian/recursion-context": "^4.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^6.0" "phpunit/phpunit": "^9.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.0.x-dev" "dev-master": "4.0-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -2405,32 +2468,32 @@ ...@@ -2405,32 +2468,32 @@
], ],
"description": "Traverses array structures and object graphs to enumerate all referenced objects", "description": "Traverses array structures and object graphs to enumerate all referenced objects",
"homepage": "https://github.com/sebastianbergmann/object-enumerator/", "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
"time": "2017-08-03T12:35:26+00:00" "time": "2020-02-07T06:12:23+00:00"
}, },
{ {
"name": "sebastian/object-reflector", "name": "sebastian/object-reflector",
"version": "1.1.1", "version": "2.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/object-reflector.git", "url": "https://github.com/sebastianbergmann/object-reflector.git",
"reference": "773f97c67f28de00d397be301821b06708fca0be" "reference": "f4fd0835cabb0d4a6546d9fe291e5740037aa1e7"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/f4fd0835cabb0d4a6546d9fe291e5740037aa1e7",
"reference": "773f97c67f28de00d397be301821b06708fca0be", "reference": "f4fd0835cabb0d4a6546d9fe291e5740037aa1e7",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.0" "php": "^7.3"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^6.0" "phpunit/phpunit": "^9.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.1-dev" "dev-master": "2.0-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -2450,32 +2513,32 @@ ...@@ -2450,32 +2513,32 @@
], ],
"description": "Allows reflection of object attributes, including inherited and non-public ones", "description": "Allows reflection of object attributes, including inherited and non-public ones",
"homepage": "https://github.com/sebastianbergmann/object-reflector/", "homepage": "https://github.com/sebastianbergmann/object-reflector/",
"time": "2017-03-29T09:07:27+00:00" "time": "2020-02-07T06:19:40+00:00"
}, },
{ {
"name": "sebastian/recursion-context", "name": "sebastian/recursion-context",
"version": "3.0.0", "version": "4.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git", "url": "https://github.com/sebastianbergmann/recursion-context.git",
"reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" "reference": "cdd86616411fc3062368b720b0425de10bd3d579"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cdd86616411fc3062368b720b0425de10bd3d579",
"reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", "reference": "cdd86616411fc3062368b720b0425de10bd3d579",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.0" "php": "^7.3"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^6.0" "phpunit/phpunit": "^9.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.0.x-dev" "dev-master": "4.0-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -2488,14 +2551,14 @@ ...@@ -2488,14 +2551,14 @@
"BSD-3-Clause" "BSD-3-Clause"
], ],
"authors": [ "authors": [
{
"name": "Jeff Welch",
"email": "whatthejeff@gmail.com"
},
{ {
"name": "Sebastian Bergmann", "name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de" "email": "sebastian@phpunit.de"
}, },
{
"name": "Jeff Welch",
"email": "whatthejeff@gmail.com"
},
{ {
"name": "Adam Harvey", "name": "Adam Harvey",
"email": "aharvey@php.net" "email": "aharvey@php.net"
...@@ -2503,29 +2566,32 @@ ...@@ -2503,29 +2566,32 @@
], ],
"description": "Provides functionality to recursively process PHP variables", "description": "Provides functionality to recursively process PHP variables",
"homepage": "http://www.github.com/sebastianbergmann/recursion-context", "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
"time": "2017-03-03T06:23:57+00:00" "time": "2020-02-07T06:18:20+00:00"
}, },
{ {
"name": "sebastian/resource-operations", "name": "sebastian/resource-operations",
"version": "2.0.1", "version": "3.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/resource-operations.git", "url": "https://github.com/sebastianbergmann/resource-operations.git",
"reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" "reference": "8c98bf0dfa1f9256d0468b9803a1e1df31b6fa98"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/8c98bf0dfa1f9256d0468b9803a1e1df31b6fa98",
"reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", "reference": "8c98bf0dfa1f9256d0468b9803a1e1df31b6fa98",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.1" "php": "^7.3"
},
"require-dev": {
"phpunit/phpunit": "^9.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "2.0-dev" "dev-master": "3.0-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -2545,32 +2611,32 @@ ...@@ -2545,32 +2611,32 @@
], ],
"description": "Provides a list of PHP built-in functions that operate on resources", "description": "Provides a list of PHP built-in functions that operate on resources",
"homepage": "https://www.github.com/sebastianbergmann/resource-operations", "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
"time": "2018-10-04T04:07:39+00:00" "time": "2020-02-07T06:13:02+00:00"
}, },
{ {
"name": "sebastian/type", "name": "sebastian/type",
"version": "1.1.3", "version": "2.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/type.git", "url": "https://github.com/sebastianbergmann/type.git",
"reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3" "reference": "9e8f42f740afdea51f5f4e8cec2035580e797ee1"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/type/zipball/3aaaa15fa71d27650d62a948be022fe3b48541a3", "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/9e8f42f740afdea51f5f4e8cec2035580e797ee1",
"reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3", "reference": "9e8f42f740afdea51f5f4e8cec2035580e797ee1",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.2" "php": "^7.3"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^8.2" "phpunit/phpunit": "^9.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.1-dev" "dev-master": "2.0-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -2585,35 +2651,35 @@ ...@@ -2585,35 +2651,35 @@
"authors": [ "authors": [
{ {
"name": "Sebastian Bergmann", "name": "Sebastian Bergmann",
"role": "lead", "email": "sebastian@phpunit.de",
"email": "sebastian@phpunit.de" "role": "lead"
} }
], ],
"description": "Collection of value objects that represent the types of the PHP type system", "description": "Collection of value objects that represent the types of the PHP type system",
"homepage": "https://github.com/sebastianbergmann/type", "homepage": "https://github.com/sebastianbergmann/type",
"time": "2019-07-02T08:10:15+00:00" "time": "2020-02-07T06:13:43+00:00"
}, },
{ {
"name": "sebastian/version", "name": "sebastian/version",
"version": "2.0.1", "version": "3.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/version.git", "url": "https://github.com/sebastianbergmann/version.git",
"reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" "reference": "0411bde656dce64202b39c2f4473993a9081d39e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/0411bde656dce64202b39c2f4473993a9081d39e",
"reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", "reference": "0411bde656dce64202b39c2f4473993a9081d39e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.6" "php": "^7.3"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "2.0.x-dev" "dev-master": "3.0-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -2634,7 +2700,7 @@ ...@@ -2634,7 +2700,7 @@
], ],
"description": "Library that helps with managing the version number of Git-hosted PHP projects", "description": "Library that helps with managing the version number of Git-hosted PHP projects",
"homepage": "https://github.com/sebastianbergmann/version", "homepage": "https://github.com/sebastianbergmann/version",
"time": "2016-10-03T07:35:21+00:00" "time": "2020-01-21T06:36:37+00:00"
}, },
{ {
"name": "slevomat/coding-standard", "name": "slevomat/coding-standard",
...@@ -2975,16 +3041,16 @@ ...@@ -2975,16 +3041,16 @@
}, },
{ {
"name": "symfony/polyfill-ctype", "name": "symfony/polyfill-ctype",
"version": "v1.12.0", "version": "v1.14.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git", "url": "https://github.com/symfony/polyfill-ctype.git",
"reference": "550ebaac289296ce228a706d0867afc34687e3f4" "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/550ebaac289296ce228a706d0867afc34687e3f4", "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/fbdeaec0df06cf3d51c93de80c7eb76e271f5a38",
"reference": "550ebaac289296ce228a706d0867afc34687e3f4", "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -2996,7 +3062,7 @@ ...@@ -2996,7 +3062,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-master": "1.14-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -3029,7 +3095,7 @@ ...@@ -3029,7 +3095,7 @@
"polyfill", "polyfill",
"portable" "portable"
], ],
"time": "2019-08-06T08:03:45+00:00" "time": "2020-01-13T11:15:53+00:00"
}, },
{ {
"name": "symfony/polyfill-mbstring", "name": "symfony/polyfill-mbstring",
...@@ -3132,31 +3198,29 @@ ...@@ -3132,31 +3198,29 @@
}, },
{ {
"name": "webmozart/assert", "name": "webmozart/assert",
"version": "1.5.0", "version": "1.7.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/webmozart/assert.git", "url": "https://github.com/webmozart/assert.git",
"reference": "88e6d84706d09a236046d686bbea96f07b3a34f4" "reference": "aed98a490f9a8f78468232db345ab9cf606cf598"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/webmozart/assert/zipball/88e6d84706d09a236046d686bbea96f07b3a34f4", "url": "https://api.github.com/repos/webmozart/assert/zipball/aed98a490f9a8f78468232db345ab9cf606cf598",
"reference": "88e6d84706d09a236046d686bbea96f07b3a34f4", "reference": "aed98a490f9a8f78468232db345ab9cf606cf598",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^5.3.3 || ^7.0", "php": "^5.3.3 || ^7.0",
"symfony/polyfill-ctype": "^1.8" "symfony/polyfill-ctype": "^1.8"
}, },
"conflict": {
"vimeo/psalm": "<3.6.0"
},
"require-dev": { "require-dev": {
"phpunit/phpunit": "^4.8.36 || ^7.5.13" "phpunit/phpunit": "^4.8.36 || ^7.5.13"
}, },
"type": "library", "type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.3-dev"
}
},
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Webmozart\\Assert\\": "src/" "Webmozart\\Assert\\": "src/"
...@@ -3178,7 +3242,7 @@ ...@@ -3178,7 +3242,7 @@
"check", "check",
"validate" "validate"
], ],
"time": "2019-08-24T08:43:50+00:00" "time": "2020-02-14T12:15:55+00:00"
} }
], ],
"aliases": [], "aliases": [],
...@@ -3187,10 +3251,10 @@ ...@@ -3187,10 +3251,10 @@
"prefer-stable": false, "prefer-stable": false,
"prefer-lowest": false, "prefer-lowest": false,
"platform": { "platform": {
"php": "^7.2" "php": "^7.3"
}, },
"platform-dev": [], "platform-dev": [],
"platform-overrides": { "platform-overrides": {
"php": "7.2.0" "php": "7.3.0"
} }
} }
...@@ -91,18 +91,7 @@ final class DriverManager ...@@ -91,18 +91,7 @@ final class DriverManager
* *
* $params must contain at least one of the following. * $params must contain at least one of the following.
* *
* Either 'driver' with one of the following values: * Either 'driver' with one of the array keys of {@link $_driverMap},
*
* pdo_mysql
* pdo_sqlite
* pdo_pgsql
* pdo_oci (unstable)
* pdo_sqlsrv
* mysqli
* sqlanywhere
* sqlsrv
* ibm_db2 (unstable)
*
* OR 'driverClass' that contains the full class name (with namespace) of the * OR 'driverClass' that contains the full class name (with namespace) of the
* driver class to instantiate. * driver class to instantiate.
* *
......
...@@ -14,7 +14,7 @@ final class DebugStack implements SQLLogger ...@@ -14,7 +14,7 @@ final class DebugStack implements SQLLogger
/** /**
* Executed SQL queries. * Executed SQL queries.
* *
* @var mixed[][] * @var array<int, array<string, mixed>>
*/ */
public $queries = []; public $queries = [];
......
...@@ -281,7 +281,7 @@ SQL ...@@ -281,7 +281,7 @@ SQL
[$schema, $table] = explode('.', $table); [$schema, $table] = explode('.', $table);
$schema = $this->quoteStringLiteral($schema); $schema = $this->quoteStringLiteral($schema);
} else { } else {
$schema = "ANY(string_to_array((select replace(replace(setting,'\"\$user\"',user),' ','') from pg_catalog.pg_settings where name = 'search_path'),','))"; $schema = 'ANY(current_schemas(false))';
} }
$table = new Identifier($table); $table = new Identifier($table);
......
...@@ -5,7 +5,7 @@ declare(strict_types=1); ...@@ -5,7 +5,7 @@ declare(strict_types=1);
namespace Doctrine\DBAL\Query; namespace Doctrine\DBAL\Query;
use Doctrine\DBAL\Connection; use Doctrine\DBAL\Connection;
use Doctrine\DBAL\Driver\Statement; use Doctrine\DBAL\Driver\ResultStatement;
use Doctrine\DBAL\ParameterType; use Doctrine\DBAL\ParameterType;
use Doctrine\DBAL\Query\Exception\NonUniqueAlias; use Doctrine\DBAL\Query\Exception\NonUniqueAlias;
use Doctrine\DBAL\Query\Exception\UnknownAlias; use Doctrine\DBAL\Query\Exception\UnknownAlias;
...@@ -247,7 +247,7 @@ class QueryBuilder ...@@ -247,7 +247,7 @@ class QueryBuilder
* Uses {@see Connection::executeQuery} for select statements and {@see Connection::executeUpdate} * Uses {@see Connection::executeQuery} for select statements and {@see Connection::executeUpdate}
* for insert, update and delete statements. * for insert, update and delete statements.
* *
* @return Statement|int * @return ResultStatement|int
*/ */
public function execute() public function execute()
{ {
...@@ -1326,9 +1326,12 @@ class QueryBuilder ...@@ -1326,9 +1326,12 @@ class QueryBuilder
throw NonUniqueAlias::new($join->alias, array_keys($knownAliases)); throw NonUniqueAlias::new($join->alias, array_keys($knownAliases));
} }
$sql .= ' ' . $join->type $sql .= ' ' . $join->type . ' JOIN ' . $join->table . ' ' . $join->alias;
. ' JOIN ' . $join->table . ' ' . $join->alias
. ' ON ' . ((string) $join->condition); if ($join->condition !== null) {
$sql .= ' ON ' . $join->condition;
}
$knownAliases[$join->alias] = true; $knownAliases[$join->alias] = true;
} }
......
...@@ -7,7 +7,9 @@ namespace Doctrine\DBAL; ...@@ -7,7 +7,9 @@ namespace Doctrine\DBAL;
use Doctrine\DBAL\Exception\MissingArrayParameter; use Doctrine\DBAL\Exception\MissingArrayParameter;
use Doctrine\DBAL\Exception\MissingArrayParameterType; use Doctrine\DBAL\Exception\MissingArrayParameterType;
use function array_fill; use function array_fill;
use function array_fill_keys;
use function array_key_exists; use function array_key_exists;
use function array_keys;
use function array_merge; use function array_merge;
use function array_slice; use function array_slice;
use function array_values; use function array_values;
...@@ -113,6 +115,10 @@ class SQLParserUtils ...@@ -113,6 +115,10 @@ class SQLParserUtils
$bindIndex = -1; $bindIndex = -1;
if ($isPositional) { if ($isPositional) {
// make sure that $types has the same keys as $params
// to allow omitting parameters with unspecified types
$types += array_fill_keys(array_keys($params), null);
ksort($params); ksort($params);
ksort($types); ksort($types);
} }
......
...@@ -5,6 +5,7 @@ declare(strict_types=1); ...@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace Doctrine\DBAL\Types\Exception; namespace Doctrine\DBAL\Types\Exception;
use Doctrine\DBAL\Types\ConversionException; use Doctrine\DBAL\Types\ConversionException;
use Throwable;
use function get_class; use function get_class;
use function gettype; use function gettype;
use function implode; use function implode;
...@@ -24,29 +25,27 @@ final class InvalidType extends ConversionException implements TypesException ...@@ -24,29 +25,27 @@ final class InvalidType extends ConversionException implements TypesException
* @todo split into two methods * @todo split into two methods
* @todo sanitize value * @todo sanitize value
*/ */
public static function new($value, string $toType, array $possibleTypes) : self public static function new($value, string $toType, array $possibleTypes, ?Throwable $previous = null) : self
{ {
$actualType = is_object($value) ? get_class($value) : gettype($value); $actualType = is_object($value) ? get_class($value) : gettype($value);
if (is_scalar($value)) { if (is_scalar($value)) {
return new self( $message = sprintf(
sprintf( 'Could not convert PHP value "%s" of type "%s" to type "%s". Expected one of the following types: %s.',
'Could not convert PHP value "%s" of type "%s" to type "%s". Expected one of the following types: %s.', $value,
$value, $actualType,
$actualType, $toType,
$toType, implode(', ', $possibleTypes)
implode(', ', $possibleTypes)
)
); );
} } else {
$message = sprintf(
return new self(
sprintf(
'Could not convert PHP value of type "%s" to type "%s". Expected one of the following types: %s.', 'Could not convert PHP value of type "%s" to type "%s". Expected one of the following types: %s.',
$actualType, $actualType,
$toType, $toType,
implode(', ', $possibleTypes) implode(', ', $possibleTypes)
) );
); }
return new self($message, 0, $previous);
} }
} }
...@@ -5,6 +5,7 @@ declare(strict_types=1); ...@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace Doctrine\DBAL\Types\Exception; namespace Doctrine\DBAL\Types\Exception;
use Doctrine\DBAL\Types\ConversionException; use Doctrine\DBAL\Types\ConversionException;
use Throwable;
use function get_class; use function get_class;
use function gettype; use function gettype;
use function is_object; use function is_object;
...@@ -15,7 +16,7 @@ final class SerializationFailed extends ConversionException implements TypesExce ...@@ -15,7 +16,7 @@ final class SerializationFailed extends ConversionException implements TypesExce
/** /**
* @param mixed $value * @param mixed $value
*/ */
public static function new($value, string $format, string $error) : self public static function new($value, string $format, string $error, ?Throwable $previous = null) : self
{ {
$actualType = is_object($value) ? get_class($value) : gettype($value); $actualType = is_object($value) ? get_class($value) : gettype($value);
...@@ -25,7 +26,9 @@ final class SerializationFailed extends ConversionException implements TypesExce ...@@ -25,7 +26,9 @@ final class SerializationFailed extends ConversionException implements TypesExce
$actualType, $actualType,
$format, $format,
$error $error
) ),
0,
$previous
); );
} }
} }
...@@ -5,6 +5,7 @@ declare(strict_types=1); ...@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace Doctrine\DBAL\Types\Exception; namespace Doctrine\DBAL\Types\Exception;
use Doctrine\DBAL\Types\ConversionException; use Doctrine\DBAL\Types\ConversionException;
use Throwable;
use function is_string; use function is_string;
use function sprintf; use function sprintf;
use function strlen; use function strlen;
...@@ -18,24 +19,22 @@ final class ValueNotConvertible extends ConversionException implements TypesExce ...@@ -18,24 +19,22 @@ final class ValueNotConvertible extends ConversionException implements TypesExce
/** /**
* @param mixed $value * @param mixed $value
*/ */
public static function new($value, string $toType, ?string $message = null) : self public static function new($value, string $toType, ?string $message = null, ?Throwable $previous = null) : self
{ {
if ($message !== null) { if ($message !== null) {
return new self( $message = sprintf(
sprintf( 'Could not convert database value to "%s" as an error was triggered by the unserialization: %s',
'Could not convert database value to "%s" as an error was triggered by the unserialization: %s', $toType,
$toType, $message
$message
)
); );
} } else {
$message = sprintf(
return new self(
sprintf(
'Could not convert database value "%s" to Doctrine Type "%s".', 'Could not convert database value "%s" to Doctrine Type "%s".',
is_string($value) && strlen($value) > 32 ? substr($value, 0, 20) . '...' : $value, is_string($value) && strlen($value) > 32 ? substr($value, 0, 20) . '...' : $value,
$toType $toType
) );
); }
return new self($message, 0, $previous);
} }
} }
...@@ -10,9 +10,6 @@ parameters: ...@@ -10,9 +10,6 @@ parameters:
# extension not available # extension not available
- '~^(Used )?(Function|Constant) sasql_\S+ not found\.\z~i' - '~^(Used )?(Function|Constant) sasql_\S+ not found\.\z~i'
# changing these would be a BC break, to be done in next major
- '~^Method Doctrine\\DBAL\\Query\\QueryBuilder::execute\(\) should return Doctrine\\DBAL\\Driver\\Statement\|int but returns Doctrine\\DBAL\\Driver\\ResultStatement\.\z~'
# https://bugs.php.net/bug.php?id=78126 # https://bugs.php.net/bug.php?id=78126
- '~^Call to an undefined method PDO::sqliteCreateFunction\(\)\.\z~' - '~^Call to an undefined method PDO::sqliteCreateFunction\(\)\.\z~'
......
...@@ -7,7 +7,6 @@ namespace Doctrine\Tests\DBAL\Functional\Driver\IBMDB2; ...@@ -7,7 +7,6 @@ namespace Doctrine\Tests\DBAL\Functional\Driver\IBMDB2;
use Doctrine\DBAL\Driver\IBMDB2\DB2Driver; use Doctrine\DBAL\Driver\IBMDB2\DB2Driver;
use Doctrine\DBAL\Statement; use Doctrine\DBAL\Statement;
use Doctrine\Tests\DbalFunctionalTestCase; use Doctrine\Tests\DbalFunctionalTestCase;
use PHPUnit\Framework\Error\Notice;
use function assert; use function assert;
use function extension_loaded; use function extension_loaded;
...@@ -36,7 +35,7 @@ class DB2StatementTest extends DbalFunctionalTestCase ...@@ -36,7 +35,7 @@ class DB2StatementTest extends DbalFunctionalTestCase
// unwrap the statement to prevent the wrapper from handling the PHPUnit-originated exception // unwrap the statement to prevent the wrapper from handling the PHPUnit-originated exception
$wrappedStmt = $stmt->getWrappedStatement(); $wrappedStmt = $stmt->getWrappedStatement();
$this->expectException(Notice::class); $this->expectNotice();
$wrappedStmt->execute([[]]); $wrappedStmt->execute([[]]);
} }
} }
...@@ -142,7 +142,11 @@ class PortabilityTest extends DbalFunctionalTestCase ...@@ -142,7 +142,11 @@ class PortabilityTest extends DbalFunctionalTestCase
*/ */
public function assertFetchResultRow(array $row) : void public function assertFetchResultRow(array $row) : void
{ {
self::assertContains($row['test_int'], [1, 2], 'Primary key test_int should either be 1 or 2.'); self::assertThat($row['test_int'], self::logicalOr(
self::equalTo(1),
self::equalTo(2)
));
self::assertArrayHasKey('test_string', $row, 'Case should be lowered.'); self::assertArrayHasKey('test_string', $row, 'Case should be lowered.');
self::assertEquals(3, strlen($row['test_string']), 'test_string should be rtrimed to length of three for CHAR(32) column.'); self::assertEquals(3, strlen($row['test_string']), 'test_string should be rtrimed to length of three for CHAR(32) column.');
self::assertNull($row['test_null']); self::assertNull($row['test_null']);
......
...@@ -354,6 +354,18 @@ class PostgreSqlSchemaManagerTest extends SchemaManagerFunctionalTestCase ...@@ -354,6 +354,18 @@ class PostgreSqlSchemaManagerTest extends SchemaManagerFunctionalTestCase
self::assertNull($comparator->diffTable($offlineTable, $onlineTable)); self::assertNull($comparator->diffTable($offlineTable, $onlineTable));
} }
public function testListTableDetailsWhenCurrentSchemaNameQuoted() : void
{
$this->connection->exec('CREATE SCHEMA "001_test"');
$this->connection->exec('SET search_path TO "001_test"');
try {
$this->testListQuotedTable();
} finally {
$this->connection->close();
}
}
public function testListTablesExcludesViews() : void public function testListTablesExcludesViews() : void
{ {
$this->createTestTable('list_tables_excludes_views'); $this->createTestTable('list_tables_excludes_views');
......
...@@ -94,11 +94,22 @@ class QueryBuilderTest extends DbalTestCase ...@@ -94,11 +94,22 @@ class QueryBuilderTest extends DbalTestCase
$qb->select('u.*', 'p.*') $qb->select('u.*', 'p.*')
->from('users', 'u') ->from('users', 'u')
->Join('u', 'phones', 'p', $expr->eq('p.user_id', 'u.id')); ->join('u', 'phones', 'p', $expr->eq('p.user_id', 'u.id'));
self::assertEquals('SELECT u.*, p.* FROM users u INNER JOIN phones p ON p.user_id = u.id', (string) $qb); self::assertEquals('SELECT u.*, p.* FROM users u INNER JOIN phones p ON p.user_id = u.id', (string) $qb);
} }
public function testSelectWithJoinNoCondition() : void
{
$qb = new QueryBuilder($this->conn);
$qb->select('u.*', 'p.*')
->from('users', 'u')
->join('u', 'phones', 'p');
self::assertEquals('SELECT u.*, p.* FROM users u INNER JOIN phones p', (string) $qb);
}
public function testSelectWithInnerJoin() : void public function testSelectWithInnerJoin() : void
{ {
$qb = new QueryBuilder($this->conn); $qb = new QueryBuilder($this->conn);
......
...@@ -102,7 +102,7 @@ SQLDATA ...@@ -102,7 +102,7 @@ SQLDATA
['SELECT data.age AS age, data.id AS id, data.name AS name, data.id AS id FROM test_data data WHERE (data.description LIKE :condition_0 ESCAPE "\\\\") AND (data.description LIKE :condition_1 ESCAPE \'\\\\\') ORDER BY id ASC', [121 => 'condition_0', 174 => 'condition_1']], ['SELECT data.age AS age, data.id AS id, data.name AS name, data.id AS id FROM test_data data WHERE (data.description LIKE :condition_0 ESCAPE "\\\\") AND (data.description LIKE :condition_1 ESCAPE \'\\\\\') ORDER BY id ASC', [121 => 'condition_0', 174 => 'condition_1']],
['SELECT data.age AS age, data.id AS id, data.name AS name, data.id AS id FROM test_data data WHERE (data.description LIKE :condition_0 ESCAPE `\\\\`) AND (data.description LIKE :condition_1 ESCAPE `\\\\`) ORDER BY id ASC', [121 => 'condition_0', 174 => 'condition_1']], ['SELECT data.age AS age, data.id AS id, data.name AS name, data.id AS id FROM test_data data WHERE (data.description LIKE :condition_0 ESCAPE `\\\\`) AND (data.description LIKE :condition_1 ESCAPE `\\\\`) ORDER BY id ASC', [121 => 'condition_0', 174 => 'condition_1']],
['SELECT data.age AS age, data.id AS id, data.name AS name, data.id AS id FROM test_data data WHERE (data.description LIKE :condition_0 ESCAPE \'\\\\\') AND (data.description LIKE :condition_1 ESCAPE `\\\\`) ORDER BY id ASC', [121 => 'condition_0', 174 => 'condition_1']], ['SELECT data.age AS age, data.id AS id, data.name AS name, data.id AS id FROM test_data data WHERE (data.description LIKE :condition_0 ESCAPE \'\\\\\') AND (data.description LIKE :condition_1 ESCAPE `\\\\`) ORDER BY id ASC', [121 => 'condition_0', 174 => 'condition_1']],
["SELECT * FROM Foo WHERE (foo.bar LIKE :condition_0 ESCAPE '\') AND (foo.baz = :condition_1) AND (foo.bak LIKE :condition_2 ESCAPE '\')", [38 => 'condition_0', 78 => 'condition_1', 110 => 'condition_2']], // Ticket GH-3640 ["SELECT * FROM Foo WHERE (foo.bar LIKE :condition_0 ESCAPE '\') AND (foo.baz = :condition_1) AND (foo.bak LIKE :condition_2 ESCAPE '\')", [38 => 'condition_0', 78 => 'condition_1', 110 => 'condition_2']],
]; ];
} }
...@@ -138,8 +138,7 @@ SQLDATA ...@@ -138,8 +138,7 @@ SQLDATA
public static function dataExpandListParameters() : iterable public static function dataExpandListParameters() : iterable
{ {
return [ return [
// Positional: Very simple with one needle 'Positional: Very simple with one needle' => [
[
'SELECT * FROM Foo WHERE foo IN (?)', 'SELECT * FROM Foo WHERE foo IN (?)',
[[1, 2, 3]], [[1, 2, 3]],
[Connection::PARAM_INT_ARRAY], [Connection::PARAM_INT_ARRAY],
...@@ -147,8 +146,7 @@ SQLDATA ...@@ -147,8 +146,7 @@ SQLDATA
[1, 2, 3], [1, 2, 3],
[ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::INTEGER], [ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::INTEGER],
], ],
// Positional: One non-list before d one after list-needle 'Positional: One non-list before d one after list-needle' => [
[
'SELECT * FROM Foo WHERE foo = ? AND bar IN (?)', 'SELECT * FROM Foo WHERE foo = ? AND bar IN (?)',
['string', [1, 2, 3]], ['string', [1, 2, 3]],
[ParameterType::STRING, Connection::PARAM_INT_ARRAY], [ParameterType::STRING, Connection::PARAM_INT_ARRAY],
...@@ -156,8 +154,7 @@ SQLDATA ...@@ -156,8 +154,7 @@ SQLDATA
['string', 1, 2, 3], ['string', 1, 2, 3],
[ParameterType::STRING, ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::INTEGER], [ParameterType::STRING, ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::INTEGER],
], ],
// Positional: One non-list after list-needle 'Positional: One non-list after list-needle' => [
[
'SELECT * FROM Foo WHERE bar IN (?) AND baz = ?', 'SELECT * FROM Foo WHERE bar IN (?) AND baz = ?',
[[1, 2, 3], 'foo'], [[1, 2, 3], 'foo'],
[Connection::PARAM_INT_ARRAY, ParameterType::STRING], [Connection::PARAM_INT_ARRAY, ParameterType::STRING],
...@@ -165,8 +162,7 @@ SQLDATA ...@@ -165,8 +162,7 @@ SQLDATA
[1, 2, 3, 'foo'], [1, 2, 3, 'foo'],
[ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::STRING], [ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::STRING],
], ],
// Positional: One non-list before and one after list-needle 'Positional: One non-list before and one after list-needle' => [
[
'SELECT * FROM Foo WHERE foo = ? AND bar IN (?) AND baz = ?', 'SELECT * FROM Foo WHERE foo = ? AND bar IN (?) AND baz = ?',
[1, [1, 2, 3], 4], [1, [1, 2, 3], 4],
[ParameterType::INTEGER, Connection::PARAM_INT_ARRAY, ParameterType::INTEGER], [ParameterType::INTEGER, Connection::PARAM_INT_ARRAY, ParameterType::INTEGER],
...@@ -180,8 +176,7 @@ SQLDATA ...@@ -180,8 +176,7 @@ SQLDATA
ParameterType::INTEGER, ParameterType::INTEGER,
], ],
], ],
// Positional: Two lists 'Positional: Two lists' => [
[
'SELECT * FROM Foo WHERE foo IN (?, ?)', 'SELECT * FROM Foo WHERE foo IN (?, ?)',
[[1, 2, 3], [4, 5]], [[1, 2, 3], [4, 5]],
[Connection::PARAM_INT_ARRAY, Connection::PARAM_INT_ARRAY], [Connection::PARAM_INT_ARRAY, Connection::PARAM_INT_ARRAY],
...@@ -195,8 +190,7 @@ SQLDATA ...@@ -195,8 +190,7 @@ SQLDATA
ParameterType::INTEGER, ParameterType::INTEGER,
], ],
], ],
// Positional: Empty "integer" array DDC-1978 'Positional: Empty "integer" array (DDC-1978)' => [
[
'SELECT * FROM Foo WHERE foo IN (?)', 'SELECT * FROM Foo WHERE foo IN (?)',
[[]], [[]],
[Connection::PARAM_INT_ARRAY], [Connection::PARAM_INT_ARRAY],
...@@ -204,8 +198,7 @@ SQLDATA ...@@ -204,8 +198,7 @@ SQLDATA
[], [],
[], [],
], ],
// Positional: Empty "str" array DDC-1978 'Positional: Empty "str" array (DDC-1978)' => [
[
'SELECT * FROM Foo WHERE foo IN (?)', 'SELECT * FROM Foo WHERE foo IN (?)',
[[]], [[]],
[Connection::PARAM_STR_ARRAY], [Connection::PARAM_STR_ARRAY],
...@@ -213,17 +206,15 @@ SQLDATA ...@@ -213,17 +206,15 @@ SQLDATA
[], [],
[], [],
], ],
// Positional: explicit keys for params and types 'Positional: explicit keys for params and types' => [
[
'SELECT * FROM Foo WHERE foo = ? AND bar = ? AND baz = ?', 'SELECT * FROM Foo WHERE foo = ? AND bar = ? AND baz = ?',
[1 => 'bar', 2 => 'baz', 0 => 1], [1 => 'bar', 2 => 'baz', 0 => 1],
[2 => ParameterType::STRING, 1 => ParameterType::STRING], [2 => ParameterType::STRING, 1 => ParameterType::STRING],
'SELECT * FROM Foo WHERE foo = ? AND bar = ? AND baz = ?', 'SELECT * FROM Foo WHERE foo = ? AND bar = ? AND baz = ?',
[1 => 'bar', 0 => 1, 2 => 'baz'], [1 => 'bar', 0 => 1, 2 => 'baz'],
[1 => ParameterType::STRING, 2 => ParameterType::STRING], [1 => ParameterType::STRING, 2 => ParameterType::STRING, 0 => null],
], ],
// Positional: explicit keys for array params and array types 'Positional: explicit keys for array params and array types' => [
[
'SELECT * FROM Foo WHERE foo IN (?) AND bar IN (?) AND baz = ?', 'SELECT * FROM Foo WHERE foo IN (?) AND bar IN (?) AND baz = ?',
[1 => ['bar1', 'bar2'], 2 => true, 0 => [1, 2, 3]], [1 => ['bar1', 'bar2'], 2 => true, 0 => [1, 2, 3]],
[2 => ParameterType::BOOLEAN, 1 => Connection::PARAM_STR_ARRAY, 0 => Connection::PARAM_INT_ARRAY], [2 => ParameterType::BOOLEAN, 1 => Connection::PARAM_STR_ARRAY, 0 => Connection::PARAM_INT_ARRAY],
...@@ -238,8 +229,7 @@ SQLDATA ...@@ -238,8 +229,7 @@ SQLDATA
ParameterType::BOOLEAN, ParameterType::BOOLEAN,
], ],
], ],
// Positional starts from 1: One non-list before and one after list-needle 'Positional starts from 1: One non-list before and one after list-needle' => [
[
'SELECT * FROM Foo WHERE foo = ? AND bar IN (?) AND baz = ? AND foo IN (?)', 'SELECT * FROM Foo WHERE foo = ? AND bar IN (?) AND baz = ? AND foo IN (?)',
[1 => 1, 2 => [1, 2, 3], 3 => 4, 4 => [5, 6]], [1 => 1, 2 => [1, 2, 3], 3 => 4, 4 => [5, 6]],
[ [
...@@ -260,8 +250,7 @@ SQLDATA ...@@ -260,8 +250,7 @@ SQLDATA
ParameterType::INTEGER, ParameterType::INTEGER,
], ],
], ],
// Named parameters : Very simple with param int 'Named: Very simple with param int' => [
[
'SELECT * FROM Foo WHERE foo = :foo', 'SELECT * FROM Foo WHERE foo = :foo',
['foo' => 1], ['foo' => 1],
['foo' => ParameterType::INTEGER], ['foo' => ParameterType::INTEGER],
...@@ -269,9 +258,7 @@ SQLDATA ...@@ -269,9 +258,7 @@ SQLDATA
[1], [1],
[ParameterType::INTEGER], [ParameterType::INTEGER],
], ],
'Named: Very simple with param int and string' => [
// Named parameters : Very simple with param int and string
[
'SELECT * FROM Foo WHERE foo = :foo AND bar = :bar', 'SELECT * FROM Foo WHERE foo = :foo AND bar = :bar',
['bar' => 'Some String','foo' => 1], ['bar' => 'Some String','foo' => 1],
['foo' => ParameterType::INTEGER, 'bar' => ParameterType::STRING], ['foo' => ParameterType::INTEGER, 'bar' => ParameterType::STRING],
...@@ -279,8 +266,7 @@ SQLDATA ...@@ -279,8 +266,7 @@ SQLDATA
[1,'Some String'], [1,'Some String'],
[ParameterType::INTEGER, ParameterType::STRING], [ParameterType::INTEGER, ParameterType::STRING],
], ],
// Named parameters : Very simple with one needle 'Named: Very simple with one needle' => [
[
'SELECT * FROM Foo WHERE foo IN (:foo)', 'SELECT * FROM Foo WHERE foo IN (:foo)',
['foo' => [1, 2, 3]], ['foo' => [1, 2, 3]],
['foo' => Connection::PARAM_INT_ARRAY], ['foo' => Connection::PARAM_INT_ARRAY],
...@@ -288,8 +274,7 @@ SQLDATA ...@@ -288,8 +274,7 @@ SQLDATA
[1, 2, 3], [1, 2, 3],
[ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::INTEGER], [ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::INTEGER],
], ],
// Named parameters: One non-list before d one after list-needle 'Named: One non-list before d one after list-needle' => [
[
'SELECT * FROM Foo WHERE foo = :foo AND bar IN (:bar)', 'SELECT * FROM Foo WHERE foo = :foo AND bar IN (:bar)',
['foo' => 'string', 'bar' => [1, 2, 3]], ['foo' => 'string', 'bar' => [1, 2, 3]],
['foo' => ParameterType::STRING, 'bar' => Connection::PARAM_INT_ARRAY], ['foo' => ParameterType::STRING, 'bar' => Connection::PARAM_INT_ARRAY],
...@@ -297,8 +282,7 @@ SQLDATA ...@@ -297,8 +282,7 @@ SQLDATA
['string', 1, 2, 3], ['string', 1, 2, 3],
[ParameterType::STRING, ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::INTEGER], [ParameterType::STRING, ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::INTEGER],
], ],
// Named parameters: One non-list after list-needle 'Named: One non-list after list-needle' => [
[
'SELECT * FROM Foo WHERE bar IN (:bar) AND baz = :baz', 'SELECT * FROM Foo WHERE bar IN (:bar) AND baz = :baz',
['bar' => [1, 2, 3], 'baz' => 'foo'], ['bar' => [1, 2, 3], 'baz' => 'foo'],
['bar' => Connection::PARAM_INT_ARRAY, 'baz' => ParameterType::STRING], ['bar' => Connection::PARAM_INT_ARRAY, 'baz' => ParameterType::STRING],
...@@ -306,26 +290,39 @@ SQLDATA ...@@ -306,26 +290,39 @@ SQLDATA
[1, 2, 3, 'foo'], [1, 2, 3, 'foo'],
[ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::STRING], [ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::STRING],
], ],
// Named parameters: One non-list before and one after list-needle 'Named: One non-list before and one after list-needle' => [
[
'SELECT * FROM Foo WHERE foo = :foo AND bar IN (:bar) AND baz = :baz', 'SELECT * FROM Foo WHERE foo = :foo AND bar IN (:bar) AND baz = :baz',
['bar' => [1, 2, 3],'foo' => 1, 'baz' => 4], ['bar' => [1, 2, 3],'foo' => 1, 'baz' => 4],
['bar' => Connection::PARAM_INT_ARRAY, 'foo' => ParameterType::INTEGER, 'baz' => ParameterType::INTEGER], [
'bar' => Connection::PARAM_INT_ARRAY,
'foo' => ParameterType::INTEGER,
'baz' => ParameterType::INTEGER,
],
'SELECT * FROM Foo WHERE foo = ? AND bar IN (?, ?, ?) AND baz = ?', 'SELECT * FROM Foo WHERE foo = ? AND bar IN (?, ?, ?) AND baz = ?',
[1, 1, 2, 3, 4], [1, 1, 2, 3, 4],
[ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::INTEGER], [
ParameterType::INTEGER,
ParameterType::INTEGER,
ParameterType::INTEGER,
ParameterType::INTEGER,
ParameterType::INTEGER,
],
], ],
// Named parameters: Two lists 'Named: Two lists' => [
[
'SELECT * FROM Foo WHERE foo IN (:a, :b)', 'SELECT * FROM Foo WHERE foo IN (:a, :b)',
['b' => [4, 5],'a' => [1, 2, 3]], ['b' => [4, 5],'a' => [1, 2, 3]],
['a' => Connection::PARAM_INT_ARRAY, 'b' => Connection::PARAM_INT_ARRAY], ['a' => Connection::PARAM_INT_ARRAY, 'b' => Connection::PARAM_INT_ARRAY],
'SELECT * FROM Foo WHERE foo IN (?, ?, ?, ?, ?)', 'SELECT * FROM Foo WHERE foo IN (?, ?, ?, ?, ?)',
[1, 2, 3, 4, 5], [1, 2, 3, 4, 5],
[ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::INTEGER], [
ParameterType::INTEGER,
ParameterType::INTEGER,
ParameterType::INTEGER,
ParameterType::INTEGER,
ParameterType::INTEGER,
],
], ],
// Named parameters : With the same name arg type string 'Named: With the same name arg type string' => [
[
'SELECT * FROM Foo WHERE foo <> :arg AND bar = :arg', 'SELECT * FROM Foo WHERE foo <> :arg AND bar = :arg',
['arg' => 'Some String'], ['arg' => 'Some String'],
['arg' => ParameterType::STRING], ['arg' => ParameterType::STRING],
...@@ -333,18 +330,22 @@ SQLDATA ...@@ -333,18 +330,22 @@ SQLDATA
['Some String','Some String'], ['Some String','Some String'],
[ParameterType::STRING,ParameterType::STRING], [ParameterType::STRING,ParameterType::STRING],
], ],
// Named parameters : With the same name arg 'Named: With the same name arg' => [
[
'SELECT * FROM Foo WHERE foo IN (:arg) AND NOT bar IN (:arg)', 'SELECT * FROM Foo WHERE foo IN (:arg) AND NOT bar IN (:arg)',
['arg' => [1, 2, 3]], ['arg' => [1, 2, 3]],
['arg' => Connection::PARAM_INT_ARRAY], ['arg' => Connection::PARAM_INT_ARRAY],
'SELECT * FROM Foo WHERE foo IN (?, ?, ?) AND NOT bar IN (?, ?, ?)', 'SELECT * FROM Foo WHERE foo IN (?, ?, ?) AND NOT bar IN (?, ?, ?)',
[1, 2, 3, 1, 2, 3], [1, 2, 3, 1, 2, 3],
[ParameterType::INTEGER,ParameterType::INTEGER, ParameterType::INTEGER,ParameterType::INTEGER,ParameterType::INTEGER, ParameterType::INTEGER], [
ParameterType::INTEGER,
ParameterType::INTEGER,
ParameterType::INTEGER,
ParameterType::INTEGER,
ParameterType::INTEGER,
ParameterType::INTEGER,
],
], ],
'Named: Same name, other name in between (DBAL-299)' => [
// Named parameters : Same name, other name in between DBAL-299
[
'SELECT * FROM Foo WHERE (:foo = 2) AND (:bar = 3) AND (:foo = 2)', 'SELECT * FROM Foo WHERE (:foo = 2) AND (:bar = 3) AND (:foo = 2)',
['foo' => 2,'bar' => 3], ['foo' => 2,'bar' => 3],
['foo' => ParameterType::INTEGER,'bar' => ParameterType::INTEGER], ['foo' => ParameterType::INTEGER,'bar' => ParameterType::INTEGER],
...@@ -352,8 +353,7 @@ SQLDATA ...@@ -352,8 +353,7 @@ SQLDATA
[2, 3, 2], [2, 3, 2],
[ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::INTEGER], [ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::INTEGER],
], ],
// Named parameters : Empty "integer" array DDC-1978 'Named: Empty "integer" array (DDC-1978)' => [
[
'SELECT * FROM Foo WHERE foo IN (:foo)', 'SELECT * FROM Foo WHERE foo IN (:foo)',
['foo' => []], ['foo' => []],
['foo' => Connection::PARAM_INT_ARRAY], ['foo' => Connection::PARAM_INT_ARRAY],
...@@ -361,8 +361,7 @@ SQLDATA ...@@ -361,8 +361,7 @@ SQLDATA
[], [],
[], [],
], ],
// Named parameters : Two empty "str" array DDC-1978 'Named: Two empty "str" array (DDC-1978)' => [
[
'SELECT * FROM Foo WHERE foo IN (:foo) OR bar IN (:bar)', 'SELECT * FROM Foo WHERE foo IN (:foo) OR bar IN (:bar)',
['foo' => [], 'bar' => []], ['foo' => [], 'bar' => []],
['foo' => Connection::PARAM_STR_ARRAY, 'bar' => Connection::PARAM_STR_ARRAY], ['foo' => Connection::PARAM_STR_ARRAY, 'bar' => Connection::PARAM_STR_ARRAY],
...@@ -386,8 +385,7 @@ SQLDATA ...@@ -386,8 +385,7 @@ SQLDATA
[1, 2, 'bar'], [1, 2, 'bar'],
[ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::STRING], [ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::STRING],
], ],
// Params/types with colons 'Params/types with colons' => [
[
'SELECT * FROM Foo WHERE foo = :foo OR bar = :bar', 'SELECT * FROM Foo WHERE foo = :foo OR bar = :bar',
[':foo' => 'foo', ':bar' => 'bar'], [':foo' => 'foo', ':bar' => 'bar'],
[':foo' => ParameterType::INTEGER], [':foo' => ParameterType::INTEGER],
...@@ -419,8 +417,7 @@ SQLDATA ...@@ -419,8 +417,7 @@ SQLDATA
[1, 2, 'bar'], [1, 2, 'bar'],
[ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::STRING], [ParameterType::INTEGER, ParameterType::INTEGER, ParameterType::STRING],
], ],
// DBAL-522 - null valued parameters are not considered 'Null valued parameters (DBAL-522)' => [
[
'INSERT INTO Foo (foo, bar) values (:foo, :bar)', 'INSERT INTO Foo (foo, bar) values (:foo, :bar)',
['foo' => 1, 'bar' => null], ['foo' => 1, 'bar' => null],
[':foo' => ParameterType::INTEGER, ':bar' => ParameterType::NULL], [':foo' => ParameterType::INTEGER, ':bar' => ParameterType::NULL],
...@@ -436,8 +433,7 @@ SQLDATA ...@@ -436,8 +433,7 @@ SQLDATA
[1, null], [1, null],
[ParameterType::INTEGER, ParameterType::NULL], [ParameterType::INTEGER, ParameterType::NULL],
], ],
// DBAL-1205 - Escaped single quotes SQL- and C-Style 'Escaped single quotes SQL- and C-Style (DBAL-1205)' => [
[
"SELECT * FROM Foo WHERE foo = :foo||''':not_a_param''\\'' OR bar = ''':not_a_param''\\'':bar", "SELECT * FROM Foo WHERE foo = :foo||''':not_a_param''\\'' OR bar = ''':not_a_param''\\'':bar",
[':foo' => 1, ':bar' => 2], [':foo' => 1, ':bar' => 2],
[':foo' => ParameterType::INTEGER, 'bar' => ParameterType::INTEGER], [':foo' => ParameterType::INTEGER, 'bar' => ParameterType::INTEGER],
...@@ -445,6 +441,14 @@ SQLDATA ...@@ -445,6 +441,14 @@ SQLDATA
[1, 2], [1, 2],
[ParameterType::INTEGER, ParameterType::INTEGER], [ParameterType::INTEGER, ParameterType::INTEGER],
], ],
[
'SELECT NULL FROM dummy WHERE ? IN (?)',
['foo', ['bar', 'baz']],
[1 => Connection::PARAM_STR_ARRAY],
'SELECT NULL FROM dummy WHERE ? IN (?, ?)',
['foo', 'bar', 'baz'],
[null, ParameterType::STRING, ParameterType::STRING],
],
]; ];
} }
......
...@@ -7,9 +7,10 @@ namespace Doctrine\Tests\DBAL\Types; ...@@ -7,9 +7,10 @@ namespace Doctrine\Tests\DBAL\Types;
use Doctrine\DBAL\Types\ConversionException; use Doctrine\DBAL\Types\ConversionException;
use Doctrine\DBAL\Types\Exception\InvalidFormat; use Doctrine\DBAL\Types\Exception\InvalidFormat;
use Doctrine\DBAL\Types\Exception\InvalidType; use Doctrine\DBAL\Types\Exception\InvalidType;
use Exception; use Doctrine\DBAL\Types\Exception\ValueNotConvertible;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use stdClass; use stdClass;
use Throwable;
use function get_class; use function get_class;
use function gettype; use function gettype;
use function is_object; use function is_object;
...@@ -18,6 +19,16 @@ use function tmpfile; ...@@ -18,6 +19,16 @@ use function tmpfile;
class ConversionExceptionTest extends TestCase class ConversionExceptionTest extends TestCase
{ {
public function testConversionFailedPreviousException() : void
{
$previous = $this->createMock(Throwable::class);
$exception = ValueNotConvertible::new('foo', 'foo', null, $previous);
self::assertInstanceOf(ConversionException::class, $exception);
self::assertSame($previous, $exception->getPrevious());
}
/** /**
* @param mixed $scalarValue * @param mixed $scalarValue
* *
...@@ -58,9 +69,19 @@ class ConversionExceptionTest extends TestCase ...@@ -58,9 +69,19 @@ class ConversionExceptionTest extends TestCase
); );
} }
public function testConversionFailedInvalidTypePreviousException() : void
{
$previous = $this->createMock(Throwable::class);
$exception = InvalidType::new('foo', 'foo', ['bar', 'baz'], $previous);
self::assertInstanceOf(ConversionException::class, $exception);
self::assertSame($previous, $exception->getPrevious());
}
public function testConversionFailedFormatPreservesPreviousException() : void public function testConversionFailedFormatPreservesPreviousException() : void
{ {
$previous = new Exception(); $previous = $this->createMock(Throwable::class);
$exception = InvalidFormat::new('foo', 'bar', 'baz', $previous); $exception = InvalidFormat::new('foo', 'bar', 'baz', $previous);
......
DROP USER IF EXISTS 'travis'@'%';
CREATE USER 'travis'@'%';
CREATE SCHEMA doctrine_tests;
CREATE SCHEMA test_create_database;
CREATE SCHEMA test_drop_database;
GRANT ALL PRIVILEGES ON doctrine_tests.* to travis@'%';
GRANT ALL PRIVILEGES ON test_create_database.* to travis@'%';
GRANT ALL PRIVILEGES ON test_drop_database.* to travis@'%';
#!/usr/bin/env bash
set -ex
echo "Starting RDBMS…">&2
if [[ "$IMAGE" == "mysql:8.0" ]]
then
CMD_OPTIONS="--default-authentication-plugin=mysql_native_password"
else
CMD_OPTIONS=""
fi
docker run \
--health-cmd='mysqladmin ping --silent' \
--detach \
--env MYSQL_ALLOW_EMPTY_PASSWORD=yes \
--env MYSQL_DATABASE=doctrine_tests \
--publish 33306:3306 \
--name rdbms \
"$IMAGE" $CMD_OPTIONS
while true; do
healthStatus=$(docker inspect --format "{{json .State.Health.Status }}" rdbms)
case $healthStatus in
'"starting"')
echo "Waiting for RDBMS to become ready…">&2
sleep 1
;;
'"healthy"')
echo "Container is healthy">&2
break
;;
'"unhealthy"')
echo "Container is unhealthy">&2
exit 1
;;
*)
echo "Unexpected health status $healthStatus">&2
;;
esac
done
#!/usr/bin/env bash
set -ex
echo "Starting MySQL 5.7..."
sudo docker run \
-d \
-e MYSQL_ALLOW_EMPTY_PASSWORD=yes \
-e MYSQL_DATABASE=doctrine_tests \
-p 33306:3306 \
--name mysql57 \
mysql:5.7
sudo docker exec -i mysql57 bash <<< 'until echo \\q | mysql doctrine_tests > /dev/null 2>&1 ; do sleep 1; done'
#!/usr/bin/env bash
set -ex
echo "Starting MySQL 8.0..."
sudo docker pull mysql:8.0
sudo docker run \
-d \
-e MYSQL_ALLOW_EMPTY_PASSWORD=yes \
-e MYSQL_DATABASE=doctrine_tests \
-p 33306:3306 \
--name mysql80 \
mysql:8.0 \
--default-authentication-plugin=mysql_native_password
sudo docker exec -i mysql80 bash <<< 'until echo \\q | mysql doctrine_tests > /dev/null 2>&1 ; do sleep 1; done'
<?xml version="1.0" encoding="utf-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../vendor/phpunit/phpunit/phpunit.xsd"
colors="true"
beStrictAboutOutputDuringTests="true"
beStrictAboutTodoAnnotatedTests="true"
failOnRisky="true"
failOnWarning="true"
>
<php>
<ini name="error_reporting" value="-1" />
<var name="db_type" value="mysqli"/>
<var name="db_host" value="localhost" />
<var name="db_username" value="travis" />
<var name="db_password" value="" />
<var name="db_name" value="doctrine_tests" />
<var name="db_port" value="3306"/>
<var name="tmpdb_type" value="mysqli"/>
<var name="tmpdb_host" value="localhost" />
<var name="tmpdb_username" value="travis" />
<var name="tmpdb_password" value="" />
<var name="tmpdb_port" value="3306"/>
</php>
<testsuites>
<testsuite name="Doctrine DBAL Test Suite">
<directory>../Doctrine/Tests/DBAL</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory suffix=".php">../../lib/Doctrine</directory>
</whitelist>
</filter>
<groups>
<exclude>
<group>performance</group>
<group>locking_functional</group>
</exclude>
</groups>
</phpunit>
<?xml version="1.0" encoding="utf-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../vendor/phpunit/phpunit/phpunit.xsd"
colors="true"
beStrictAboutOutputDuringTests="true"
beStrictAboutTodoAnnotatedTests="true"
failOnRisky="true"
failOnWarning="true"
>
<php>
<ini name="error_reporting" value="-1" />
<var name="db_type" value="pdo_mysql"/>
<var name="db_host" value="localhost" />
<var name="db_username" value="travis" />
<var name="db_password" value="" />
<var name="db_name" value="doctrine_tests" />
<var name="db_port" value="3306"/>
<var name="tmpdb_type" value="pdo_mysql"/>
<var name="tmpdb_host" value="localhost" />
<var name="tmpdb_username" value="travis" />
<var name="tmpdb_password" value="" />
<var name="tmpdb_port" value="3306"/>
</php>
<testsuites>
<testsuite name="Doctrine DBAL Test Suite">
<directory>../Doctrine/Tests/DBAL</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory suffix=".php">../../lib/Doctrine</directory>
</whitelist>
</filter>
<groups>
<exclude>
<group>performance</group>
<group>locking_functional</group>
</exclude>
</groups>
</phpunit>
<?xml version="1.0" encoding="utf-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../vendor/phpunit/phpunit/phpunit.xsd"
colors="true"
beStrictAboutOutputDuringTests="true"
beStrictAboutTodoAnnotatedTests="true"
failOnRisky="true"
failOnWarning="true"
>
<php>
<ini name="error_reporting" value="-1" />
<var name="db_type" value="pdo_mysql"/>
<var name="db_host" value="localhost" />
<var name="db_username" value="travis" />
<var name="db_password" value="" />
<var name="db_name" value="doctrine_tests" />
<var name="db_port" value="3306"/>
<var name="tmpdb_type" value="pdo_mysql"/>
<var name="tmpdb_host" value="localhost" />
<var name="tmpdb_username" value="travis" />
<var name="tmpdb_password" value="" />
<var name="tmpdb_port" value="3306"/>
</php>
<testsuites>
<testsuite name="Doctrine DBAL Test Suite">
<directory>../Doctrine/Tests/DBAL</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory suffix=".php">../../lib/Doctrine</directory>
</whitelist>
</filter>
<groups>
<exclude>
<group>performance</group>
<group>locking_functional</group>
</exclude>
</groups>
</phpunit>
<?xml version="1.0" encoding="utf-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../vendor/phpunit/phpunit/phpunit.xsd"
colors="true"
beStrictAboutOutputDuringTests="true"
beStrictAboutTodoAnnotatedTests="true"
failOnRisky="true"
failOnWarning="true"
>
<php>
<ini name="error_reporting" value="-1" />
<var name="db_type" value="mysqli"/>
<var name="db_host" value="localhost" />
<var name="db_username" value="travis" />
<var name="db_password" value="" />
<var name="db_name" value="doctrine_tests" />
<var name="db_port" value="3306"/>
<var name="tmpdb_type" value="mysqli"/>
<var name="tmpdb_host" value="localhost" />
<var name="tmpdb_username" value="travis" />
<var name="tmpdb_password" value="" />
<var name="tmpdb_port" value="3306"/>
</php>
<testsuites>
<testsuite name="Doctrine DBAL Test Suite">
<directory>../Doctrine/Tests/DBAL</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory suffix=".php">../../lib/Doctrine</directory>
</whitelist>
</filter>
<groups>
<exclude>
<group>performance</group>
<group>locking_functional</group>
</exclude>
</groups>
</phpunit>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment