diff --git a/.travis.yml b/.travis.yml index 7087e01..94f1ce6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,5 @@ language: php +dist: trusty sudo: false @@ -7,7 +8,6 @@ cache: - vendor/ php: - - 5.3 - 5.4 - 5.5 - 5.6 diff --git a/README.rst b/README.rst index c6f278c..548903a 100644 --- a/README.rst +++ b/README.rst @@ -55,9 +55,8 @@ Several types of installations are possible: * Using a ``.phar`` archive: - .. sourcecode:: console - - $ wget --no-check-certificate https://packages.erebot.net/get/XRL-dev-master.phar + Download the PHAR archive for the latest release from + https://github.com/fpoirotte/XRL/releases/latest * Using composer: diff --git a/composer.json b/composer.json index 1b81dd6..cbf636c 100644 --- a/composer.json +++ b/composer.json @@ -30,7 +30,7 @@ "require-dev": { "ext-dom": "*", "ext-SimpleXML": "*", - "erebot/buildenv": "*", + "erebot/buildenv": "^1.4.0", "erebot/plop": "*", "fpoirotte/natives4doxygen": "*", "pdepend/pdepend": "*", @@ -52,7 +52,7 @@ "bin": ["bin/xrl"], "extra": { "branch-alias": { - "dev-develop": "2.0.x-dev" + "dev-develop": "3.0.x-dev" } } } diff --git a/composer.lock b/composer.lock index a04fb6d..cae8583 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "8f41165221a9207be16ffd49d3cf601c", - "content-hash": "bf9f0877629bf99ea57dd8fca91aa344", + "content-hash": "2c2219586fe009c28fd899561b539b90", "packages": [], "packages-dev": [ { @@ -60,27 +59,27 @@ "constructor", "instantiate" ], - "time": "2015-06-14 21:17:01" + "time": "2015-06-14T21:17:01+00:00" }, { "name": "erebot/buildenv", - "version": "1.2.8", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/Erebot/Buildenv.git", - "reference": "b16fc3a30bf2ebdf0a962d5e6af06e220a76ced5" + "reference": "cb89a65bf6ad1175f3c15abc96030ffff46e6915" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Erebot/Buildenv/zipball/b16fc3a30bf2ebdf0a962d5e6af06e220a76ced5", - "reference": "b16fc3a30bf2ebdf0a962d5e6af06e220a76ced5", + "url": "https://api.github.com/repos/Erebot/Buildenv/zipball/cb89a65bf6ad1175f3c15abc96030ffff46e6915", + "reference": "cb89a65bf6ad1175f3c15abc96030ffff46e6915", "shasum": "" }, "require": { "ext-json": "*", "ext-phar": "*", "ext-xsl": "*", - "phing/phing": ">=2.9.0", + "phing/phing": "^2.9.0", "php": ">=5.2.2" }, "require-dev": { @@ -105,11 +104,11 @@ } ], "description": "Build environment for the Erebot project", - "homepage": "https://github.com/Erebot/Erebot_Buildenv", + "homepage": "https://github.com/Erebot/Buildenv", "keywords": [ "Erebot" ], - "time": "2014-12-30 11:49:48" + "time": "2017-05-06T13:37:33+00:00" }, { "name": "erebot/plop", @@ -172,7 +171,7 @@ "log", "logging" ], - "time": "2014-12-28 18:42:31" + "time": "2014-12-28T18:42:31+00:00" }, { "name": "fpoirotte/natives4doxygen", @@ -214,20 +213,20 @@ "documentation", "doxygen" ], - "time": "2014-11-02 13:27:25" + "time": "2014-11-02T13:27:25+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.5.4", + "version": "1.6.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "ea74994a3dc7f8d2f65a06009348f2d63c81e61f" + "reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/ea74994a3dc7f8d2f65a06009348f2d63c81e61f", - "reference": "ea74994a3dc7f8d2f65a06009348f2d63c81e61f", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/8e6e04167378abf1ddb4d3522d8755c5fd90d102", + "reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102", "shasum": "" }, "require": { @@ -256,20 +255,20 @@ "object", "object graph" ], - "time": "2016-09-16 13:37:59" + "time": "2017-04-12T18:52:22+00:00" }, { "name": "pdepend/pdepend", - "version": "2.2.4", + "version": "2.5.0", "source": { "type": "git", "url": "https://github.com/pdepend/pdepend.git", - "reference": "b086687f3a01dc6bb92d633aef071d2c5dd0db06" + "reference": "0c50874333149c0dad5a2877801aed148f2767ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pdepend/pdepend/zipball/b086687f3a01dc6bb92d633aef071d2c5dd0db06", - "reference": "b086687f3a01dc6bb92d633aef071d2c5dd0db06", + "url": "https://api.github.com/repos/pdepend/pdepend/zipball/0c50874333149c0dad5a2877801aed148f2767ff", + "reference": "0c50874333149c0dad5a2877801aed148f2767ff", "shasum": "" }, "require": { @@ -296,28 +295,130 @@ "BSD-3-Clause" ], "description": "Official version of pdepend to be handled with Composer", - "time": "2016-03-10 15:15:04" + "time": "2017-01-19T14:23:36+00:00" + }, + { + "name": "phar-io/manifest", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0", + "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "phar-io/version": "^1.0.1", + "php": "^5.6 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "time": "2017-03-05T18:14:27+00:00" + }, + { + "name": "phar-io/version", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df", + "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "time": "2017-03-05T17:38:23+00:00" }, { "name": "phing/phing", - "version": "2.15.2", + "version": "2.16.0", "source": { "type": "git", "url": "https://github.com/phingofficial/phing.git", - "reference": "0999ab4e94e609dc00998e3d1b88df843054db7c" + "reference": "151a0f4d8cebf7711eccc62dde3f09bc36a00d7b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phingofficial/phing/zipball/0999ab4e94e609dc00998e3d1b88df843054db7c", - "reference": "0999ab4e94e609dc00998e3d1b88df843054db7c", + "url": "https://api.github.com/repos/phingofficial/phing/zipball/151a0f4d8cebf7711eccc62dde3f09bc36a00d7b", + "reference": "151a0f4d8cebf7711eccc62dde3f09bc36a00d7b", "shasum": "" }, "require": { - "php": ">=5.2.0" + "php": ">=5.2.0", + "symfony/yaml": "^3.1" }, "require-dev": { "ext-pdo_sqlite": "*", - "lastcraft/simpletest": "@dev", "mikey179/vfsstream": "^1.6", "pdepend/pdepend": "2.x", "pear/archive_tar": "1.4.x", @@ -333,8 +434,8 @@ "sebastian/git": "~1.0", "sebastian/phpcpd": "2.x", "siad007/versioncontrol_hg": "^1.0", - "squizlabs/php_codesniffer": "~2.2", - "symfony/yaml": "~2.7" + "simpletest/simpletest": "^1.1", + "squizlabs/php_codesniffer": "~2.2" }, "suggest": { "pdepend/pdepend": "PHP version of JDepend", @@ -356,7 +457,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.15.x-dev" + "dev-master": "2.16.x-dev" } }, "autoload": { @@ -389,7 +490,7 @@ "task", "tool" ], - "time": "2016-10-13 09:01:45" + "time": "2016-12-22T20:16:33+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -443,26 +544,26 @@ "reflection", "static analysis" ], - "time": "2015-12-27 11:43:31" + "time": "2015-12-27T11:43:31+00:00" }, { "name": "phpdocumentor/reflection-docblock", - "version": "3.1.1", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e" + "reference": "46f7e8bb075036c92695b15a1ddb6971c751e585" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/8331b5efe816ae05461b7ca1e721c01b46bafb3e", - "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/46f7e8bb075036c92695b15a1ddb6971c751e585", + "reference": "46f7e8bb075036c92695b15a1ddb6971c751e585", "shasum": "" }, "require": { "php": ">=5.5", "phpdocumentor/reflection-common": "^1.0@dev", - "phpdocumentor/type-resolver": "^0.2.0", + "phpdocumentor/type-resolver": "^0.4.0", "webmozart/assert": "^1.0" }, "require-dev": { @@ -488,24 +589,24 @@ } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2016-09-30 07:12:33" + "time": "2017-07-15T11:38:20+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "0.2", + "version": "0.4.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "b39c7a5b194f9ed7bd0dd345c751007a41862443" + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/b39c7a5b194f9ed7bd0dd345c751007a41862443", - "reference": "b39c7a5b194f9ed7bd0dd345c751007a41862443", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", "shasum": "" }, "require": { - "php": ">=5.5", + "php": "^5.5 || ^7.0", "phpdocumentor/reflection-common": "^1.0" }, "require-dev": { @@ -535,25 +636,26 @@ "email": "me@mikevanriel.com" } ], - "time": "2016-06-10 07:14:17" + "time": "2017-07-14T14:27:02+00:00" }, { "name": "phpmd/phpmd", - "version": "2.4.3", + "version": "2.6.0", "source": { "type": "git", "url": "https://github.com/phpmd/phpmd.git", - "reference": "2b9c2417a18696dfb578b38c116cd0ddc19b256e" + "reference": "4e9924b2c157a3eb64395460fcf56b31badc8374" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpmd/phpmd/zipball/2b9c2417a18696dfb578b38c116cd0ddc19b256e", - "reference": "2b9c2417a18696dfb578b38c116cd0ddc19b256e", + "url": "https://api.github.com/repos/phpmd/phpmd/zipball/4e9924b2c157a3eb64395460fcf56b31badc8374", + "reference": "4e9924b2c157a3eb64395460fcf56b31badc8374", "shasum": "" }, "require": { - "pdepend/pdepend": "^2.0.4", - "php": ">=5.3.0" + "ext-xml": "*", + "pdepend/pdepend": "^2.5", + "php": ">=5.3.9" }, "require-dev": { "phpunit/phpunit": "^4.0", @@ -600,31 +702,32 @@ "phpmd", "pmd" ], - "time": "2016-04-04 11:52:04" + "time": "2017-01-20T14:41:10+00:00" }, { "name": "phpspec/prophecy", - "version": "v1.6.1", + "version": "v1.7.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "58a8137754bc24b25740d4281399a4a3596058e0" + "reference": "93d39f1f7f9326d746203c7c056f300f7f126073" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/58a8137754bc24b25740d4281399a4a3596058e0", - "reference": "58a8137754bc24b25740d4281399a4a3596058e0", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/93d39f1f7f9326d746203c7c056f300f7f126073", + "reference": "93d39f1f7f9326d746203c7c056f300f7f126073", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.2", "php": "^5.3|^7.0", "phpdocumentor/reflection-docblock": "^2.0|^3.0.2", - "sebastian/comparator": "^1.1", - "sebastian/recursion-context": "^1.0" + "sebastian/comparator": "^1.1|^2.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0" }, "require-dev": { - "phpspec/phpspec": "^2.0" + "phpspec/phpspec": "^2.5|^3.2", + "phpunit/phpunit": "^4.8 || ^5.6.5" }, "type": "library", "extra": { @@ -662,44 +765,45 @@ "spy", "stub" ], - "time": "2016-06-07 08:13:47" + "time": "2017-03-02T20:05:34+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "4.0.1", + "version": "5.2.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "5f3f7e736d6319d5f1fc402aff8b026da26709a3" + "reference": "dc421f9ca5082a0c0cb04afb171c765f79add85b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/5f3f7e736d6319d5f1fc402aff8b026da26709a3", - "reference": "5f3f7e736d6319d5f1fc402aff8b026da26709a3", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/dc421f9ca5082a0c0cb04afb171c765f79add85b", + "reference": "dc421f9ca5082a0c0cb04afb171c765f79add85b", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0", - "phpunit/php-file-iterator": "~1.3", - "phpunit/php-text-template": "~1.2", - "phpunit/php-token-stream": "^1.4.2", - "sebastian/code-unit-reverse-lookup": "~1.0", - "sebastian/environment": "^1.3.2 || ^2.0", - "sebastian/version": "~1.0|~2.0" + "ext-dom": "*", + "ext-xmlwriter": "*", + "php": "^7.0", + "phpunit/php-file-iterator": "^1.3", + "phpunit/php-text-template": "^1.2", + "phpunit/php-token-stream": "^1.4.11 || ^2.0", + "sebastian/code-unit-reverse-lookup": "^1.0", + "sebastian/environment": "^3.0", + "sebastian/version": "^2.0", + "theseer/tokenizer": "^1.1" }, "require-dev": { - "ext-xdebug": ">=2.1.4", - "phpunit/phpunit": "^5.4" + "ext-xdebug": "^2.5", + "phpunit/phpunit": "^6.0" }, "suggest": { - "ext-dom": "*", - "ext-xdebug": ">=2.4.0", - "ext-xmlwriter": "*" + "ext-xdebug": "^2.5.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0.x-dev" + "dev-master": "5.2.x-dev" } }, "autoload": { @@ -725,20 +829,20 @@ "testing", "xunit" ], - "time": "2016-07-26 14:39:29" + "time": "2017-04-21T08:03:57+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "1.4.1", + "version": "1.4.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0" + "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6150bf2c35d3fc379e50c7602b75caceaa39dbf0", - "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3cc8f69b3028d0f96a9078e6295d86e9bf019be5", + "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5", "shasum": "" }, "require": { @@ -772,7 +876,7 @@ "filesystem", "iterator" ], - "time": "2015-06-21 13:08:43" + "time": "2016-10-03T07:40:28+00:00" }, { "name": "phpunit/php-text-template", @@ -813,29 +917,34 @@ "keywords": [ "template" ], - "time": "2015-06-21 13:50:34" + "time": "2015-06-21T13:50:34+00:00" }, { "name": "phpunit/php-timer", - "version": "1.0.8", + "version": "1.0.9", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260" + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260", - "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^5.3.3 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "~4|~5" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -857,20 +966,20 @@ "keywords": [ "timer" ], - "time": "2016-05-12 18:03:57" + "time": "2017-02-26T11:10:40+00:00" }, { "name": "phpunit/php-token-stream", - "version": "1.4.8", + "version": "1.4.11", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da" + "reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", - "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/e03f8f67534427a787e21a385a67ec3ca6978ea7", + "reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7", "shasum": "" }, "require": { @@ -906,20 +1015,20 @@ "keywords": [ "tokenizer" ], - "time": "2015-09-15 10:49:45" + "time": "2017-02-27T10:12:30+00:00" }, { "name": "phpunit/phpunit", - "version": "5.6.2", + "version": "6.2.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "cd13b23ac5a519a4708e00736c26ee0bb28b2e01" + "reference": "fa5711d0559fc4b64deba0702be52d41434cbcb7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/cd13b23ac5a519a4708e00736c26ee0bb28b2e01", - "reference": "cd13b23ac5a519a4708e00736c26ee0bb28b2e01", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/fa5711d0559fc4b64deba0702be52d41434cbcb7", + "reference": "fa5711d0559fc4b64deba0702be52d41434cbcb7", "shasum": "" }, "require": { @@ -928,33 +1037,35 @@ "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", - "myclabs/deep-copy": "~1.3", - "php": "^5.6 || ^7.0", - "phpspec/prophecy": "^1.3.1", - "phpunit/php-code-coverage": "^4.0.1", - "phpunit/php-file-iterator": "~1.4", - "phpunit/php-text-template": "~1.2", + "myclabs/deep-copy": "^1.3", + "phar-io/manifest": "^1.0.1", + "phar-io/version": "^1.0", + "php": "^7.0", + "phpspec/prophecy": "^1.7", + "phpunit/php-code-coverage": "^5.2", + "phpunit/php-file-iterator": "^1.4", + "phpunit/php-text-template": "^1.2", "phpunit/php-timer": "^1.0.6", - "phpunit/phpunit-mock-objects": "^3.2", - "sebastian/comparator": "~1.1", - "sebastian/diff": "~1.2", - "sebastian/environment": "^1.3 || ^2.0", - "sebastian/exporter": "~1.2", - "sebastian/global-state": "~1.0", - "sebastian/object-enumerator": "~1.0", - "sebastian/resource-operations": "~1.0", - "sebastian/version": "~1.0|~2.0", - "symfony/yaml": "~2.1|~3.0" + "phpunit/phpunit-mock-objects": "^4.0", + "sebastian/comparator": "^2.0", + "sebastian/diff": "^1.4.3 || ^2.0", + "sebastian/environment": "^3.0.2", + "sebastian/exporter": "^3.1", + "sebastian/global-state": "^1.1 || ^2.0", + "sebastian/object-enumerator": "^3.0.2", + "sebastian/resource-operations": "^1.0", + "sebastian/version": "^2.0" }, "conflict": { - "phpdocumentor/reflection-docblock": "3.0.2" + "phpdocumentor/reflection-docblock": "3.0.2", + "phpunit/dbunit": "<3.0" }, "require-dev": { "ext-pdo": "*" }, "suggest": { "ext-xdebug": "*", - "phpunit/php-invoker": "~1.1" + "phpunit/php-invoker": "^1.1" }, "bin": [ "phpunit" @@ -962,7 +1073,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.6.x-dev" + "dev-master": "6.2.x-dev" } }, "autoload": { @@ -988,33 +1099,33 @@ "testing", "xunit" ], - "time": "2016-10-25 07:40:25" + "time": "2017-07-03T15:54:24+00:00" }, { "name": "phpunit/phpunit-mock-objects", - "version": "3.4.0", + "version": "4.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "238d7a2723bce689c79eeac9c7d5e1d623bb9dc2" + "reference": "d8833b396dce9162bb2eb5d59aee5a3ab3cfa5b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/238d7a2723bce689c79eeac9c7d5e1d623bb9dc2", - "reference": "238d7a2723bce689c79eeac9c7d5e1d623bb9dc2", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/d8833b396dce9162bb2eb5d59aee5a3ab3cfa5b4", + "reference": "d8833b396dce9162bb2eb5d59aee5a3ab3cfa5b4", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.2", - "php": "^5.6 || ^7.0", + "php": "^7.0", "phpunit/php-text-template": "^1.2", - "sebastian/exporter": "^1.2" + "sebastian/exporter": "^3.0" }, "conflict": { - "phpunit/phpunit": "<5.4.0" + "phpunit/phpunit": "<6.0" }, "require-dev": { - "phpunit/phpunit": "^5.4" + "phpunit/phpunit": "^6.0" }, "suggest": { "ext-soap": "*" @@ -1022,7 +1133,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2.x-dev" + "dev-master": "4.0.x-dev" } }, "autoload": { @@ -1047,7 +1158,56 @@ "mock", "xunit" ], - "time": "2016-10-09 07:01:45" + "time": "2017-06-30T08:15:21+00:00" + }, + { + "name": "psr/container", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "time": "2017-02-14T16:28:37+00:00" }, { "name": "psr/log", @@ -1094,27 +1254,27 @@ "psr", "psr-3" ], - "time": "2016-10-10 12:19:37" + "time": "2016-10-10T12:19:37+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.0", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "c36f5e7cfce482fde5bf8d10d41a53591e0198fe" + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/c36f5e7cfce482fde5bf8d10d41a53591e0198fe", - "reference": "c36f5e7cfce482fde5bf8d10d41a53591e0198fe", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", "shasum": "" }, "require": { - "php": ">=5.6" + "php": "^5.6 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "~5" + "phpunit/phpunit": "^5.7 || ^6.0" }, "type": "library", "extra": { @@ -1139,34 +1299,34 @@ ], "description": "Looks up which function or method a line of code belongs to", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2016-02-13 06:45:14" + "time": "2017-03-04T06:30:41+00:00" }, { "name": "sebastian/comparator", - "version": "1.2.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "937efb279bd37a375bcadf584dec0726f84dbf22" + "reference": "20f84f468cb67efee293246e6a09619b891f55f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22", - "reference": "937efb279bd37a375bcadf584dec0726f84dbf22", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/20f84f468cb67efee293246e6a09619b891f55f0", + "reference": "20f84f468cb67efee293246e6a09619b891f55f0", "shasum": "" }, "require": { - "php": ">=5.3.3", - "sebastian/diff": "~1.2", - "sebastian/exporter": "~1.2" + "php": "^7.0", + "sebastian/diff": "^1.2", + "sebastian/exporter": "^3.0" }, "require-dev": { - "phpunit/phpunit": "~4.4" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -1203,27 +1363,27 @@ "compare", "equality" ], - "time": "2015-07-26 15:48:44" + "time": "2017-03-03T06:26:08+00:00" }, { "name": "sebastian/diff", - "version": "1.4.1", + "version": "1.4.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e" + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e", - "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^5.3.3 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "~4.8" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" }, "type": "library", "extra": { @@ -1255,32 +1415,32 @@ "keywords": [ "diff" ], - "time": "2015-12-08 07:14:41" + "time": "2017-05-22T07:24:03+00:00" }, { "name": "sebastian/environment", - "version": "1.3.8", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea" + "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea", - "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5", + "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "php": "^7.0" }, "require-dev": { - "phpunit/phpunit": "^4.8 || ^5.0" + "phpunit/phpunit": "^6.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3.x-dev" + "dev-master": "3.1.x-dev" } }, "autoload": { @@ -1305,34 +1465,34 @@ "environment", "hhvm" ], - "time": "2016-08-18 05:49:44" + "time": "2017-07-01T08:51:00+00:00" }, { "name": "sebastian/exporter", - "version": "1.2.2", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4" + "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4", - "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", + "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", "shasum": "" }, "require": { - "php": ">=5.3.3", - "sebastian/recursion-context": "~1.0" + "php": "^7.0", + "sebastian/recursion-context": "^3.0" }, "require-dev": { "ext-mbstring": "*", - "phpunit/phpunit": "~4.4" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3.x-dev" + "dev-master": "3.1.x-dev" } }, "autoload": { @@ -1372,7 +1532,7 @@ "export", "exporter" ], - "time": "2016-06-17 09:04:28" + "time": "2017-04-03T13:19:02+00:00" }, { "name": "sebastian/finder-facade", @@ -1411,27 +1571,27 @@ ], "description": "FinderFacade is a convenience wrapper for Symfony's Finder component.", "homepage": "https://github.com/sebastianbergmann/finder-facade", - "time": "2016-02-17 07:02:23" + "time": "2016-02-17T07:02:23+00:00" }, { "name": "sebastian/global-state", - "version": "1.1.1", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" + "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", - "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.0" }, "require-dev": { - "phpunit/phpunit": "~4.2" + "phpunit/phpunit": "^6.0" }, "suggest": { "ext-uopz": "*" @@ -1439,7 +1599,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -1462,33 +1622,34 @@ "keywords": [ "global state" ], - "time": "2015-10-12 03:26:01" + "time": "2017-04-27T15:39:26+00:00" }, { "name": "sebastian/object-enumerator", - "version": "1.0.0", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "d4ca2fb70344987502567bc50081c03e6192fb26" + "reference": "31dd3379d16446c5d86dec32ab1ad1f378581ad8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/d4ca2fb70344987502567bc50081c03e6192fb26", - "reference": "d4ca2fb70344987502567bc50081c03e6192fb26", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/31dd3379d16446c5d86dec32ab1ad1f378581ad8", + "reference": "31dd3379d16446c5d86dec32ab1ad1f378581ad8", "shasum": "" }, "require": { - "php": ">=5.6", - "sebastian/recursion-context": "~1.0" + "php": "^7.0", + "sebastian/object-reflector": "^1.0", + "sebastian/recursion-context": "^3.0" }, "require-dev": { - "phpunit/phpunit": "~5" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -1508,29 +1669,73 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2016-01-28 13:25:10" + "time": "2017-03-12T15:17:29+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "773f97c67f28de00d397be301821b06708fca0be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", + "reference": "773f97c67f28de00d397be301821b06708fca0be", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "time": "2017-03-29T09:07:27+00:00" }, { "name": "sebastian/phpcpd", - "version": "2.0.4", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpcpd.git", - "reference": "24d9a880deadb0b8c9680e9cfe78e30b704225db" + "reference": "d7006078b75a34c9250831c3453a2e256a687615" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpcpd/zipball/24d9a880deadb0b8c9680e9cfe78e30b704225db", - "reference": "24d9a880deadb0b8c9680e9cfe78e30b704225db", + "url": "https://api.github.com/repos/sebastianbergmann/phpcpd/zipball/d7006078b75a34c9250831c3453a2e256a687615", + "reference": "d7006078b75a34c9250831c3453a2e256a687615", "shasum": "" }, "require": { - "php": ">=5.3.3", - "phpunit/php-timer": ">=1.0.6", - "sebastian/finder-facade": "~1.1", - "sebastian/version": "~1.0|~2.0", - "symfony/console": "~2.7|^3.0", - "theseer/fdomdocument": "~1.4" + "php": "^5.6|^7.0", + "phpunit/php-timer": "^1.0.6", + "sebastian/finder-facade": "^1.1", + "sebastian/version": "^2.0", + "symfony/console": "^3.0" }, "bin": [ "phpcpd" @@ -1538,7 +1743,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -1559,32 +1764,32 @@ ], "description": "Copy/Paste Detector (CPD) for PHP code.", "homepage": "https://github.com/sebastianbergmann/phpcpd", - "time": "2016-04-17 19:32:49" + "time": "2017-02-05T07:48:01+00:00" }, { "name": "sebastian/recursion-context", - "version": "1.0.2", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "913401df809e99e4f47b27cdd781f4a258d58791" + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/913401df809e99e4f47b27cdd781f4a258d58791", - "reference": "913401df809e99e4f47b27cdd781f4a258d58791", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.0" }, "require-dev": { - "phpunit/phpunit": "~4.4" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -1612,7 +1817,7 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2015-11-11 19:50:13" + "time": "2017-03-03T06:23:57+00:00" }, { "name": "sebastian/resource-operations", @@ -1654,20 +1859,20 @@ ], "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2015-07-28 20:34:47" + "time": "2015-07-28T20:34:47+00:00" }, { "name": "sebastian/version", - "version": "2.0.0", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c829badbd8fdf16a0bad8aa7fa7971c029f1b9c5" + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c829badbd8fdf16a0bad8aa7fa7971c029f1b9c5", - "reference": "c829badbd8fdf16a0bad8aa7fa7971c029f1b9c5", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", "shasum": "" }, "require": { @@ -1697,68 +1902,41 @@ ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", "homepage": "https://github.com/sebastianbergmann/version", - "time": "2016-02-04 12:56:52" + "time": "2016-10-03T07:35:21+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "2.7.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "571e27b6348e5b3a637b2abc82ac0d01e6d7bbed" + "reference": "f9eaf037edf22fdfccf04cb0ab57ebcb1e166219" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/571e27b6348e5b3a637b2abc82ac0d01e6d7bbed", - "reference": "571e27b6348e5b3a637b2abc82ac0d01e6d7bbed", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/f9eaf037edf22fdfccf04cb0ab57ebcb1e166219", + "reference": "f9eaf037edf22fdfccf04cb0ab57ebcb1e166219", "shasum": "" }, "require": { "ext-simplexml": "*", "ext-tokenizer": "*", "ext-xmlwriter": "*", - "php": ">=5.1.2" + "php": ">=5.4.0" }, "require-dev": { "phpunit/phpunit": "~4.0" }, "bin": [ - "scripts/phpcs", - "scripts/phpcbf" + "bin/phpcs", + "bin/phpcbf" ], "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev" + "dev-master": "3.x-dev" } }, - "autoload": { - "classmap": [ - "CodeSniffer.php", - "CodeSniffer/CLI.php", - "CodeSniffer/Exception.php", - "CodeSniffer/File.php", - "CodeSniffer/Fixer.php", - "CodeSniffer/Report.php", - "CodeSniffer/Reporting.php", - "CodeSniffer/Sniff.php", - "CodeSniffer/Tokens.php", - "CodeSniffer/Reports/", - "CodeSniffer/Tokenizers/", - "CodeSniffer/DocGenerators/", - "CodeSniffer/Standards/AbstractPatternSniff.php", - "CodeSniffer/Standards/AbstractScopeSniff.php", - "CodeSniffer/Standards/AbstractVariableSniff.php", - "CodeSniffer/Standards/IncorrectPatternException.php", - "CodeSniffer/Standards/Generic/Sniffs/", - "CodeSniffer/Standards/MySource/Sniffs/", - "CodeSniffer/Standards/PEAR/Sniffs/", - "CodeSniffer/Standards/PSR1/Sniffs/", - "CodeSniffer/Standards/PSR2/Sniffs/", - "CodeSniffer/Standards/Squiz/Sniffs/", - "CodeSniffer/Standards/Zend/Sniffs/" - ] - }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" @@ -1775,33 +1953,42 @@ "phpcs", "standards" ], - "time": "2016-09-01 23:53:02" + "time": "2017-06-14T01:23:49+00:00" }, { "name": "symfony/config", - "version": "v3.1.6", + "version": "v3.3.4", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "949e7e846743a7f9e46dc50eb639d5fde1f53341" + "reference": "a094618deb9a3fe1c3cf500a796e167d0495a274" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/949e7e846743a7f9e46dc50eb639d5fde1f53341", - "reference": "949e7e846743a7f9e46dc50eb639d5fde1f53341", + "url": "https://api.github.com/repos/symfony/config/zipball/a094618deb9a3fe1c3cf500a796e167d0495a274", + "reference": "a094618deb9a3fe1c3cf500a796e167d0495a274", "shasum": "" }, "require": { "php": ">=5.5.9", "symfony/filesystem": "~2.8|~3.0" }, + "conflict": { + "symfony/dependency-injection": "<3.3", + "symfony/finder": "<3.3" + }, + "require-dev": { + "symfony/dependency-injection": "~3.3", + "symfony/finder": "~3.3", + "symfony/yaml": "~3.0" + }, "suggest": { "symfony/yaml": "To use the yaml reference dumper" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -1828,20 +2015,20 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2016-09-25 08:27:07" + "time": "2017-06-16T12:40:34+00:00" }, { "name": "symfony/console", - "version": "v3.1.6", + "version": "v3.3.4", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "c99da1119ae61e15de0e4829196b9fba6f73d065" + "reference": "a97e45d98c59510f085fa05225a1acb74dfe0546" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/c99da1119ae61e15de0e4829196b9fba6f73d065", - "reference": "c99da1119ae61e15de0e4829196b9fba6f73d065", + "url": "https://api.github.com/repos/symfony/console/zipball/a97e45d98c59510f085fa05225a1acb74dfe0546", + "reference": "a97e45d98c59510f085fa05225a1acb74dfe0546", "shasum": "" }, "require": { @@ -1849,20 +2036,28 @@ "symfony/debug": "~2.8|~3.0", "symfony/polyfill-mbstring": "~1.0" }, + "conflict": { + "symfony/dependency-injection": "<3.3" + }, "require-dev": { "psr/log": "~1.0", + "symfony/config": "~3.3", + "symfony/dependency-injection": "~3.3", "symfony/event-dispatcher": "~2.8|~3.0", + "symfony/filesystem": "~2.8|~3.0", + "symfony/http-kernel": "~2.8|~3.0", "symfony/process": "~2.8|~3.0" }, "suggest": { "psr/log": "For using the console logger", "symfony/event-dispatcher": "", + "symfony/filesystem": "", "symfony/process": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -1889,20 +2084,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2016-10-06 01:44:51" + "time": "2017-07-03T13:19:36+00:00" }, { "name": "symfony/debug", - "version": "v3.1.6", + "version": "v3.3.4", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "e2b3f74a67fc928adc3c1b9027f73e1bc01190a8" + "reference": "63b85a968486d95ff9542228dc2e4247f16f9743" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/e2b3f74a67fc928adc3c1b9027f73e1bc01190a8", - "reference": "e2b3f74a67fc928adc3c1b9027f73e1bc01190a8", + "url": "https://api.github.com/repos/symfony/debug/zipball/63b85a968486d95ff9542228dc2e4247f16f9743", + "reference": "63b85a968486d95ff9542228dc2e4247f16f9743", "shasum": "" }, "require": { @@ -1913,13 +2108,12 @@ "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" }, "require-dev": { - "symfony/class-loader": "~2.8|~3.0", "symfony/http-kernel": "~2.8|~3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -1946,40 +2140,50 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2016-09-06 11:02:40" + "time": "2017-07-05T13:02:37+00:00" }, { "name": "symfony/dependency-injection", - "version": "v3.1.6", + "version": "v3.3.4", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "c578891216090069cd6d2e573402e13e39b3ad5c" + "reference": "986a633c92220ecb22ad06820a1df126c7a4f9eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/c578891216090069cd6d2e573402e13e39b3ad5c", - "reference": "c578891216090069cd6d2e573402e13e39b3ad5c", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/986a633c92220ecb22ad06820a1df126c7a4f9eb", + "reference": "986a633c92220ecb22ad06820a1df126c7a4f9eb", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": ">=5.5.9", + "psr/container": "^1.0" + }, + "conflict": { + "symfony/config": "<3.3.1", + "symfony/finder": "<3.3", + "symfony/yaml": "<3.3" + }, + "provide": { + "psr/container-implementation": "1.0" }, "require-dev": { - "symfony/config": "~2.8|~3.0", + "symfony/config": "~3.3", "symfony/expression-language": "~2.8|~3.0", - "symfony/yaml": "~2.8.7|~3.0.7|~3.1.1|~3.2" + "symfony/yaml": "~3.3" }, "suggest": { "symfony/config": "", "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", "symfony/yaml": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -2006,20 +2210,20 @@ ], "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2016-10-24 15:52:44" + "time": "2017-06-20T14:01:46+00:00" }, { "name": "symfony/filesystem", - "version": "v3.1.6", + "version": "v3.3.4", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "0565b61bf098cb4dc09f4f103f033138ae4f42c6" + "reference": "311fa718389efbd8b627c272b9324a62437018cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/0565b61bf098cb4dc09f4f103f033138ae4f42c6", - "reference": "0565b61bf098cb4dc09f4f103f033138ae4f42c6", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/311fa718389efbd8b627c272b9324a62437018cc", + "reference": "311fa718389efbd8b627c272b9324a62437018cc", "shasum": "" }, "require": { @@ -2028,7 +2232,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -2055,20 +2259,20 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2016-10-18 04:30:12" + "time": "2017-06-24T09:29:48+00:00" }, { "name": "symfony/finder", - "version": "v3.1.6", + "version": "v3.3.4", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "205b5ffbb518a98ba2ae60a52656c4a31ab00c6f" + "reference": "baea7f66d30854ad32988c11a09d7ffd485810c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/205b5ffbb518a98ba2ae60a52656c4a31ab00c6f", - "reference": "205b5ffbb518a98ba2ae60a52656c4a31ab00c6f", + "url": "https://api.github.com/repos/symfony/finder/zipball/baea7f66d30854ad32988c11a09d7ffd485810c4", + "reference": "baea7f66d30854ad32988c11a09d7ffd485810c4", "shasum": "" }, "require": { @@ -2077,7 +2281,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -2104,20 +2308,20 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2016-09-28 00:11:12" + "time": "2017-06-01T21:01:25+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.2.0", + "version": "v1.4.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "dff51f72b0706335131b00a7f49606168c582594" + "reference": "f29dca382a6485c3cbe6379f0c61230167681937" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/dff51f72b0706335131b00a7f49606168c582594", - "reference": "dff51f72b0706335131b00a7f49606168c582594", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f29dca382a6485c3cbe6379f0c61230167681937", + "reference": "f29dca382a6485c3cbe6379f0c61230167681937", "shasum": "" }, "require": { @@ -2129,7 +2333,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "1.4-dev" } }, "autoload": { @@ -2163,29 +2367,35 @@ "portable", "shim" ], - "time": "2016-05-18 14:26:46" + "time": "2017-06-09T14:24:12+00:00" }, { "name": "symfony/yaml", - "version": "v3.1.6", + "version": "v3.3.4", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "7ff51b06c6c3d5cc6686df69004a42c69df09e27" + "reference": "1f93a8d19b8241617f5074a123e282575b821df8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/7ff51b06c6c3d5cc6686df69004a42c69df09e27", - "reference": "7ff51b06c6c3d5cc6686df69004a42c69df09e27", + "url": "https://api.github.com/repos/symfony/yaml/zipball/1f93a8d19b8241617f5074a123e282575b821df8", + "reference": "1f93a8d19b8241617f5074a123e282575b821df8", "shasum": "" }, "require": { "php": ">=5.5.9" }, + "require-dev": { + "symfony/console": "~2.8|~3.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -2212,20 +2422,20 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2016-10-24 18:41:13" + "time": "2017-06-15T12:58:50+00:00" }, { "name": "theseer/fdomdocument", - "version": "1.6.1", + "version": "1.6.6", "source": { "type": "git", "url": "https://github.com/theseer/fDOMDocument.git", - "reference": "d9ad139d6c2e8edf5e313ffbe37ff13344cf0684" + "reference": "6e8203e40a32a9c770bcb62fe37e68b948da6dca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/fDOMDocument/zipball/d9ad139d6c2e8edf5e313ffbe37ff13344cf0684", - "reference": "d9ad139d6c2e8edf5e313ffbe37ff13344cf0684", + "url": "https://api.github.com/repos/theseer/fDOMDocument/zipball/6e8203e40a32a9c770bcb62fe37e68b948da6dca", + "reference": "6e8203e40a32a9c770bcb62fe37e68b948da6dca", "shasum": "" }, "require": { @@ -2252,24 +2462,64 @@ ], "description": "The classes contained within this repository extend the standard DOM to use exceptions at all occasions of errors instead of PHP warnings or notices. They also add various custom methods and shortcuts for convenience and to simplify the usage of DOM.", "homepage": "https://github.com/theseer/fDOMDocument", - "time": "2015-05-27 22:58:02" + "time": "2017-06-30T11:53:12+00:00" }, { - "name": "webmozart/assert", + "name": "theseer/tokenizer", "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b", + "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "time": "2017-04-07T12:08:54+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "bb2d123231c095735130cc8f6d31385a44c7b308" + "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/bb2d123231c095735130cc8f6d31385a44c7b308", - "reference": "bb2d123231c095735130cc8f6d31385a44c7b308", + "url": "https://api.github.com/repos/webmozart/assert/zipball/2db61e59ff05fe5126d152bd0655c9ea113e550f", + "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f", "shasum": "" }, "require": { - "php": "^5.3.3|^7.0" + "php": "^5.3.3 || ^7.0" }, "require-dev": { "phpunit/phpunit": "^4.6", @@ -2278,7 +2528,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "1.3-dev" } }, "autoload": { @@ -2302,7 +2552,7 @@ "check", "validate" ], - "time": "2016-08-09 15:02:57" + "time": "2016-11-23T20:04:58+00:00" } ], "aliases": [], diff --git a/data/common.rng b/data/common.rng index a24c14c..8103260 100644 --- a/data/common.rng +++ b/data/common.rng @@ -72,15 +72,29 @@ - - + + (\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+) + - - - + + + + + -?([0-9]{4})(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]) + + + + + + + diff --git a/docs/src/conf.py b/docs/src/conf.py index e70745c..40a57b2 100644 --- a/docs/src/conf.py +++ b/docs/src/conf.py @@ -1,131 +1,34 @@ # -*- coding: utf-8 -*- import os -import sys -import glob -import shutil -from datetime import datetime -from subprocess import call, Popen, PIPE - -try: - import simplejson as json -except ImportError: - import json +import stat +from os.path import join, abspath +from subprocess import call def prepare(globs, locs): - # Where are we? + # RTD defaults the current working directory to where conf.py resides. + # In our case, that means /docs/src/. cwd = os.getcwd() - root = os.path.abspath(os.path.join(cwd, '..', '..')) - - git = Popen('which git 2> %s' % os.devnull, shell=True, stdout=PIPE - ).stdout.read().strip() - doxygen = Popen('which doxygen 2> %s' % os.devnull, shell=True, stdout=PIPE - ).stdout.read().strip() - pybabel = Popen('which pybabel 2> %s' % os.devnull, shell=True, stdout=PIPE - ).stdout.read().strip() - - print "git version:", - sys.stdout.flush() - call([git, '--version']) - - print "doxygen version:", - sys.stdout.flush() - call([doxygen, '--version']) - - print "pybabel version:", - sys.stdout.flush() - call([pybabel, '--version']) - - print "environment:", repr(os.environ) - - print "Running from %s..." % (root, ) + root = abspath(join(cwd, '..', '..')) os.chdir(root) - # Figure several configuration values from git. - origin = Popen([git, 'config', '--local', 'remote.origin.url'], - stdout=PIPE).stdout.read().strip() - git_tag = Popen([git, 'describe', '--tags', '--exact', '--first-parent'], - stdout=PIPE).communicate()[0].strip() - git_hash = Popen([git, 'rev-parse', 'HEAD'], - stdout=PIPE).communicate()[0].strip() - gh_project = ('/'.join(origin.split('/')[-2:])).rpartition(':')[2] - if gh_project.endswith('.git'): - gh_project = gh_project[:-4] - project = gh_project.rpartition('/')[2] - os.environ['SPHINX_PROJECT'] = project - if git_tag: - os.environ['SPHINX_VERSION'] = os.environ['SPHINX_RELEASE'] = git_tag - else: - os.environ['SPHINX_VERSION'] = os.environ['SPHINX_RELEASE'] = 'latest' - locs['tags'].add('devel') + # Download the PHP binary & composer.phar if necessary + base = 'https://github.com/Erebot/Buildenv/releases/download/1.4.0' + for f in ('php', 'composer.phar'): + call(['curl', '-L', '-z', f, '-o', f, '%s/%s' % (base, f)]) - # Clone or update dependencies - buildenv = os.path.join(root, 'vendor', 'erebot', 'buildenv') - natives = os.path.join(root, 'vendor', 'fpoirotte', 'natives4doxygen') - for repository, path in ( - ('git://github.com/Erebot/Buildenv.git', buildenv), - ('git://github.com/fpoirotte/PHPNatives4Doxygen', natives), - ): - if not os.path.isdir(path): - os.makedirs(path) - print "Cloning %s into %s..." % (repository, path) - call([git, 'clone', repository, path]) - elif os.path.isdir(os.path.join(path, '.git')): - os.chdir(path) - print "Updating clone of %s in %s..." % (repository, path) - call([git, 'checkout', 'master']) - call([git, 'pull']) - os.chdir(root) + # Make sure the PHP interpreter is executable + os.chmod('./php', stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR) - composer = json.load(open(os.path.join(root, 'composer.json'), 'r')) + # Call composer to download/update dependencies as necessary + os.environ['COMPOSER_CACHE_DIR'] = './cache' + call(['./php', 'composer.phar', 'update', '-n', '--ignore-platform-reqs', + '--no-progress'], env=os.environ) - # Run doxygen - call([doxygen, os.path.join(root, 'Doxyfile')], env={ - 'COMPONENT_NAME': os.environ['SPHINX_PROJECT'], - 'COMPONENT_VERSION': os.environ['SPHINX_VERSION'], - 'COMPONENT_BRIEF': composer.get('description', ''), - }) - - # Remove extra files/folders. - try: - shutil.rmtree(os.path.join(root, 'build')) - except OSError: - pass - shutil.move( - os.path.join(root, 'docs', 'api', 'html'), - os.path.join(root, 'build', 'apidoc'), - ) - - # Compile translation catalogs. - for po in glob.iglob(os.path.join(root, 'docs', 'i18n', '*', 'LC_MESSAGES', '*.po')): - mo = po[:-3] + '.mo' - call([pybabel, 'compile', '-f', '--statistics', '-i', po, '-o', mo]) - - # Load the real Sphinx configuration file. + # Load the second-stage configuration file. os.chdir(cwd) - real_conf = os.path.join(buildenv, 'sphinx', 'conf.py') - print "Including real configuration file (%s)..." % (real_conf, ) - execfile(real_conf, globs, locs) - - # Patch configuration afterwards. - locs['copyright'] = u'2012-%d, XRL Team. All rights reserved' % \ - datetime.now().year - if 'html_extra_path' not in locs: - locs['html_extra_path'] = [] - locs['html_extra_path'].append(os.path.join(root, 'build')) - locs['html_theme'] = 'haiku' - if 'locale_dirs' not in locs: - locs['locale_dirs'] = [] - locs['locale_dirs'].insert(0, os.path.join(root, 'docs', 'i18n')) - if 'rst_prolog' not in locs: - locs['rst_prolog'] = '' - locs['rst_prolog'] += '\n .. _`this_commit`: https://github.com/%s/commit/%s\n' % ( - gh_project, - git_hash, - ) - - globs['RTD_NEW_THEME'] = False - globs['RTD_OLD_THEME'] = False - + conf = join(root, 'vendor', 'erebot', 'buildenv', 'sphinx', 'rtd.py') + print "Including the second configuration file (%s)..." % (conf, ) + execfile(conf, globs, locs) prepare(globals(), locals()) diff --git a/src/CLI.php b/src/CLI.php index a042350..d91e322 100644 --- a/src/CLI.php +++ b/src/CLI.php @@ -30,25 +30,34 @@ class CLI */ public static function getVersion() { + static $version = null; + + // Return cached version if possible. + if (null !== $version) { + return $version; + } + // From a phar release. if (!strncmp('phar://', __FILE__, 7)) { $phar = new \Phar(__FILE__); $md = $phar->getMetadata(); - return $md['version']; - } - - // From a composer install. - $getver = dirname(__DIR__) . - DIRECTORY_SEPARATOR . 'vendor' . - DIRECTORY_SEPARATOR . 'erebot' . - DIRECTORY_SEPARATOR . 'buildenv' . - DIRECTORY_SEPARATOR . 'get_version.php'; - if (file_exists($getver)) { - return trim(shell_exec($getver)); + $version = $md['version']; + } else { + // From a composer install. + $getver = dirname(__DIR__) . + DIRECTORY_SEPARATOR . 'vendor' . + DIRECTORY_SEPARATOR . 'erebot' . + DIRECTORY_SEPARATOR . 'buildenv' . + DIRECTORY_SEPARATOR . 'get_version.php'; + if (file_exists($getver)) { + $version = trim(shell_exec($getver)); + } else { + // Default guess + $version = 'dev'; + } } - // Default guess. - return 'dev'; + return $version; } /** diff --git a/src/Client.php b/src/Client.php index 7b0f138..c4429aa 100644 --- a/src/Client.php +++ b/src/Client.php @@ -150,11 +150,17 @@ public function __call($method, array $args) $newArgs = array_map('\\fpoirotte\\XRL\\NativeEncoder::convert', $args); $request = new \fpoirotte\XRL\Request($method, $newArgs); $xml = $this->encoder->encodeRequest($request); + + $headers = array( + 'Content-Type: text/xml', + 'User-Agent: XRL/' . \fpoirotte\XRL\CLI::getVersion(), + ); + $options = array( 'http' => array( - 'method' => 'POST', - 'content' => $xml, - 'header' => 'Content-Type: text/xml', + 'method' => 'POST', + 'content' => $xml, + 'header' => $headers, ), ); diff --git a/src/Node.php b/src/Node.php index c140ca7..39d8a94 100644 --- a/src/Node.php +++ b/src/Node.php @@ -92,7 +92,21 @@ public function __construct(\XMLReader $reader, $validate, $subtrees) } if ($validate && !$reader->isValid()) { - throw new \fpoirotte\XRL\Faults\InvalidXmlRpcException(); + $errors = ''; + foreach (libxml_get_errors() as $error) { + $message = trim($error->message); + $file = $error->file; + $line = $error->line; + $column = $error->column; + $errors .= "$message in '$file' on line $line, column $column\n"; + } + if ($errors) { + throw new \fpoirotte\XRL\Faults\InvalidXmlRpcException(trim($errors)); + } else { + // Use a generic error message in case the specific reason + // for the error cannot be pin-pointed. + throw new \fpoirotte\XRL\Faults\InvalidXmlRpcException(); + } } $subtrees = true; diff --git a/src/Types/AbstractDateTime.php b/src/Types/AbstractDateTime.php index e847440..f279cb1 100644 --- a/src/Types/AbstractDateTime.php +++ b/src/Types/AbstractDateTime.php @@ -58,7 +58,7 @@ protected static function parse($value, \DateTimeZone $timezone = null) $result = \DateTime::createFromFormat(static::XMLRPC_FORMAT, $value, $timezone); - if (strcasecmp($value, $result->format(static::XMLRPC_FORMAT))) { + if (!is_object($result) || strcasecmp($value, $result->format(static::XMLRPC_FORMAT))) { throw new \InvalidArgumentException('Invalid date/time'); } diff --git a/src/Types/ArrayType.php b/src/Types/ArrayType.php index 4577801..1abbc4d 100644 --- a/src/Types/ArrayType.php +++ b/src/Types/ArrayType.php @@ -33,7 +33,7 @@ public function get() public function set($value) { if (!is_array($value)) { - throw new \InvalidArgumentException('Expected array value'); + throw new \InvalidArgumentException('Expected an array'); } $keys = array_keys($value); @@ -47,9 +47,9 @@ public function set($value) sort($keys); } - // Hash / associative array. - if ($keys != $numeric) { - throw new \InvalidArgumentException('Expected array value2'); + // Detect associative arrays (which are invalid for this type). + if ($keys !== $numeric) { + throw new \InvalidArgumentException('Expected an indexed array'); } foreach ($value as $val) { diff --git a/src/Types/DateTimeIso8601.php b/src/Types/DateTimeIso8601.php index eda07c9..8a962b5 100644 --- a/src/Types/DateTimeIso8601.php +++ b/src/Types/DateTimeIso8601.php @@ -26,7 +26,7 @@ class DateTimeIso8601 extends \fpoirotte\XRL\Types\AbstractDateTime * We can't just use DateTime::ISO8601 (= "Y-m-d\\TH:i:sO") * because the XML-RPC specification forbids timezones. */ - const XMLRPC_FORMAT = 'Y-m-d\\TH:i:s'; + const XMLRPC_FORMAT = 'Ymd\\TH:i:s'; /// XML-RPC type for this class. const XMLRPC_TYPE = 'dateTime.iso8601'; diff --git a/tests/AttacksTest.php b/tests/AttacksTest.php index 5c8dd17..9dbf1aa 100644 --- a/tests/AttacksTest.php +++ b/tests/AttacksTest.php @@ -11,7 +11,7 @@ namespace fpoirotte\XRL\tests; -class Attacks extends \PHPUnit_Framework_TestCase +class Attacks extends \PHPUnit\Framework\TestCase { // // Server diff --git a/tests/AutoloadTest.php b/tests/AutoloadTest.php index dea10e8..627844c 100644 --- a/tests/AutoloadTest.php +++ b/tests/AutoloadTest.php @@ -11,7 +11,7 @@ namespace fpoirotte\XRL\tests; -class Autoload extends \PHPUnit_Framework_TestCase +class Autoload extends \PHPUnit\Framework\TestCase { public function setUp() { @@ -34,26 +34,17 @@ public function testAutoload2() $this->assertFalse(class_exists('\\fpoirotte\\some_inexistent_class')); } - /** - * @covers \fpoirotte\XRL\Autoload - * @expectedException \PHPUnit_Framework_Error - */ - public function testAutoload3() - { - $dummy = class_exists('\\fpoirotte\\XRL\\some_inexistent_class'); - } - /** * See https://bugs.php.net/bug.php?id=55475 * for more information about the meaning of this test. * * @covers \fpoirotte\XRL\Autoload */ - public function testAutoload4() + public function testAutoload3() { if (version_compare(PHP_VERSION, '5.3.7', '<') || version_compare(PHP_VERSION, '5.3.8', '>')) { - return; + return $this->assertTrue(true); } $this->setExpectedException( '\\Exception', diff --git a/tests/CallableObjectTest.php b/tests/CallableObjectTest.php index 8aeed12..3f61194 100644 --- a/tests/CallableObjectTest.php +++ b/tests/CallableObjectTest.php @@ -42,7 +42,7 @@ public function __invoke($s) } -class CallableObject extends \PHPUnit_Framework_TestCase +class CallableObject extends \PHPUnit\Framework\TestCase { public function referenceProvider() { diff --git a/tests/CapableServerTest.php b/tests/CapableServerTest.php index 37a51d1..9c0bfed 100644 --- a/tests/CapableServerTest.php +++ b/tests/CapableServerTest.php @@ -69,7 +69,7 @@ public function invalidMarkup($foo) } } -class CapableServer extends \PHPUnit_Framework_TestCase +class CapableServer extends \PHPUnit\Framework\TestCase { protected $server; protected $capableServer; diff --git a/tests/ClientTest.php b/tests/ClientTest.php index 8aab0bd..1e11c31 100644 --- a/tests/ClientTest.php +++ b/tests/ClientTest.php @@ -11,7 +11,7 @@ namespace fpoirotte\XRL\tests; -class Client extends \PHPUnit_Framework_TestCase +class Client extends \PHPUnit\Framework\TestCase { public function setUp() { diff --git a/tests/DecoderTest.php b/tests/DecoderTest.php index b5b75db..e1d80f6 100644 --- a/tests/DecoderTest.php +++ b/tests/DecoderTest.php @@ -11,7 +11,7 @@ namespace fpoirotte\XRL\tests; -class Decoder extends \PHPUnit_Framework_TestCase +class Decoder extends \PHPUnit\Framework\TestCase { public function getRequest($path) { diff --git a/tests/EncoderTest.php b/tests/EncoderTest.php index 571fc88..957e829 100644 --- a/tests/EncoderTest.php +++ b/tests/EncoderTest.php @@ -11,7 +11,7 @@ namespace fpoirotte\XRL\tests; -class Encoder extends \PHPUnit_Framework_TestCase +class Encoder extends \PHPUnit\Framework\TestCase { protected $encoder; diff --git a/tests/FaultsTest.php b/tests/FaultsTest.php index 4306694..e801d37 100644 --- a/tests/FaultsTest.php +++ b/tests/FaultsTest.php @@ -11,7 +11,7 @@ namespace fpoirotte\XRL\tests; -class Faults extends \PHPUnit_Framework_TestCase +class Faults extends \PHPUnit\Framework\TestCase { public function setUp() { @@ -92,17 +92,13 @@ public function testInvalidCharacter() */ public function testInvalidXmlRpc() { - $res = $this->server->handle( - 'data://;base64,' . - base64_encode( - '' - ) - ); + $url = 'data://;base64,' . base64_encode(''); + $res = $this->server->handle($url); $expected =<<faultCode -32600faultString fpoirotte\XRL\Faults\InvalidXmlRpcException: - server error. invalid xml-rpc. not conforming to spec + Did not expect element foo there in '$url' on line 1, column 0 EXPECTED; $this->assertSame( diff --git a/tests/NativeDecoderTest.php b/tests/NativeDecoderTest.php index d1ec35b..23dbee8 100644 --- a/tests/NativeDecoderTest.php +++ b/tests/NativeDecoderTest.php @@ -11,7 +11,7 @@ namespace fpoirotte\XRL\tests; -class NativeDecoder extends \PHPUnit_Framework_TestCase +class NativeDecoder extends \PHPUnit\Framework\TestCase { public function setUp() { diff --git a/tests/NativeEncoderTest.php b/tests/NativeEncoderTest.php index 1554ee0..8cfbcd2 100644 --- a/tests/NativeEncoderTest.php +++ b/tests/NativeEncoderTest.php @@ -49,7 +49,7 @@ class NonSerialClass { } -class NativeEncoder extends \PHPUnit_Framework_TestCase +class NativeEncoder extends \PHPUnit\Framework\TestCase { public function setUp() { diff --git a/tests/NodeTest.php b/tests/NodeTest.php index 8160335..373ffd6 100644 --- a/tests/NodeTest.php +++ b/tests/NodeTest.php @@ -11,7 +11,7 @@ namespace fpoirotte\XRL\tests; -class Node extends \PHPUnit_Framework_TestCase +class Node extends \PHPUnit\Framework\TestCase { protected $reader; protected $data; diff --git a/tests/OutputTest.php b/tests/OutputTest.php index 694a5f5..25e02af 100644 --- a/tests/OutputTest.php +++ b/tests/OutputTest.php @@ -11,7 +11,7 @@ namespace fpoirotte\XRL\tests; -class Output extends \PHPUnit_Framework_TestCase +class Output extends \PHPUnit\Framework\TestCase { protected $stream; diff --git a/tests/RequestTest.php b/tests/RequestTest.php index 337d0b2..183052a 100644 --- a/tests/RequestTest.php +++ b/tests/RequestTest.php @@ -11,7 +11,7 @@ namespace fpoirotte\XRL\tests; -class Request extends \PHPUnit_Framework_TestCase +class Request extends \PHPUnit\Framework\TestCase { /** * @covers \fpoirotte\XRL\Request::__construct diff --git a/tests/ResponseTest.php b/tests/ResponseTest.php index 72c02fc..de11338 100644 --- a/tests/ResponseTest.php +++ b/tests/ResponseTest.php @@ -28,7 +28,7 @@ protected function finalize($result) } } -class Response extends \PHPUnit_Framework_TestCase +class Response extends \PHPUnit\Framework\TestCase { /** * @covers \fpoirotte\XRL\Response::__construct diff --git a/tests/ServerTest.php b/tests/ServerTest.php index ad3d200..8fb6bfa 100644 --- a/tests/ServerTest.php +++ b/tests/ServerTest.php @@ -11,7 +11,7 @@ namespace fpoirotte\XRL\tests; -class Server extends \PHPUnit_Framework_TestCase +class Server extends \PHPUnit\Framework\TestCase { protected $server; protected $cls; diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 20d77e0..7de7c51 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -29,3 +29,11 @@ DIRECTORY_SEPARATOR . 'Test' . $stub . '.php' ); } + +// HACK: backward compatibility with PHPUnit releases that lacked namespaces. +if (!class_exists('PHPUnit\\Framework\\TestResult')) { + class_alias('PHPUnit_Framework_TestResult', 'PHPUnit\\Framework\\TestResult'); +} +if (!class_exists('PHPUnit\\Framework\\TestCase')) { + class_alias('PHPUnit_Framework_TestCase', 'PHPUnit\\Framework\\TestCase'); +} diff --git a/tests/testdata/requests/datetime.xml b/tests/testdata/requests/datetime.xml index d4be08c..54eb30c 100644 --- a/tests/testdata/requests/datetime.xml +++ b/tests/testdata/requests/datetime.xml @@ -4,7 +4,7 @@ - 1985-11-28T13:00:00 + 19851128T13:00:00