diff --git a/.gitignore b/.gitignore
index 3b919d2..f4a1aff 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,3 @@
.DS_Store
-composer.lock
vendor
+.idea/
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..dcdf284
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,32 @@
+language: php
+
+php:
+ - 7.2
+ - 7.3
+ - nightly
+
+matrix:
+ fast_finish: true
+ allow_failures:
+ - php: nightly
+
+sudo: false
+
+before_install:
+ - travis_retry composer self-update
+
+install:
+ - travis_retry composer require --no-update satooshi/php-coveralls:^1.0
+ - travis_retry composer install --no-interaction --prefer-dist
+
+before_script:
+ - mkdir -p build/logs
+
+script:
+ - composer run phpstan
+ - travis_wait ./vendor/bin/phpunit --verbose --coverage-clover build/logs/clover.xml
+ - ./vendor/bin/phpcs src tests --standard=psr2 -sp
+ - ./vendor/bin/phpstan analyse src --level=7
+
+after_success:
+ - travis_retry php vendor/bin/coveralls
\ No newline at end of file
diff --git a/composer.json b/composer.json
index 76aed8d..f4280b0 100644
--- a/composer.json
+++ b/composer.json
@@ -1,16 +1,44 @@
{
- "name": "sturgeon/phparse",
- "version": "0.2.1",
+ "name": "phpversions/phparse",
"require-dev": {
"php-vcr/php-vcr": "~1.2",
- "crysalead/kahlan": "~1.2"
+ "crysalead/kahlan": "~1.2",
+ "phpunit/phpunit": "^7.5",
+ "squizlabs/php_codesniffer": "^3.4",
+ "phpstan/phpstan": "^0.10.8"
},
+ "authors": [
+ {
+ "name": "Phil Sturgeon",
+ "email": "phil@philsturgeon.co.uk"
+ },
+ {
+ "name": "Matt Trask",
+ "email": "mjftrask@gmail.com"
+ }
+ ],
+ "license": "MIT",
"autoload": {
"psr-4": {
- "Sturgeon\\PHPArse\\": "src"
+ "PhpVersions\\PHParse\\": "src"
}
},
"require": {
- "naneau/semver": "0.0.7.*"
+ "php": ">=7.2",
+ "naneau/semver": "0.0.7.*",
+ "monolog/monolog": "^1.24"
+ },
+ "scripts": {
+ "phpcs": "phpcs src tests --standard=psr2 -sp --colors",
+ "phpstan": [
+ "vendor/bin/phpstan analyse src --level max --no-progress",
+ "vendor/bin/phpstan analyse src --level 7 --no-progress"
+ ],
+ "phpunit": "phpunit --verbose --colors=always",
+ "test": [
+ "@phpstan",
+ "@phpunit",
+ "@phpcs"
+ ]
}
}
diff --git a/composer.lock b/composer.lock
new file mode 100644
index 0000000..7034cc9
--- /dev/null
+++ b/composer.lock
@@ -0,0 +1,3027 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+ "This file is @generated automatically"
+ ],
+ "content-hash": "148ab604333c5b4aee9c13996aed11f3",
+ "packages": [
+ {
+ "name": "monolog/monolog",
+ "version": "1.24.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/monolog.git",
+ "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266",
+ "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0",
+ "psr/log": "~1.0"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0.0"
+ },
+ "require-dev": {
+ "aws/aws-sdk-php": "^2.4.9 || ^3.0",
+ "doctrine/couchdb": "~1.0@dev",
+ "graylog2/gelf-php": "~1.0",
+ "jakub-onderka/php-parallel-lint": "0.9",
+ "php-amqplib/php-amqplib": "~2.4",
+ "php-console/php-console": "^3.1.3",
+ "phpunit/phpunit": "~4.5",
+ "phpunit/phpunit-mock-objects": "2.3.0",
+ "ruflin/elastica": ">=0.90 <3.0",
+ "sentry/sentry": "^0.13",
+ "swiftmailer/swiftmailer": "^5.3|^6.0"
+ },
+ "suggest": {
+ "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
+ "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
+ "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
+ "ext-mongo": "Allow sending log messages to a MongoDB server",
+ "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
+ "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
+ "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
+ "php-console/php-console": "Allow sending log messages to Google Chrome",
+ "rollbar/rollbar": "Allow sending log messages to Rollbar",
+ "ruflin/elastica": "Allow sending log messages to an Elastic Search server",
+ "sentry/sentry": "Allow sending log messages to a Sentry server"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Monolog\\": "src/Monolog"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
+ "homepage": "http://github.com/Seldaek/monolog",
+ "keywords": [
+ "log",
+ "logging",
+ "psr-3"
+ ],
+ "time": "2018-11-05T09:00:11+00:00"
+ },
+ {
+ "name": "naneau/semver",
+ "version": "0.0.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/naneau/semver.git",
+ "reference": "60ea59641aad840f97f3c9057e2f2b7bc087eaa3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/naneau/semver/zipball/60ea59641aad840f97f3c9057e2f2b7bc087eaa3",
+ "reference": "60ea59641aad840f97f3c9057e2f2b7bc087eaa3",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.0.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-0": {
+ "Naneau\\SemVer\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Maurice Fonk",
+ "email": "maurice@naneau.net",
+ "homepage": "http://mauricefonk.com",
+ "role": "developer"
+ }
+ ],
+ "description": "A decent, standards-compliant, Semantic Versioning (SemVer) parser and library",
+ "homepage": "https://github.com/naneau/semver",
+ "keywords": [
+ "semantic",
+ "semver",
+ "versioning"
+ ],
+ "time": "2013-01-04T00:00:00+00:00"
+ },
+ {
+ "name": "psr/log",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
+ "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Log\\": "Psr/Log/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for logging libraries",
+ "homepage": "https://github.com/php-fig/log",
+ "keywords": [
+ "log",
+ "psr",
+ "psr-3"
+ ],
+ "time": "2018-11-20T15:27:04+00:00"
+ }
+ ],
+ "packages-dev": [
+ {
+ "name": "beberlei/assert",
+ "version": "v2.9.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/beberlei/assert.git",
+ "reference": "ec9e4cf0b63890edce844ee3922e2b95a526e936"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/beberlei/assert/zipball/ec9e4cf0b63890edce844ee3922e2b95a526e936",
+ "reference": "ec9e4cf0b63890edce844ee3922e2b95a526e936",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": ">=5.3"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^2.1.1",
+ "phpunit/phpunit": "^4.8.35|^5.7"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Assert\\": "lib/Assert"
+ },
+ "files": [
+ "lib/Assert/functions.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-2-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de",
+ "role": "Lead Developer"
+ },
+ {
+ "name": "Richard Quadling",
+ "email": "rquadling@gmail.com",
+ "role": "Collaborator"
+ }
+ ],
+ "description": "Thin assertion library for input validation in business models.",
+ "keywords": [
+ "assert",
+ "assertion",
+ "validation"
+ ],
+ "time": "2018-06-11T17:15:25+00:00"
+ },
+ {
+ "name": "composer/xdebug-handler",
+ "version": "1.3.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/xdebug-handler.git",
+ "reference": "dc523135366eb68f22268d069ea7749486458562"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/dc523135366eb68f22268d069ea7749486458562",
+ "reference": "dc523135366eb68f22268d069ea7749486458562",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.2 || ^7.0",
+ "psr/log": "^1.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Composer\\XdebugHandler\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "John Stevenson",
+ "email": "john-stevenson@blueyonder.co.uk"
+ }
+ ],
+ "description": "Restarts a process without xdebug.",
+ "keywords": [
+ "Xdebug",
+ "performance"
+ ],
+ "time": "2018-11-29T10:59:02+00:00"
+ },
+ {
+ "name": "crysalead/kahlan",
+ "version": "1.3.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/crysalead/kahlan.git",
+ "reference": "dca19fad8523b9bf9a5e54874f5e169d4a0d0b6f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/crysalead/kahlan/zipball/dca19fad8523b9bf9a5e54874f5e169d4a0d0b6f",
+ "reference": "dca19fad8523b9bf9a5e54874f5e169d4a0d0b6f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.4"
+ },
+ "bin": [
+ "bin/kahlan"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "kahlan\\": "src/"
+ },
+ "files": [
+ "src/init.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "CrysaLEAD"
+ }
+ ],
+ "description": "Behavior-Driven Development (BDD) library.",
+ "keywords": [
+ "BDD",
+ "Behavior-Driven Development",
+ "Monkey Patching",
+ "TDD",
+ "mock",
+ "stub",
+ "testing",
+ "unit test"
+ ],
+ "abandoned": "kahlan/kahlan",
+ "time": "2016-05-01T23:20:41+00:00"
+ },
+ {
+ "name": "doctrine/instantiator",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/instantiator.git",
+ "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
+ "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "require-dev": {
+ "athletic/athletic": "~0.1.8",
+ "ext-pdo": "*",
+ "ext-phar": "*",
+ "phpunit/phpunit": "^6.2.3",
+ "squizlabs/php_codesniffer": "^3.0.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com",
+ "homepage": "http://ocramius.github.com/"
+ }
+ ],
+ "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
+ "homepage": "https://github.com/doctrine/instantiator",
+ "keywords": [
+ "constructor",
+ "instantiate"
+ ],
+ "time": "2017-07-22T11:58:36+00:00"
+ },
+ {
+ "name": "jean85/pretty-package-versions",
+ "version": "1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Jean85/pretty-package-versions.git",
+ "reference": "75c7effcf3f77501d0e0caa75111aff4daa0dd48"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/75c7effcf3f77501d0e0caa75111aff4daa0dd48",
+ "reference": "75c7effcf3f77501d0e0caa75111aff4daa0dd48",
+ "shasum": ""
+ },
+ "require": {
+ "ocramius/package-versions": "^1.2.0",
+ "php": "^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Jean85\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Alessandro Lai",
+ "email": "alessandro.lai85@gmail.com"
+ }
+ ],
+ "description": "A wrapper for ocramius/package-versions to get pretty versions strings",
+ "keywords": [
+ "composer",
+ "package",
+ "release",
+ "versions"
+ ],
+ "time": "2018-06-13T13:22:40+00:00"
+ },
+ {
+ "name": "myclabs/deep-copy",
+ "version": "1.8.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/myclabs/DeepCopy.git",
+ "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8",
+ "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "replace": {
+ "myclabs/deep-copy": "self.version"
+ },
+ "require-dev": {
+ "doctrine/collections": "^1.0",
+ "doctrine/common": "^2.6",
+ "phpunit/phpunit": "^7.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "DeepCopy\\": "src/DeepCopy/"
+ },
+ "files": [
+ "src/DeepCopy/deep_copy.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Create deep copies (clones) of your objects",
+ "keywords": [
+ "clone",
+ "copy",
+ "duplicate",
+ "object",
+ "object graph"
+ ],
+ "time": "2018-06-11T23:09:50+00:00"
+ },
+ {
+ "name": "nette/bootstrap",
+ "version": "v2.4.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/bootstrap.git",
+ "reference": "268816e3f1bb7426c3a4ceec2bd38a036b532543"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/bootstrap/zipball/268816e3f1bb7426c3a4ceec2bd38a036b532543",
+ "reference": "268816e3f1bb7426c3a4ceec2bd38a036b532543",
+ "shasum": ""
+ },
+ "require": {
+ "nette/di": "~2.4.7",
+ "nette/utils": "~2.4",
+ "php": ">=5.6.0"
+ },
+ "conflict": {
+ "nette/nette": "<2.2"
+ },
+ "require-dev": {
+ "latte/latte": "~2.2",
+ "nette/application": "~2.3",
+ "nette/caching": "~2.3",
+ "nette/database": "~2.3",
+ "nette/forms": "~2.3",
+ "nette/http": "~2.4.0",
+ "nette/mail": "~2.3",
+ "nette/robot-loader": "^2.4.2 || ^3.0",
+ "nette/safe-stream": "~2.2",
+ "nette/security": "~2.3",
+ "nette/tester": "~2.0",
+ "tracy/tracy": "^2.4.1"
+ },
+ "suggest": {
+ "nette/robot-loader": "to use Configurator::createRobotLoader()",
+ "tracy/tracy": "to use Configurator::enableTracy()"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.4-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0",
+ "GPL-3.0"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "π
± Nette Bootstrap: the simple way to configure and bootstrap your Nette application.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "bootstrapping",
+ "configurator",
+ "nette"
+ ],
+ "time": "2018-05-17T12:52:20+00:00"
+ },
+ {
+ "name": "nette/di",
+ "version": "v2.4.14",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/di.git",
+ "reference": "923da3e2c0aa53162ef455472c0ac7787b096c5a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/di/zipball/923da3e2c0aa53162ef455472c0ac7787b096c5a",
+ "reference": "923da3e2c0aa53162ef455472c0ac7787b096c5a",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "nette/neon": "^2.3.3 || ~3.0.0",
+ "nette/php-generator": "^2.6.1 || ~3.0.0",
+ "nette/utils": "^2.4.3 || ~3.0.0",
+ "php": ">=5.6.0"
+ },
+ "conflict": {
+ "nette/bootstrap": "<2.4",
+ "nette/nette": "<2.2"
+ },
+ "require-dev": {
+ "nette/tester": "^2.0",
+ "tracy/tracy": "^2.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.4-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0",
+ "GPL-3.0"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "π Nette Dependency Injection Container: Flexible, compiled and full-featured DIC with perfectly usable autowiring and support for all new PHP 7.1 features.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "compiled",
+ "di",
+ "dic",
+ "factory",
+ "ioc",
+ "nette",
+ "static"
+ ],
+ "time": "2018-09-17T15:47:40+00:00"
+ },
+ {
+ "name": "nette/finder",
+ "version": "v2.4.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/finder.git",
+ "reference": "ee951a656cb8ac622e5dd33474a01fd2470505a0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/finder/zipball/ee951a656cb8ac622e5dd33474a01fd2470505a0",
+ "reference": "ee951a656cb8ac622e5dd33474a01fd2470505a0",
+ "shasum": ""
+ },
+ "require": {
+ "nette/utils": "~2.4",
+ "php": ">=5.6.0"
+ },
+ "conflict": {
+ "nette/nette": "<2.2"
+ },
+ "require-dev": {
+ "nette/tester": "~2.0",
+ "tracy/tracy": "^2.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.4-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0",
+ "GPL-3.0"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "π Nette Finder: find files and directories with an intuitive API.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "filesystem",
+ "glob",
+ "iterator",
+ "nette"
+ ],
+ "time": "2018-06-28T11:49:23+00:00"
+ },
+ {
+ "name": "nette/neon",
+ "version": "v2.4.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/neon.git",
+ "reference": "5e72b1dd3e2d34f0863c5561139a19df6a1ef398"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/neon/zipball/5e72b1dd3e2d34f0863c5561139a19df6a1ef398",
+ "reference": "5e72b1dd3e2d34f0863c5561139a19df6a1ef398",
+ "shasum": ""
+ },
+ "require": {
+ "ext-iconv": "*",
+ "ext-json": "*",
+ "php": ">=5.6.0"
+ },
+ "require-dev": {
+ "nette/tester": "~2.0",
+ "tracy/tracy": "^2.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.4-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0",
+ "GPL-3.0"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "πΈ Nette NEON: encodes and decodes NEON file format.",
+ "homepage": "http://ne-on.org",
+ "keywords": [
+ "export",
+ "import",
+ "neon",
+ "nette",
+ "yaml"
+ ],
+ "time": "2018-03-21T12:12:21+00:00"
+ },
+ {
+ "name": "nette/php-generator",
+ "version": "v3.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/php-generator.git",
+ "reference": "ea90209c2e8a7cd087b2742ca553c047a8df5eff"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/php-generator/zipball/ea90209c2e8a7cd087b2742ca553c047a8df5eff",
+ "reference": "ea90209c2e8a7cd087b2742ca553c047a8df5eff",
+ "shasum": ""
+ },
+ "require": {
+ "nette/utils": "^2.4.2 || ~3.0.0",
+ "php": ">=7.0"
+ },
+ "conflict": {
+ "nette/nette": "<2.2"
+ },
+ "require-dev": {
+ "nette/tester": "^2.0",
+ "tracy/tracy": "^2.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0",
+ "GPL-3.0"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "π Nette PHP Generator: generates neat PHP code for you. Supports new PHP 7.2 features.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "code",
+ "nette",
+ "php",
+ "scaffolding"
+ ],
+ "time": "2018-08-09T14:32:27+00:00"
+ },
+ {
+ "name": "nette/robot-loader",
+ "version": "v3.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/robot-loader.git",
+ "reference": "fc76c70e740b10f091e502b2e393d0be912f38d4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/robot-loader/zipball/fc76c70e740b10f091e502b2e393d0be912f38d4",
+ "reference": "fc76c70e740b10f091e502b2e393d0be912f38d4",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "nette/finder": "^2.3 || ^3.0",
+ "nette/utils": "^2.4 || ^3.0",
+ "php": ">=5.6.0"
+ },
+ "conflict": {
+ "nette/nette": "<2.2"
+ },
+ "require-dev": {
+ "nette/tester": "^2.0",
+ "tracy/tracy": "^2.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0",
+ "GPL-3.0"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "π Nette RobotLoader: high performance and comfortable autoloader that will search and autoload classes within your application.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "autoload",
+ "class",
+ "interface",
+ "nette",
+ "trait"
+ ],
+ "time": "2018-08-13T14:19:06+00:00"
+ },
+ {
+ "name": "nette/utils",
+ "version": "v2.5.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/utils.git",
+ "reference": "17b9f76f2abd0c943adfb556e56f2165460b15ce"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/utils/zipball/17b9f76f2abd0c943adfb556e56f2165460b15ce",
+ "reference": "17b9f76f2abd0c943adfb556e56f2165460b15ce",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.6.0"
+ },
+ "conflict": {
+ "nette/nette": "<2.2"
+ },
+ "require-dev": {
+ "nette/tester": "~2.0",
+ "tracy/tracy": "^2.3"
+ },
+ "suggest": {
+ "ext-gd": "to use Image",
+ "ext-iconv": "to use Strings::webalize() and toAscii()",
+ "ext-intl": "for script transliteration in Strings::webalize() and toAscii()",
+ "ext-json": "to use Nette\\Utils\\Json",
+ "ext-mbstring": "to use Strings::lower() etc...",
+ "ext-xml": "to use Strings::length() etc. when mbstring is not available"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.5-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ],
+ "files": [
+ "src/loader.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0",
+ "GPL-3.0"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "π Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "array",
+ "core",
+ "datetime",
+ "images",
+ "json",
+ "nette",
+ "paginator",
+ "password",
+ "slugify",
+ "string",
+ "unicode",
+ "utf-8",
+ "utility",
+ "validation"
+ ],
+ "time": "2018-09-18T10:22:16+00:00"
+ },
+ {
+ "name": "nikic/php-parser",
+ "version": "v4.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikic/PHP-Parser.git",
+ "reference": "8aae5b59b83bb4d0dbf07b0a835f2680a658f610"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/8aae5b59b83bb4d0dbf07b0a835f2680a658f610",
+ "reference": "8aae5b59b83bb4d0dbf07b0a835f2680a658f610",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": ">=7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.5 || ^7.0"
+ },
+ "bin": [
+ "bin/php-parse"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PhpParser\\": "lib/PhpParser"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Nikita Popov"
+ }
+ ],
+ "description": "A PHP parser written in PHP",
+ "keywords": [
+ "parser",
+ "php"
+ ],
+ "time": "2018-12-26T11:32:39+00:00"
+ },
+ {
+ "name": "ocramius/package-versions",
+ "version": "1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Ocramius/PackageVersions.git",
+ "reference": "4489d5002c49d55576fa0ba786f42dbb009be46f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/4489d5002c49d55576fa0ba786f42dbb009be46f",
+ "reference": "4489d5002c49d55576fa0ba786f42dbb009be46f",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.0.0",
+ "php": "^7.1.0"
+ },
+ "require-dev": {
+ "composer/composer": "^1.6.3",
+ "ext-zip": "*",
+ "infection/infection": "^0.7.1",
+ "phpunit/phpunit": "^7.0.0"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "PackageVersions\\Installer",
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PackageVersions\\": "src/PackageVersions"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
+ }
+ ],
+ "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
+ "time": "2018-02-05T13:05:30+00:00"
+ },
+ {
+ "name": "phar-io/manifest",
+ "version": "1.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/manifest.git",
+ "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4",
+ "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-phar": "*",
+ "phar-io/version": "^2.0",
+ "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": "2018-07-08T19:23:20+00:00"
+ },
+ {
+ "name": "phar-io/version",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/version.git",
+ "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6",
+ "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6",
+ "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": "2018-07-08T19:19:57+00:00"
+ },
+ {
+ "name": "php-vcr/php-vcr",
+ "version": "1.4.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-vcr/php-vcr.git",
+ "reference": "13872a0b291c1a398461ac178850837648998271"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-vcr/php-vcr/zipball/13872a0b291c1a398461ac178850837648998271",
+ "reference": "13872a0b291c1a398461ac178850837648998271",
+ "shasum": ""
+ },
+ "require": {
+ "beberlei/assert": "^2.0",
+ "ext-curl": "*",
+ "symfony/event-dispatcher": "^2.4|^3.0|^4.0",
+ "symfony/yaml": "~2.1|^3.0|^4.0"
+ },
+ "require-dev": {
+ "lapistano/proxy-object": "dev-master#d7184a479f502d5a0f96d0bae73566dbb498da8f",
+ "mikey179/vfsstream": "^1.2",
+ "phpunit/phpunit": "^4.8|^5.0",
+ "sebastian/version": "^1.0.3|^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.4.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Adrian Philipp",
+ "email": "mail@adrian-philipp.com"
+ }
+ ],
+ "description": "Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests.",
+ "time": "2018-05-30T15:10:47+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-common",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
+ "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
+ "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.5"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.6"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": [
+ "src"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "opensource@ijaap.nl"
+ }
+ ],
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
+ "homepage": "http://www.phpdoc.org",
+ "keywords": [
+ "FQSEN",
+ "phpDocumentor",
+ "phpdoc",
+ "reflection",
+ "static analysis"
+ ],
+ "time": "2017-09-11T18:02:19+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-docblock",
+ "version": "4.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
+ "reference": "94fd0001232e47129dd3504189fa1c7225010d08"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08",
+ "reference": "94fd0001232e47129dd3504189fa1c7225010d08",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0",
+ "phpdocumentor/reflection-common": "^1.0.0",
+ "phpdocumentor/type-resolver": "^0.4.0",
+ "webmozart/assert": "^1.0"
+ },
+ "require-dev": {
+ "doctrine/instantiator": "~1.0.5",
+ "mockery/mockery": "^1.0",
+ "phpunit/phpunit": "^6.4"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": [
+ "src/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ }
+ ],
+ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
+ "time": "2017-11-30T07:14:17+00:00"
+ },
+ {
+ "name": "phpdocumentor/type-resolver",
+ "version": "0.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/TypeResolver.git",
+ "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7",
+ "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.5 || ^7.0",
+ "phpdocumentor/reflection-common": "^1.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^0.9.4",
+ "phpunit/phpunit": "^5.2||^4.8.24"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": [
+ "src/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ }
+ ],
+ "time": "2017-07-14T14:27:02+00:00"
+ },
+ {
+ "name": "phpspec/prophecy",
+ "version": "1.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpspec/prophecy.git",
+ "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06",
+ "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/instantiator": "^1.0.2",
+ "php": "^5.3|^7.0",
+ "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
+ "sebastian/comparator": "^1.1|^2.0|^3.0",
+ "sebastian/recursion-context": "^1.0|^2.0|^3.0"
+ },
+ "require-dev": {
+ "phpspec/phpspec": "^2.5|^3.2",
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.8.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Prophecy\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Konstantin Kudryashov",
+ "email": "ever.zet@gmail.com",
+ "homepage": "http://everzet.com"
+ },
+ {
+ "name": "Marcello Duarte",
+ "email": "marcello.duarte@gmail.com"
+ }
+ ],
+ "description": "Highly opinionated mocking framework for PHP 5.3+",
+ "homepage": "https://github.com/phpspec/prophecy",
+ "keywords": [
+ "Double",
+ "Dummy",
+ "fake",
+ "mock",
+ "spy",
+ "stub"
+ ],
+ "time": "2018-08-05T17:53:17+00:00"
+ },
+ {
+ "name": "phpstan/phpdoc-parser",
+ "version": "0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpstan/phpdoc-parser.git",
+ "reference": "ed3223362174b8067729930439e139794e9e514a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/ed3223362174b8067729930439e139794e9e514a",
+ "reference": "ed3223362174b8067729930439e139794e9e514a",
+ "shasum": ""
+ },
+ "require": {
+ "php": "~7.1"
+ },
+ "require-dev": {
+ "consistence/coding-standard": "^2.0.0",
+ "jakub-onderka/php-parallel-lint": "^0.9.2",
+ "phing/phing": "^2.16.0",
+ "phpstan/phpstan": "^0.10@dev",
+ "phpunit/phpunit": "^6.3",
+ "slevomat/coding-standard": "^3.3.0",
+ "symfony/process": "^3.4 || ^4.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "0.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PHPStan\\PhpDocParser\\": [
+ "src/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHPDoc parser with support for nullable, intersection and generic types",
+ "time": "2018-06-20T17:48:01+00:00"
+ },
+ {
+ "name": "phpstan/phpstan",
+ "version": "0.10.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpstan/phpstan.git",
+ "reference": "4f828460a0276180da76c670a0a6e592e7c38b71"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/4f828460a0276180da76c670a0a6e592e7c38b71",
+ "reference": "4f828460a0276180da76c670a0a6e592e7c38b71",
+ "shasum": ""
+ },
+ "require": {
+ "composer/xdebug-handler": "^1.3.0",
+ "jean85/pretty-package-versions": "^1.0.3",
+ "nette/bootstrap": "^2.4 || ^3.0",
+ "nette/di": "^2.4.7 || ^3.0",
+ "nette/robot-loader": "^3.0.1",
+ "nette/utils": "^2.4.5 || ^3.0",
+ "nikic/php-parser": "^4.0.2",
+ "php": "~7.1",
+ "phpstan/phpdoc-parser": "^0.3",
+ "symfony/console": "~3.2 || ~4.0",
+ "symfony/finder": "~3.2 || ~4.0"
+ },
+ "conflict": {
+ "symfony/console": "3.4.16 || 4.1.5"
+ },
+ "require-dev": {
+ "brianium/paratest": "^2.0",
+ "consistence/coding-standard": "^3.5",
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.4.4",
+ "ext-gd": "*",
+ "ext-intl": "*",
+ "ext-mysqli": "*",
+ "ext-zip": "*",
+ "jakub-onderka/php-parallel-lint": "^1.0",
+ "localheinz/composer-normalize": "~0.9.0",
+ "phing/phing": "^2.16.0",
+ "phpstan/phpstan-deprecation-rules": "^0.10.2",
+ "phpstan/phpstan-php-parser": "^0.10",
+ "phpstan/phpstan-phpunit": "^0.10",
+ "phpstan/phpstan-strict-rules": "^0.10",
+ "phpunit/phpunit": "^7.0",
+ "slevomat/coding-standard": "^4.7.2",
+ "squizlabs/php_codesniffer": "^3.3.2"
+ },
+ "bin": [
+ "bin/phpstan"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "0.10-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PHPStan\\": [
+ "src/",
+ "build/PHPStan"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHPStan - PHP Static Analysis Tool",
+ "time": "2019-01-08T09:51:19+00:00"
+ },
+ {
+ "name": "phpunit/php-code-coverage",
+ "version": "6.1.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+ "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d",
+ "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-xmlwriter": "*",
+ "php": "^7.1",
+ "phpunit/php-file-iterator": "^2.0",
+ "phpunit/php-text-template": "^1.2.1",
+ "phpunit/php-token-stream": "^3.0",
+ "sebastian/code-unit-reverse-lookup": "^1.0.1",
+ "sebastian/environment": "^3.1 || ^4.0",
+ "sebastian/version": "^2.0.1",
+ "theseer/tokenizer": "^1.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.0"
+ },
+ "suggest": {
+ "ext-xdebug": "^2.6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "6.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+ "keywords": [
+ "coverage",
+ "testing",
+ "xunit"
+ ],
+ "time": "2018-10-31T16:06:48+00:00"
+ },
+ {
+ "name": "phpunit/php-file-iterator",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+ "reference": "050bedf145a257b1ff02746c31894800e5122946"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946",
+ "reference": "050bedf145a257b1ff02746c31894800e5122946",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-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": "FilterIterator implementation that filters files based on a list of suffixes.",
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+ "keywords": [
+ "filesystem",
+ "iterator"
+ ],
+ "time": "2018-09-13T20:33:42+00:00"
+ },
+ {
+ "name": "phpunit/php-text-template",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Simple template engine.",
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+ "keywords": [
+ "template"
+ ],
+ "time": "2015-06-21T13:50:34+00:00"
+ },
+ {
+ "name": "phpunit/php-timer",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
+ "reference": "8b8454ea6958c3dee38453d3bd571e023108c91f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/8b8454ea6958c3dee38453d3bd571e023108c91f",
+ "reference": "8b8454ea6958c3dee38453d3bd571e023108c91f",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Utility class for timing",
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "keywords": [
+ "timer"
+ ],
+ "time": "2018-02-01T13:07:23+00:00"
+ },
+ {
+ "name": "phpunit/php-token-stream",
+ "version": "3.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-token-stream.git",
+ "reference": "c99e3be9d3e85f60646f152f9002d46ed7770d18"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/c99e3be9d3e85f60646f152f9002d46ed7770d18",
+ "reference": "c99e3be9d3e85f60646f152f9002d46ed7770d18",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": "^7.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.0"
+ },
+ "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"
+ }
+ ],
+ "description": "Wrapper around PHP's tokenizer extension.",
+ "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
+ "keywords": [
+ "tokenizer"
+ ],
+ "time": "2018-10-30T05:52:18+00:00"
+ },
+ {
+ "name": "phpunit/phpunit",
+ "version": "7.5.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
+ "reference": "c23d78776ad415d5506e0679723cb461d71f488f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c23d78776ad415d5506e0679723cb461d71f488f",
+ "reference": "c23d78776ad415d5506e0679723cb461d71f488f",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/instantiator": "^1.1",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-xml": "*",
+ "myclabs/deep-copy": "^1.7",
+ "phar-io/manifest": "^1.0.2",
+ "phar-io/version": "^2.0",
+ "php": "^7.1",
+ "phpspec/prophecy": "^1.7",
+ "phpunit/php-code-coverage": "^6.0.7",
+ "phpunit/php-file-iterator": "^2.0.1",
+ "phpunit/php-text-template": "^1.2.1",
+ "phpunit/php-timer": "^2.0",
+ "sebastian/comparator": "^3.0",
+ "sebastian/diff": "^3.0",
+ "sebastian/environment": "^4.0",
+ "sebastian/exporter": "^3.1",
+ "sebastian/global-state": "^2.0",
+ "sebastian/object-enumerator": "^3.0.3",
+ "sebastian/resource-operations": "^2.0",
+ "sebastian/version": "^2.0.1"
+ },
+ "conflict": {
+ "phpunit/phpunit-mock-objects": "*"
+ },
+ "require-dev": {
+ "ext-pdo": "*"
+ },
+ "suggest": {
+ "ext-soap": "*",
+ "ext-xdebug": "*",
+ "phpunit/php-invoker": "^2.0"
+ },
+ "bin": [
+ "phpunit"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "7.5-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": "The PHP Unit Testing framework.",
+ "homepage": "https://phpunit.de/",
+ "keywords": [
+ "phpunit",
+ "testing",
+ "xunit"
+ ],
+ "time": "2018-12-12T07:20:32+00:00"
+ },
+ {
+ "name": "sebastian/code-unit-reverse-lookup",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
+ "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
+ "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.6 || ^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^5.7 || ^6.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": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Looks up which function or method a line of code belongs to",
+ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
+ "time": "2017-03-04T06:30:41+00:00"
+ },
+ {
+ "name": "sebastian/comparator",
+ "version": "3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/comparator.git",
+ "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da",
+ "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1",
+ "sebastian/diff": "^3.0",
+ "sebastian/exporter": "^3.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.1"
+ },
+ "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": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides the functionality to compare PHP values for equality",
+ "homepage": "https://github.com/sebastianbergmann/comparator",
+ "keywords": [
+ "comparator",
+ "compare",
+ "equality"
+ ],
+ "time": "2018-07-12T15:12:46+00:00"
+ },
+ {
+ "name": "sebastian/diff",
+ "version": "3.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/diff.git",
+ "reference": "366541b989927187c4ca70490a35615d3fef2dce"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/366541b989927187c4ca70490a35615d3fef2dce",
+ "reference": "366541b989927187c4ca70490a35615d3fef2dce",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.0",
+ "symfony/process": "^2 || ^3.3 || ^4"
+ },
+ "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": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Diff implementation",
+ "homepage": "https://github.com/sebastianbergmann/diff",
+ "keywords": [
+ "diff",
+ "udiff",
+ "unidiff",
+ "unified diff"
+ ],
+ "time": "2018-06-10T07:54:39+00:00"
+ },
+ {
+ "name": "sebastian/environment",
+ "version": "4.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/environment.git",
+ "reference": "febd209a219cea7b56ad799b30ebbea34b71eb8f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/febd209a219cea7b56ad799b30ebbea34b71eb8f",
+ "reference": "febd209a219cea7b56ad799b30ebbea34b71eb8f",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.4"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides functionality to handle HHVM/PHP environments",
+ "homepage": "http://www.github.com/sebastianbergmann/environment",
+ "keywords": [
+ "Xdebug",
+ "environment",
+ "hhvm"
+ ],
+ "time": "2018-11-25T09:31:21+00:00"
+ },
+ {
+ "name": "sebastian/exporter",
+ "version": "3.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/exporter.git",
+ "reference": "234199f4528de6d12aaa58b612e98f7d36adb937"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937",
+ "reference": "234199f4528de6d12aaa58b612e98f7d36adb937",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0",
+ "sebastian/recursion-context": "^3.0"
+ },
+ "require-dev": {
+ "ext-mbstring": "*",
+ "phpunit/phpunit": "^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.1.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
+ ],
+ "description": "Provides the functionality to export PHP variables for visualization",
+ "homepage": "http://www.github.com/sebastianbergmann/exporter",
+ "keywords": [
+ "export",
+ "exporter"
+ ],
+ "time": "2017-04-03T13:19:02+00:00"
+ },
+ {
+ "name": "sebastian/global-state",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/global-state.git",
+ "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
+ "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.0"
+ },
+ "suggest": {
+ "ext-uopz": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Snapshotting of global state",
+ "homepage": "http://www.github.com/sebastianbergmann/global-state",
+ "keywords": [
+ "global state"
+ ],
+ "time": "2017-04-27T15:39:26+00:00"
+ },
+ {
+ "name": "sebastian/object-enumerator",
+ "version": "3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
+ "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5",
+ "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0",
+ "sebastian/object-reflector": "^1.1.1",
+ "sebastian/recursion-context": "^3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Traverses array structures and object graphs to enumerate all referenced objects",
+ "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
+ "time": "2017-08-03T12:35:26+00:00"
+ },
+ {
+ "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/recursion-context",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
+ "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
+ "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
+ ],
+ "description": "Provides functionality to recursively process PHP variables",
+ "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
+ "time": "2017-03-03T06:23:57+00:00"
+ },
+ {
+ "name": "sebastian/resource-operations",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/resource-operations.git",
+ "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9",
+ "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides a list of PHP built-in functions that operate on resources",
+ "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
+ "time": "2018-10-04T04:07:39+00:00"
+ },
+ {
+ "name": "sebastian/version",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/version.git",
+ "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
+ "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.6"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+ "homepage": "https://github.com/sebastianbergmann/version",
+ "time": "2016-10-03T07:35:21+00:00"
+ },
+ {
+ "name": "squizlabs/php_codesniffer",
+ "version": "3.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
+ "reference": "379deb987e26c7cd103a7b387aea178baec96e48"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/379deb987e26c7cd103a7b387aea178baec96e48",
+ "reference": "379deb987e26c7cd103a7b387aea178baec96e48",
+ "shasum": ""
+ },
+ "require": {
+ "ext-simplexml": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlwriter": "*",
+ "php": ">=5.4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
+ },
+ "bin": [
+ "bin/phpcs",
+ "bin/phpcbf"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.x-dev"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Greg Sherwood",
+ "role": "lead"
+ }
+ ],
+ "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
+ "homepage": "http://www.squizlabs.com/php-codesniffer",
+ "keywords": [
+ "phpcs",
+ "standards"
+ ],
+ "time": "2018-12-19T23:57:18+00:00"
+ },
+ {
+ "name": "symfony/console",
+ "version": "v4.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/console.git",
+ "reference": "4dff24e5d01e713818805c1862d2e3f901ee7dd0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/console/zipball/4dff24e5d01e713818805c1862d2e3f901ee7dd0",
+ "reference": "4dff24e5d01e713818805c1862d2e3f901ee7dd0",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1.3",
+ "symfony/contracts": "^1.0",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<3.4",
+ "symfony/process": "<3.3"
+ },
+ "require-dev": {
+ "psr/log": "~1.0",
+ "symfony/config": "~3.4|~4.0",
+ "symfony/dependency-injection": "~3.4|~4.0",
+ "symfony/event-dispatcher": "~3.4|~4.0",
+ "symfony/lock": "~3.4|~4.0",
+ "symfony/process": "~3.4|~4.0"
+ },
+ "suggest": {
+ "psr/log-implementation": "For using the console logger",
+ "symfony/event-dispatcher": "",
+ "symfony/lock": "",
+ "symfony/process": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.2-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Console\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Console Component",
+ "homepage": "https://symfony.com",
+ "time": "2018-11-27T07:40:44+00:00"
+ },
+ {
+ "name": "symfony/contracts",
+ "version": "v1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/contracts.git",
+ "reference": "1aa7ab2429c3d594dd70689604b5cf7421254cdf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/contracts/zipball/1aa7ab2429c3d594dd70689604b5cf7421254cdf",
+ "reference": "1aa7ab2429c3d594dd70689604b5cf7421254cdf",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1.3"
+ },
+ "require-dev": {
+ "psr/cache": "^1.0",
+ "psr/container": "^1.0"
+ },
+ "suggest": {
+ "psr/cache": "When using the Cache contracts",
+ "psr/container": "When using the Service contracts",
+ "symfony/cache-contracts-implementation": "",
+ "symfony/service-contracts-implementation": "",
+ "symfony/translation-contracts-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\": ""
+ },
+ "exclude-from-classmap": [
+ "**/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "A set of abstractions extracted out of the Symfony components",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "time": "2018-12-05T08:06:11+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher",
+ "version": "v4.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher.git",
+ "reference": "921f49c3158a276d27c0d770a5a347a3b718b328"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/921f49c3158a276d27c0d770a5a347a3b718b328",
+ "reference": "921f49c3158a276d27c0d770a5a347a3b718b328",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1.3",
+ "symfony/contracts": "^1.0"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<3.4"
+ },
+ "require-dev": {
+ "psr/log": "~1.0",
+ "symfony/config": "~3.4|~4.0",
+ "symfony/dependency-injection": "~3.4|~4.0",
+ "symfony/expression-language": "~3.4|~4.0",
+ "symfony/stopwatch": "~3.4|~4.0"
+ },
+ "suggest": {
+ "symfony/dependency-injection": "",
+ "symfony/http-kernel": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.2-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\EventDispatcher\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony EventDispatcher Component",
+ "homepage": "https://symfony.com",
+ "time": "2018-12-01T08:52:38+00:00"
+ },
+ {
+ "name": "symfony/finder",
+ "version": "v4.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/finder.git",
+ "reference": "e53d477d7b5c4982d0e1bfd2298dbee63d01441d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/e53d477d7b5c4982d0e1bfd2298dbee63d01441d",
+ "reference": "e53d477d7b5c4982d0e1bfd2298dbee63d01441d",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.2-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Finder\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Finder Component",
+ "homepage": "https://symfony.com",
+ "time": "2018-11-11T19:52:12+00:00"
+ },
+ {
+ "name": "symfony/polyfill-ctype",
+ "version": "v1.10.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-ctype.git",
+ "reference": "e3d826245268269cd66f8326bd8bc066687b4a19"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19",
+ "reference": "e3d826245268269cd66f8326bd8bc066687b4a19",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "suggest": {
+ "ext-ctype": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.9-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Ctype\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ },
+ {
+ "name": "Gert de Pagter",
+ "email": "BackEndTea@gmail.com"
+ }
+ ],
+ "description": "Symfony polyfill for ctype functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "ctype",
+ "polyfill",
+ "portable"
+ ],
+ "time": "2018-08-06T14:22:27+00:00"
+ },
+ {
+ "name": "symfony/polyfill-mbstring",
+ "version": "v1.10.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
+ "reference": "c79c051f5b3a46be09205c73b80b346e4153e494"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494",
+ "reference": "c79c051f5b3a46be09205c73b80b346e4153e494",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "suggest": {
+ "ext-mbstring": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.9-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Mbstring\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for the Mbstring extension",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "mbstring",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "time": "2018-09-21T13:07:52+00:00"
+ },
+ {
+ "name": "symfony/yaml",
+ "version": "v4.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/yaml.git",
+ "reference": "c41175c801e3edfda90f32e292619d10c27103d7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/c41175c801e3edfda90f32e292619d10c27103d7",
+ "reference": "c41175c801e3edfda90f32e292619d10c27103d7",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1.3",
+ "symfony/polyfill-ctype": "~1.8"
+ },
+ "conflict": {
+ "symfony/console": "<3.4"
+ },
+ "require-dev": {
+ "symfony/console": "~3.4|~4.0"
+ },
+ "suggest": {
+ "symfony/console": "For validating YAML files using the lint command"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.2-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Yaml\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Yaml Component",
+ "homepage": "https://symfony.com",
+ "time": "2018-11-11T19:52:12+00:00"
+ },
+ {
+ "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.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webmozart/assert.git",
+ "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9",
+ "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.3 || ^7.0",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.6",
+ "sebastian/version": "^1.0.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Webmozart\\Assert\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Assertions to validate method input/output with nice error messages.",
+ "keywords": [
+ "assert",
+ "check",
+ "validate"
+ ],
+ "time": "2018-12-25T11:19:39+00:00"
+ }
+ ],
+ "aliases": [],
+ "minimum-stability": "stable",
+ "stability-flags": [],
+ "prefer-stable": false,
+ "prefer-lowest": false,
+ "platform": {
+ "php": ">=7.2"
+ },
+ "platform-dev": []
+}
diff --git a/phpunit.xml b/phpunit.xml
new file mode 100644
index 0000000..17dc676
--- /dev/null
+++ b/phpunit.xml
@@ -0,0 +1,21 @@
+
+
+
+
+ ./tests
+
+
+
+
+ ./src
+
+
+
\ No newline at end of file
diff --git a/src/Info.php b/src/Info.php
index 1c673a5..fc49dc7 100644
--- a/src/Info.php
+++ b/src/Info.php
@@ -1,21 +1,32 @@
-version = $version;
$this->infoItems = $infoItems;
}
- public function phpVersion()
+ public function phpVersion() : string
{
return $this->version;
}
- public function phpSemanticVersion()
+ public function phpSemanticVersion() : Version
{
return SemVerParser::parse(
$this->normalizeSemVerSuffix(
diff --git a/src/Parser.php b/src/Parser.php
index dc74084..6534f1a 100644
--- a/src/Parser.php
+++ b/src/Parser.php
@@ -1,7 +1,11 @@
-xpath = $this->loadXPathDocument($html);
if (! $this->isValidPhpInfoHtml()) {
@@ -21,47 +25,51 @@ public function __construct($html)
}
}
- public function parse()
+ public function parse() : Info
{
return new Info($this->locatePhpVersion(), $this->locateGeneralInfo());
}
- public function locatePhpVersion()
+ public function locatePhpVersion() : string
{
$node = $this->xpath->query('//body//h1')[0];
+
return str_replace('PHP Version ', '', $node->nodeValue);
}
- public function locateGeneralInfo()
+ public function locateGeneralInfo() : array
{
$rows = $this->xpath->query('//body//table[2]/tr');
+
$infoPairs = [];
+
foreach ($rows as $row) {
$label = $this->cleanLabel($row->firstChild->textContent);
$value = $this->cleanValue($row->lastChild->textContent);
$infoPairs[$label] = $value;
}
+
return $infoPairs;
}
- private function cleanLabel($label)
+ private function cleanLabel($label) : string
{
return trim($label);
}
- private function cleanValue($label)
+ private function cleanValue($label) : string
{
return trim($label);
}
- private function loadXPathDocument($html)
+ private function loadXPathDocument($html) : DOMXPath
{
$document = new DOMDocument;
$document->loadHTML($html);
- return new DOMXpath($document);
+ return new DOMXPath($document);
}
- private function isValidPhpInfoHtml()
+ private function isValidPhpInfoHtml() : bool
{
return strpos($this->xpath->query('//head//title')[0]->nodeValue, 'phpinfo()') !== false;
}
diff --git a/test-info.html b/test-info.html
new file mode 100644
index 0000000..3cd223c
--- /dev/null
+++ b/test-info.html
@@ -0,0 +1,1179 @@
+
+
+
+PHP 7.3.0 - phpinfo()
+
+
+
+ PHP Version 7.3.0
+ |
+
+
+| System | Windows NT VMM 10.0 build 14393 (Windows Server 2016) AMD64 |
+| Build Date | Dec 6 2018 01:49:04 |
+| Compiler | MSVC15 (Visual C++ 2017) |
+| Architecture | x64 |
+| Configure Command | cscript /nologo configure.js "--enable-snapshot-build" "--enable-debug-pack" "--disable-zts" "--with-pdo-oci=c:\php-snap-build\deps_aux\oracle\x64\instantclient_12_1\sdk,shared" "--with-oci8-12c=c:\php-snap-build\deps_aux\oracle\x64\instantclient_12_1\sdk,shared" "--enable-object-out-dir=../obj/" "--enable-com-dotnet=shared" "--without-analyzer" "--with-pgo" |
+| Server API | CGI/FastCGI |
+| Virtual Directory Support | disabled |
+| Configuration File (php.ini) Path | C:\WINDOWS |
+| Loaded Configuration File | C:\ScriptEngines\Php\parsers\nts\v7_3\php.ini |
+| Scan this dir for additional .ini files | (none) |
+| Additional .ini files parsed | (none) |
+| PHP API | 20180731 |
+| PHP Extension | 20180731 |
+| Zend Extension | 320180731 |
+| Zend Extension Build | API320180731,NTS,VC15 |
+| PHP Extension Build | API20180731,NTS,VC15 |
+| Debug Build | no |
+| Thread Safety | disabled |
+| Zend Signal Handling | disabled |
+| Zend Memory Manager | enabled |
+| Zend Multibyte Support | provided by mbstring |
+| IPv6 Support | enabled |
+| DTrace Support | disabled |
+| Registered PHP Streams | php, file, glob, data, http, ftp, zip, compress.zlib, compress.bzip2, https, ftps, phar, sqlsrv |
+| Registered Stream Socket Transports | tcp, udp, ssl, tls, tlsv1.0, tlsv1.1, tlsv1.2 |
+| Registered Stream Filters | convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, zlib.*, bzip2.* |
+
+
+
+
+This program makes use of the Zend Scripting Language Engine: Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Technologies
|
+
+
+
Configuration
+
+
+| BCMath support | enabled |
+
+
+| Directive | Local Value | Master Value |
+| bcmath.scale | 0 | 0 |
+
+
+
+| BZip2 Support | Enabled |
+| Stream Wrapper support | compress.bzip2:// |
+| Stream Filter support | bzip2.decompress, bzip2.compress |
+| BZip2 Version | 1.0.6, 6-Sept-2010 |
+
+
+
+| Calendar support | enabled |
+
+
+
+| Directive | Local Value | Master Value |
+| cgi.check_shebang_line | 1 | 1 |
+| cgi.discard_path | 0 | 0 |
+| cgi.fix_pathinfo | 1 | 1 |
+| cgi.force_redirect | 0 | 0 |
+| cgi.nph | 0 | 0 |
+| cgi.redirect_status_env | no value | no value |
+| cgi.rfc2616_headers | 0 | 0 |
+| fastcgi.impersonate | 1 | 1 |
+| fastcgi.logging | 0 | 0 |
+
+
+
+
+| Directive | Local Value | Master Value |
+| allow_url_fopen | On | On |
+| allow_url_include | Off | Off |
+| arg_separator.input | & | & |
+| arg_separator.output | & | & |
+| auto_append_file | no value | no value |
+| auto_globals_jit | On | On |
+| auto_prepend_file | no value | no value |
+| browscap | C:\ScriptEngines\Php\common\files\browscap\lite_php_browscap.ini | C:\ScriptEngines\Php\common\files\browscap\lite_php_browscap.ini |
+| default_charset | UTF-8 | UTF-8 |
+| default_mimetype | text/html | text/html |
+| disable_classes | no value | no value |
+| disable_functions | mail | mail |
+| display_errors | On | On |
+| display_startup_errors | Off | Off |
+| doc_root | no value | no value |
+| docref_ext | no value | no value |
+| docref_root | no value | no value |
+| enable_dl | Off | Off |
+| enable_post_data_reading | On | On |
+| error_append_string | no value | no value |
+| error_log | no value | no value |
+| error_prepend_string | no value | no value |
+| error_reporting | 22517 | 22517 |
+| expose_php | Off | Off |
+| extension_dir | C:\ScriptEngines\Php\parsers\nts\v7_3\extensions | C:\ScriptEngines\Php\parsers\nts\v7_3\extensions |
+| file_uploads | On | On |
+| hard_timeout | 2 | 2 |
+| highlight.comment | #FF9900 | #FF9900 |
+| highlight.default | #0000BB | #0000BB |
+| highlight.html | #000000 | #000000 |
+| highlight.keyword | #007700 | #007700 |
+| highlight.string | #DD0000 | #DD0000 |
+| html_errors | On | On |
+| ignore_repeated_errors | Off | Off |
+| ignore_repeated_source | Off | Off |
+| ignore_user_abort | Off | Off |
+| implicit_flush | Off | Off |
+| include_path | . | . |
+| input_encoding | no value | no value |
+| internal_encoding | no value | no value |
+| log_errors | Off | Off |
+| log_errors_max_len | 1024 | 1024 |
+| mail.add_x_header | On | On |
+| mail.force_extra_parameters | no value | no value |
+| mail.log | no value | no value |
+| max_execution_time | 120 | 120 |
+| max_file_uploads | 50 | 50 |
+| max_input_nesting_level | 64 | 64 |
+| max_input_time | 60 | 60 |
+| max_input_vars | 5000 | 5000 |
+| memory_limit | 256M | 256M |
+| open_basedir | no value | no value |
+| output_buffering | 4096 | 4096 |
+| output_encoding | no value | no value |
+| output_handler | no value | no value |
+| post_max_size | 128M | 128M |
+| precision | 14 | 14 |
+| realpath_cache_size | 256K | 256K |
+| realpath_cache_ttl | 3600 | 3600 |
+| register_argc_argv | Off | Off |
+| report_memleaks | Off | Off |
+| report_zend_debug | On | On |
+| request_order | GP | GP |
+| sendmail_from | phpmailer@anaxanet.com | phpmailer@anaxanet.com |
+| sendmail_path | C:\ScriptUtilities\bin\sendmail\sendmail.exe | C:\ScriptUtilities\bin\sendmail\sendmail.exe |
+| serialize_precision | -1 | -1 |
+| short_open_tag | On | On |
+| SMTP | mailer.anaxanet.com | mailer.anaxanet.com |
+| smtp_port | 25 | 25 |
+| sys_temp_dir | no value | no value |
+| syslog.facility | LOG_USER | LOG_USER |
+| syslog.filter | no-ctrl | no-ctrl |
+| syslog.ident | php | php |
+| track_errors | Off | Off |
+| unserialize_callback_func | no value | no value |
+| upload_max_filesize | 64M | 64M |
+| upload_tmp_dir | C:\ScriptEngines\Php\temp\upload_temp | C:\ScriptEngines\Php\temp\upload_temp |
+| user_dir | no value | no value |
+| user_ini.cache_ttl | 300 | 300 |
+| user_ini.filename | no value | no value |
+| variables_order | GPCS | GPCS |
+| windows.show_crt_warning | Off | Off |
+| xmlrpc_error_number | 0 | 0 |
+| xmlrpc_errors | Off | Off |
+| zend.assertions | -1 | -1 |
+| zend.detect_unicode | On | On |
+| zend.enable_gc | On | On |
+| zend.multibyte | Off | Off |
+| zend.script_encoding | no value | no value |
+
+
+
+| ctype functions | enabled |
+
+
+
+| cURL support | enabled |
+| cURL Information | 7.61.1 |
+| Age | 4 |
+| Features |
+| AsynchDNS | Yes |
+| CharConv | No |
+| Debug | No |
+| GSS-Negotiate | No |
+| IDN | Yes |
+| IPv6 | Yes |
+| krb4 | No |
+| Largefile | Yes |
+| libz | Yes |
+| NTLM | Yes |
+| NTLMWB | No |
+| SPNEGO | Yes |
+| SSL | Yes |
+| SSPI | Yes |
+| TLS-SRP | No |
+| HTTP2 | Yes |
+| GSSAPI | No |
+| KERBEROS5 | Yes |
+| UNIX_SOCKETS | No |
+| PSL | No |
+| HTTPS_PROXY | Yes |
+| MULTI_SSL | No |
+| BROTLI | No |
+| Protocols | dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, pop3, pop3s, rtsp, scp, sftp, smb, smbs, smtp, smtps, telnet, tftp |
+| Host | x86_64-pc-win32 |
+| SSL Version | OpenSSL/1.1.0j |
+| ZLib Version | 1.2.11 |
+| libSSH Version | libssh2/1.8.0 |
+
+
+| Directive | Local Value | Master Value |
+| curl.cainfo | C:\ScriptEngines\Php\common\files\curl\ca-bundle.pem | C:\ScriptEngines\Php\common\files\curl\ca-bundle.pem |
+
+
+
+| date/time support | enabled |
+| timelib version | 2018.01RC2 |
+| "Olson" Timezone Database Version | 2018.5 |
+| Timezone Database | internal |
+| Default timezone | America/Denver |
+
+
+| Directive | Local Value | Master Value |
+| date.default_latitude | 31.7667 | 31.7667 |
+| date.default_longitude | 35.2333 | 35.2333 |
+| date.sunrise_zenith | 90.583333 | 90.583333 |
+| date.sunset_zenith | 90.583333 | 90.583333 |
+| date.timezone | America/Denver | America/Denver |
+
+
+
+| DOM/XML | enabled |
+| DOM/XML API Version | 20031129 |
+| libxml Version | 2.9.8 |
+| HTML Support | enabled |
+| XPath Support | enabled |
+| XPointer Support | enabled |
+| Schema Support | enabled |
+| RelaxNG Support | enabled |
+
+
+
+| enchant support | enabled |
+| Libenchant Version | 1.5.0 or later |
+
+
+| ispell | Ispell Provider | C:\ScriptEngines\Php\parsers\nts\v7_3\lib\enchant\libenchant_ispell.dll |
+| myspell | Myspell Provider | C:\ScriptEngines\Php\parsers\nts\v7_3\lib\enchant\libenchant_myspell.dll |
+
+
+
+| EXIF Support | enabled |
+| Supported EXIF Version | 0220 |
+| Supported filetypes | JPEG, TIFF |
+| Multibyte decoding support using mbstring | enabled |
+| Extended EXIF tag formats | Canon, Casio, Fujifilm, Nikon, Olympus, Samsung, Panasonic, DJI, Sony, Pentax, Minolta, Sigma, Foveon, Kyocera, Ricoh, AGFA, Epson |
+
+
+| Directive | Local Value | Master Value |
+| exif.decode_jis_intel | JIS | JIS |
+| exif.decode_jis_motorola | JIS | JIS |
+| exif.decode_unicode_intel | UCS-2LE | UCS-2LE |
+| exif.decode_unicode_motorola | UCS-2BE | UCS-2BE |
+| exif.encode_jis | no value | no value |
+| exif.encode_unicode | ISO-8859-15 | ISO-8859-15 |
+
+
+
+| fileinfo support | enabled |
+| libmagic | 533 |
+
+
+
+| Input Validation and Filtering | enabled |
+
+
+| Directive | Local Value | Master Value |
+| filter.default | unsafe_raw | unsafe_raw |
+| filter.default_flags | no value | no value |
+
+
+
+| FTP support | enabled |
+| FTPS support | enabled |
+
+
+
+| GD Support | enabled |
+| GD Version | bundled (2.1.0 compatible) |
+| FreeType Support | enabled |
+| FreeType Linkage | with freetype |
+| FreeType Version | 2.9.1 |
+| GIF Read Support | enabled |
+| GIF Create Support | enabled |
+| JPEG Support | enabled |
+| libJPEG Version | 9 compatible |
+| PNG Support | enabled |
+| libPNG Version | 1.6.34 |
+| WBMP Support | enabled |
+| XPM Support | enabled |
+| libXpm Version | 30512 |
+| XBM Support | enabled |
+| WebP Support | enabled |
+
+
+| Directive | Local Value | Master Value |
+| gd.jpeg_ignore_warning | 1 | 1 |
+
+
+
+| GetText Support | enabled |
+
+
+
+| gmp support | enabled |
+| MPIR version | 3.0.0 |
+
+
+
+| hash support | enabled |
+| Hashing Engines | md2 md4 md5 sha1 sha224 sha256 sha384 sha512/224 sha512/256 sha512 sha3-224 sha3-256 sha3-384 sha3-512 ripemd128 ripemd160 ripemd256 ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,4 tiger192,4 snefru snefru256 gost gost-crypto adler32 crc32 crc32b fnv132 fnv1a32 fnv164 fnv1a64 joaat haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,5 haval224,5 haval256,5 |
+
+
+| MHASH support | Enabled |
+| MHASH API Version | Emulated Support |
+
+
+
+| iconv support | enabled |
+| iconv implementation | "libiconv" |
+| iconv library version | 1.15 |
+
+
+| Directive | Local Value | Master Value |
+| iconv.input_encoding | no value | no value |
+| iconv.internal_encoding | no value | no value |
+| iconv.output_encoding | no value | no value |
+
+
+
+| IMAP c-Client Version | 2007f |
+| SSL Support | enabled |
+
+
+| Directive | Local Value | Master Value |
+| imap.enable_insecure_rsh | Off | Off |
+
+
+
+| Internationalization support | enabled |
+| ICU version | 63.1 |
+| ICU Data version | 63.1 |
+| ICU TZData version | 2018e |
+| ICU Unicode version | 11.0 |
+
+
+| Directive | Local Value | Master Value |
+| intl.default_locale | no value | no value |
+| intl.error_level | 0 | 0 |
+| intl.use_exceptions | 0 | 0 |
+
+
+
+| json support | enabled |
+| json version | 1.7.0 |
+
+
+
+| libXML support | active |
+| libXML Compiled Version | 2.9.8 |
+| libXML Loaded Version | 20908 |
+| libXML streams | enabled |
+
+
+
+| Multibyte Support | enabled |
+| Multibyte string engine | libmbfl |
+| HTTP input encoding translation | disabled |
+| libmbfl version | 1.3.2 |
+| oniguruma version | 6.9.0 |
+
+
+| mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1. |
+
+
+| Multibyte (japanese) regex support | enabled |
+| Multibyte regex (oniguruma) version | 6.9.0 |
+
+
+| Directive | Local Value | Master Value |
+| mbstring.detect_order | no value | no value |
+| mbstring.encoding_translation | Off | Off |
+| mbstring.func_overload | 0 | 0 |
+| mbstring.http_input | no value | no value |
+| mbstring.http_output | no value | no value |
+| mbstring.http_output_conv_mimetypes | ^(text/|application/xhtml\+xml) | ^(text/|application/xhtml\+xml) |
+| mbstring.internal_encoding | no value | no value |
+| mbstring.language | neutral | neutral |
+| mbstring.strict_detection | Off | Off |
+| mbstring.substitute_character | no value | no value |
+
+
+
+| MysqlI Support | enabled |
+| Client API library version | mysqlnd 5.0.12-dev - 20150407 - $Id: 401a40ebd5e281cf22215acdc170723a1519aaa9 $ |
+| Active Persistent Links | 0 |
+| Inactive Persistent Links | 0 |
+| Active Links | 0 |
+
+
+| Directive | Local Value | Master Value |
+| mysqli.allow_local_infile | On | On |
+| mysqli.allow_persistent | On | On |
+| mysqli.default_host | no value | no value |
+| mysqli.default_port | 3306 | 3306 |
+| mysqli.default_pw | no value | no value |
+| mysqli.default_socket | no value | no value |
+| mysqli.default_user | no value | no value |
+| mysqli.max_links | 25 | 25 |
+| mysqli.max_persistent | 10 | 10 |
+| mysqli.reconnect | Off | Off |
+| mysqli.rollback_on_cached_plink | Off | Off |
+
+
+
+| mysqlnd | enabled |
+| Version | mysqlnd 5.0.12-dev - 20150407 - $Id: 401a40ebd5e281cf22215acdc170723a1519aaa9 $ |
+| Compression | supported |
+| core SSL | supported |
+| extended SSL | not supported |
+| Command buffer size | 4096 |
+| Read buffer size | 32768 |
+| Read timeout | 86400 |
+| Collecting statistics | No |
+| Collecting memory statistics | No |
+| Tracing | n/a |
+| Loaded plugins | mysqlnd,debug_trace,auth_plugin_mysql_native_password,auth_plugin_mysql_clear_password |
+| API Extensions | mysqli,pdo_mysql |
+
+
+| mysqlnd statistics | |
+| bytes_sent | 0 |
+| bytes_received | 0 |
+| packets_sent | 0 |
+| packets_received | 0 |
+| protocol_overhead_in | 0 |
+| protocol_overhead_out | 0 |
+| bytes_received_ok_packet | 0 |
+| bytes_received_eof_packet | 0 |
+| bytes_received_rset_header_packet | 0 |
+| bytes_received_rset_field_meta_packet | 0 |
+| bytes_received_rset_row_packet | 0 |
+| bytes_received_prepare_response_packet | 0 |
+| bytes_received_change_user_packet | 0 |
+| packets_sent_command | 0 |
+| packets_received_ok | 0 |
+| packets_received_eof | 0 |
+| packets_received_rset_header | 0 |
+| packets_received_rset_field_meta | 0 |
+| packets_received_rset_row | 0 |
+| packets_received_prepare_response | 0 |
+| packets_received_change_user | 0 |
+| result_set_queries | 0 |
+| non_result_set_queries | 0 |
+| no_index_used | 0 |
+| bad_index_used | 0 |
+| slow_queries | 0 |
+| buffered_sets | 0 |
+| unbuffered_sets | 0 |
+| ps_buffered_sets | 0 |
+| ps_unbuffered_sets | 0 |
+| flushed_normal_sets | 0 |
+| flushed_ps_sets | 0 |
+| ps_prepared_never_executed | 0 |
+| ps_prepared_once_executed | 0 |
+| rows_fetched_from_server_normal | 0 |
+| rows_fetched_from_server_ps | 0 |
+| rows_buffered_from_client_normal | 0 |
+| rows_buffered_from_client_ps | 0 |
+| rows_fetched_from_client_normal_buffered | 0 |
+| rows_fetched_from_client_normal_unbuffered | 0 |
+| rows_fetched_from_client_ps_buffered | 0 |
+| rows_fetched_from_client_ps_unbuffered | 0 |
+| rows_fetched_from_client_ps_cursor | 0 |
+| rows_affected_normal | 0 |
+| rows_affected_ps | 0 |
+| rows_skipped_normal | 0 |
+| rows_skipped_ps | 0 |
+| copy_on_write_saved | 0 |
+| copy_on_write_performed | 0 |
+| command_buffer_too_small | 0 |
+| connect_success | 0 |
+| connect_failure | 0 |
+| connection_reused | 0 |
+| reconnect | 0 |
+| pconnect_success | 0 |
+| active_connections | 0 |
+| active_persistent_connections | 0 |
+| explicit_close | 0 |
+| implicit_close | 0 |
+| disconnect_close | 0 |
+| in_middle_of_command_close | 0 |
+| explicit_free_result | 0 |
+| implicit_free_result | 0 |
+| explicit_stmt_close | 0 |
+| implicit_stmt_close | 0 |
+| mem_emalloc_count | 0 |
+| mem_emalloc_amount | 0 |
+| mem_ecalloc_count | 0 |
+| mem_ecalloc_amount | 0 |
+| mem_erealloc_count | 0 |
+| mem_erealloc_amount | 0 |
+| mem_efree_count | 0 |
+| mem_efree_amount | 0 |
+| mem_malloc_count | 0 |
+| mem_malloc_amount | 0 |
+| mem_calloc_count | 0 |
+| mem_calloc_amount | 0 |
+| mem_realloc_count | 0 |
+| mem_realloc_amount | 0 |
+| mem_free_count | 0 |
+| mem_free_amount | 0 |
+| mem_estrndup_count | 0 |
+| mem_strndup_count | 0 |
+| mem_estrdup_count | 0 |
+| mem_strdup_count | 0 |
+| mem_edupl_count | 0 |
+| mem_dupl_count | 0 |
+| proto_text_fetched_null | 0 |
+| proto_text_fetched_bit | 0 |
+| proto_text_fetched_tinyint | 0 |
+| proto_text_fetched_short | 0 |
+| proto_text_fetched_int24 | 0 |
+| proto_text_fetched_int | 0 |
+| proto_text_fetched_bigint | 0 |
+| proto_text_fetched_decimal | 0 |
+| proto_text_fetched_float | 0 |
+| proto_text_fetched_double | 0 |
+| proto_text_fetched_date | 0 |
+| proto_text_fetched_year | 0 |
+| proto_text_fetched_time | 0 |
+| proto_text_fetched_datetime | 0 |
+| proto_text_fetched_timestamp | 0 |
+| proto_text_fetched_string | 0 |
+| proto_text_fetched_blob | 0 |
+| proto_text_fetched_enum | 0 |
+| proto_text_fetched_set | 0 |
+| proto_text_fetched_geometry | 0 |
+| proto_text_fetched_other | 0 |
+| proto_binary_fetched_null | 0 |
+| proto_binary_fetched_bit | 0 |
+| proto_binary_fetched_tinyint | 0 |
+| proto_binary_fetched_short | 0 |
+| proto_binary_fetched_int24 | 0 |
+| proto_binary_fetched_int | 0 |
+| proto_binary_fetched_bigint | 0 |
+| proto_binary_fetched_decimal | 0 |
+| proto_binary_fetched_float | 0 |
+| proto_binary_fetched_double | 0 |
+| proto_binary_fetched_date | 0 |
+| proto_binary_fetched_year | 0 |
+| proto_binary_fetched_time | 0 |
+| proto_binary_fetched_datetime | 0 |
+| proto_binary_fetched_timestamp | 0 |
+| proto_binary_fetched_string | 0 |
+| proto_binary_fetched_json | 0 |
+| proto_binary_fetched_blob | 0 |
+| proto_binary_fetched_enum | 0 |
+| proto_binary_fetched_set | 0 |
+| proto_binary_fetched_geometry | 0 |
+| proto_binary_fetched_other | 0 |
+| init_command_executed_count | 0 |
+| init_command_failed_count | 0 |
+| com_quit | 0 |
+| com_init_db | 0 |
+| com_query | 0 |
+| com_field_list | 0 |
+| com_create_db | 0 |
+| com_drop_db | 0 |
+| com_refresh | 0 |
+| com_shutdown | 0 |
+| com_statistics | 0 |
+| com_process_info | 0 |
+| com_connect | 0 |
+| com_process_kill | 0 |
+| com_debug | 0 |
+| com_ping | 0 |
+| com_time | 0 |
+| com_delayed_insert | 0 |
+| com_change_user | 0 |
+| com_binlog_dump | 0 |
+| com_table_dump | 0 |
+| com_connect_out | 0 |
+| com_register_slave | 0 |
+| com_stmt_prepare | 0 |
+| com_stmt_execute | 0 |
+| com_stmt_send_long_data | 0 |
+| com_stmt_close | 0 |
+| com_stmt_reset | 0 |
+| com_stmt_set_option | 0 |
+| com_stmt_fetch | 0 |
+| com_deamon | 0 |
+| bytes_received_real_data_normal | 0 |
+| bytes_received_real_data_ps | 0 |
+
+
+
+| OpenSSL support | enabled |
+| OpenSSL Library Version | OpenSSL 1.1.0j 20 Nov 2018 |
+| OpenSSL Header Version | OpenSSL 1.1.0j 20 Nov 2018 |
+| Openssl default config | C:\ScriptEngines\Php\common\files\openssl\openssl.conf |
+
+
+| Directive | Local Value | Master Value |
+| openssl.cafile | C:\ScriptEngines\Php\common\files\curl\ca-bundle.pem | C:\ScriptEngines\Php\common\files\curl\ca-bundle.pem |
+| openssl.capath | C:\ScriptEngines\Php\common\files\curl | C:\ScriptEngines\Php\common\files\curl |
+
+
+
+| PCRE (Perl Compatible Regular Expressions) Support | enabled |
+| PCRE Library Version | 10.32 2018-09-10 |
+| PCRE Unicode Version | 11.0.0 |
+| PCRE JIT Support | enabled |
+| PCRE JIT Target | x86 64bit (little endian + unaligned) |
+
+
+| Directive | Local Value | Master Value |
+| pcre.backtrack_limit | 1000000 | 1000000 |
+| pcre.jit | 1 | 1 |
+| pcre.recursion_limit | 100000 | 100000 |
+
+
+
+| PDO support | enabled |
+| PDO drivers | mysql, odbc, sqlite, sqlsrv |
+
+
+
+| PDO Driver for MySQL | enabled |
+| Client API version | mysqlnd 5.0.12-dev - 20150407 - $Id: 401a40ebd5e281cf22215acdc170723a1519aaa9 $ |
+
+
+
+| PDO Driver for ODBC (Win32) | enabled |
+| ODBC Connection Pooling | Enabled, strict matching |
+
+
+
+| PDO Driver for SQLite 3.x | enabled |
+| SQLite Library | 3.24.0 |
+
+
+
+| pdo_sqlsrv support | enabled |
+| ExtensionVer | 5.4.0-preview+11319 |
+
+
+| Directive | Local Value | Master Value |
+| pdo_sqlsrv.client_buffer_max_kb_size | 10240 | 10240 |
+| pdo_sqlsrv.log_severity | 0 | 0 |
+
+
+
+| Phar: PHP Archive support | enabled |
+| Phar API version | 1.1.1 |
+| Phar-based phar archives | enabled |
+| Tar-based phar archives | enabled |
+| ZIP-based phar archives | enabled |
+| gzip compression | enabled |
+| bzip2 compression | enabled |
+| OpenSSL support | enabled |
+
+
+
+Phar based on pear/PHP_Archive, original concept by Davey Shafik. Phar fully realized by Gregory Beaver and Marcus Boerger. Portions of tar implementation Copyright (c) 2003-2009 Tim Kientzle. |
+
+
+| Directive | Local Value | Master Value |
+| phar.cache_list | no value | no value |
+| phar.readonly | On | On |
+| phar.require_hash | On | On |
+
+
+
+| Readline Support | enabled |
+| Readline library | WinEditLine |
+
+
+| Directive | Local Value | Master Value |
+| cli.pager | no value | no value |
+| cli.prompt | \b \> | \b \> |
+
+
+
+
+
+| Session Support | enabled |
+| Registered save handlers | files user |
+| Registered serializer handlers | php_serialize php php_binary wddx |
+
+
+| Directive | Local Value | Master Value |
+| session.auto_start | Off | Off |
+| session.cache_expire | 180 | 180 |
+| session.cache_limiter | nocache | nocache |
+| session.cookie_domain | no value | no value |
+| session.cookie_httponly | 1 | 1 |
+| session.cookie_lifetime | 0 | 0 |
+| session.cookie_path | / | / |
+| session.cookie_samesite | no value | no value |
+| session.cookie_secure | 0 | 0 |
+| session.gc_divisor | 100 | 100 |
+| session.gc_maxlifetime | 1800 | 1800 |
+| session.gc_probability | 1 | 1 |
+| session.lazy_write | On | On |
+| session.name | PHPSESSID | PHPSESSID |
+| session.referer_check | no value | no value |
+| session.save_handler | files | files |
+| session.save_path | C:\ScriptEngines\Php\temp\session_data | C:\ScriptEngines\Php\temp\session_data |
+| session.serialize_handler | php | php |
+| session.sid_bits_per_character | 6 | 6 |
+| session.sid_length | 32 | 32 |
+| session.upload_progress.cleanup | On | On |
+| session.upload_progress.enabled | On | On |
+| session.upload_progress.freq | 1% | 1% |
+| session.upload_progress.min_freq | 1 | 1 |
+| session.upload_progress.name | PHP_SESSION_UPLOAD_PROGRESS | PHP_SESSION_UPLOAD_PROGRESS |
+| session.upload_progress.prefix | upload_progress_ | upload_progress_ |
+| session.use_cookies | 1 | 1 |
+| session.use_only_cookies | 1 | 1 |
+| session.use_strict_mode | 1 | 1 |
+| session.use_trans_sid | 0 | 0 |
+
+
+
+| SimpleXML support | enabled |
+| Schema support | enabled |
+
+
+
+| NET-SNMP Support | enabled |
+| NET-SNMP Version | 5.7.3 |
+
+
+
+| Soap Client | enabled |
+| Soap Server | enabled |
+
+
+| Directive | Local Value | Master Value |
+| soap.wsdl_cache | 1 | 1 |
+| soap.wsdl_cache_dir | C:\ScriptEngines\Php\temp\soap_cache | C:\ScriptEngines\Php\temp\soap_cache |
+| soap.wsdl_cache_enabled | 1 | 1 |
+| soap.wsdl_cache_limit | 1000 | 1000 |
+| soap.wsdl_cache_ttl | 86400 | 86400 |
+
+
+
+| Sockets Support | enabled |
+
+
+
+| sodium support | enabled |
+| libsodium headers version | 1.0.16 |
+| libsodium library version | 1.0.16 |
+
+
+
+| SPL support | enabled |
+| Interfaces | OuterIterator, RecursiveIterator, SeekableIterator, SplObserver, SplSubject |
+| Classes | AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, CallbackFilterIterator, DirectoryIterator, DomainException, EmptyIterator, FilesystemIterator, FilterIterator, GlobIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, MultipleIterator, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveCallbackFilterIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RecursiveTreeIterator, RegexIterator, RuntimeException, SplDoublyLinkedList, SplFileInfo, SplFileObject, SplFixedArray, SplHeap, SplMinHeap, SplMaxHeap, SplObjectStorage, SplPriorityQueue, SplQueue, SplStack, SplTempFileObject, UnderflowException, UnexpectedValueException |
+
+
+
+| SQLite3 support | enabled |
+| SQLite Library | 3.24.0 |
+
+
+| Directive | Local Value | Master Value |
+| sqlite3.extension_dir | no value | no value |
+
+
+
+| sqlsrv support | enabled |
+| ExtensionVer | 5.4.0-preview+11319 |
+
+
+| Directive | Local Value | Master Value |
+| sqlsrv.ClientBufferMaxKBSize | 10240 | 10240 |
+| sqlsrv.LogSeverity | 0 | 0 |
+| sqlsrv.LogSubsystems | 0 | 0 |
+| sqlsrv.WarningsReturnAsErrors | On | On |
+
+
+
+| Dynamic Library Support | enabled |
+| Path to sendmail | C:\ScriptUtilities\bin\sendmail\sendmail.exe |
+
+
+| Directive | Local Value | Master Value |
+| assert.active | 1 | 1 |
+| assert.bail | 0 | 0 |
+| assert.callback | no value | no value |
+| assert.exception | 0 | 0 |
+| assert.quiet_eval | 0 | 0 |
+| assert.warning | 1 | 1 |
+| auto_detect_line_endings | 0 | 0 |
+| default_socket_timeout | 60 | 60 |
+| from | no value | no value |
+| session.trans_sid_hosts | no value | no value |
+| session.trans_sid_tags | a=href,area=href,frame=src,form= | a=href,area=href,frame=src,form= |
+| url_rewriter.hosts | no value | no value |
+| url_rewriter.tags | form= | form= |
+| user_agent | no value | no value |
+
+
+
+| Tokenizer Support | enabled |
+
+
+
+| WDDX Support | enabled |
+| WDDX Session Serializer | enabled |
+
+
+
+| XML Support | active |
+| XML Namespace Support | active |
+| libxml2 Version | 2.9.8 |
+
+
+
+
+
+| core library version | xmlrpc-epi v. 0.51 |
+| author | Dan Libby |
+| homepage | http://xmlrpc-epi.sourceforge.net |
+| open sourced by | Epinions.com |
+
+
+
+
+
+| XSL | enabled |
+| libxslt Version | 1.1.32 |
+| libxslt compiled against libxml Version | 2.9.7 |
+| EXSLT | enabled |
+| libexslt Version | 0.8.20 |
+
+
+
+| Zip | enabled |
+| Zip version | 1.15.4 |
+| Libzip version | 1.4.0 |
+
+
+
+| ZLib Support | enabled |
+| Stream Wrapper | compress.zlib:// |
+| Stream Filter | zlib.inflate, zlib.deflate |
+| Compiled Version | 1.2.11 |
+| Linked Version | 1.2.11 |
+
+
+| Directive | Local Value | Master Value |
+| zlib.output_compression | Off | Off |
+| zlib.output_compression_level | -1 | -1 |
+| zlib.output_handler | no value | no value |
+
+
Additional Modules
+
+
Environment
+
+| Variable | Value |
+| _FCGI_X_PIPE_ | \\.\pipe\IISFCGI-eddaae2b-6cb5-47d7-8c77-2be24c3da6d5 |
+| PHPRC | C:\ScriptEngines\Php\parsers\nts\v7_3 |
+| PHP_FCGI_MAX_REQUESTS | 10000 |
+| ALLUSERSPROFILE | C:\ProgramData |
+| ANAXA_GEOFILTERING_DATABASE | C:\Program Files (x86)\Anaxa LLC (ASPnix)\GeoFilteringModule\data\GeoLiteCity.dat |
+| APPDATA | C:\Users\phpinfo_iusr\AppData\Roaming |
+| APP_POOL_CONFIG | C:\inetpub\temp\apppools\phpinfo() PHP Information Helper\phpinfo() PHP Information Helper.config |
+| APP_POOL_ID | phpinfo() PHP Information Helper |
+| CommonProgramFiles | C:\Program Files\Common Files |
+| CommonProgramFiles(x86) | C:\Program Files (x86)\Common Files |
+| CommonProgramW6432 | C:\Program Files\Common Files |
+| COMPUTERNAME | VMM |
+| ComSpec | C:\WINDOWS\system32\cmd.exe |
+| FP_NO_HOST_CHECK | NO |
+| LOCALAPPDATA | C:\Users\phpinfo_iusr\AppData\Local |
+| MIBDIRS | C:\ScriptEngines\Php\common\files\mibs |
+| NUMBER_OF_PROCESSORS | 8 |
+| OPENSSL_CONF | C:\ScriptEngines\Php\common\files\openssl\openssl.conf |
+| OS | Windows_NT |
+| Path | C:\ScriptUtilities\bin\imagemagick\7\x86;C:\ScriptUtilities\bin\imagemagick\7\x64;C:\ScriptUtilities\bin\imagemagick\6\x86;C:\ScriptUtilities\bin\imagemagick\6\x64;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Altaro\Altaro Backup\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\110\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\;C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\;C:\Program Files\Altaro\Altaro Backup\\ManagementTools;C:\Program Files (x86)\NTP\bin;C:\WINDOWS\system32\config\systemprofile\AppData\Local\Microsoft\WindowsApps;C:\Users\phpinfo_iusr\AppData\Local\Microsoft\WindowsApps |
+| PATHEXT | .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC |
+| PROCESSOR_ARCHITECTURE | AMD64 |
+| PROCESSOR_IDENTIFIER | Intel64 Family 6 Model 30 Stepping 5, GenuineIntel |
+| PROCESSOR_LEVEL | 6 |
+| PROCESSOR_REVISION | 1e05 |
+| ProgramData | C:\ProgramData |
+| ProgramFiles | C:\Program Files |
+| ProgramFiles(x86) | C:\Program Files (x86) |
+| ProgramW6432 | C:\Program Files |
+| PSModulePath | C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\;C:\Program Files\Microsoft System Center 2012 R2\Virtual Machine Manager\bin\psModules\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\PowerShell\Modules\;C:\Program Files\Microsoft System Center 2012 R2\Virtual Machine Manager\bin\Configuration Providers\ |
+| PUBLIC | C:\Users\Public |
+| RANDFILE | C:\Program Files (x86)\NTP\etc\.rnd |
+| SystemDrive | C: |
+| SystemRoot | C:\WINDOWS |
+| TEMP | C:\Users\PHPINF~1\AppData\Local\Temp |
+| TMP | C:\Users\PHPINF~1\AppData\Local\Temp |
+| USERDOMAIN | VMM |
+| USERNAME | phpinfo_iusr |
+| USERPROFILE | C:\Users\phpinfo_iusr |
+| windir | C:\WINDOWS |
+
+
PHP Variables
+
+| Variable | Value |
+| $_SERVER['_FCGI_X_PIPE_'] | \\.\pipe\IISFCGI-eddaae2b-6cb5-47d7-8c77-2be24c3da6d5 |
+| $_SERVER['PHPRC'] | C:\ScriptEngines\Php\parsers\nts\v7_3 |
+| $_SERVER['PHP_FCGI_MAX_REQUESTS'] | 10000 |
+| $_SERVER['ALLUSERSPROFILE'] | C:\ProgramData |
+| $_SERVER['ANAXA_GEOFILTERING_DATABASE'] | C:\Program Files (x86)\Anaxa LLC (ASPnix)\GeoFilteringModule\data\GeoLiteCity.dat |
+| $_SERVER['APPDATA'] | C:\Users\phpinfo_iusr\AppData\Roaming |
+| $_SERVER['APP_POOL_CONFIG'] | C:\inetpub\temp\apppools\phpinfo() PHP Information Helper\phpinfo() PHP Information Helper.config |
+| $_SERVER['APP_POOL_ID'] | phpinfo() PHP Information Helper |
+| $_SERVER['CommonProgramFiles'] | C:\Program Files\Common Files |
+| $_SERVER['CommonProgramFiles(x86)'] | C:\Program Files (x86)\Common Files |
+| $_SERVER['CommonProgramW6432'] | C:\Program Files\Common Files |
+| $_SERVER['COMPUTERNAME'] | VMM |
+| $_SERVER['ComSpec'] | C:\WINDOWS\system32\cmd.exe |
+| $_SERVER['FP_NO_HOST_CHECK'] | NO |
+| $_SERVER['LOCALAPPDATA'] | C:\Users\phpinfo_iusr\AppData\Local |
+| $_SERVER['MIBDIRS'] | C:\ScriptEngines\Php\common\files\mibs |
+| $_SERVER['NUMBER_OF_PROCESSORS'] | 8 |
+| $_SERVER['OPENSSL_CONF'] | C:\ScriptEngines\Php\common\files\openssl\openssl.conf |
+| $_SERVER['OS'] | Windows_NT |
+| $_SERVER['Path'] | C:\ScriptUtilities\bin\imagemagick\7\x86;C:\ScriptUtilities\bin\imagemagick\7\x64;C:\ScriptUtilities\bin\imagemagick\6\x86;C:\ScriptUtilities\bin\imagemagick\6\x64;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Altaro\Altaro Backup\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\110\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\;C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\;C:\Program Files\Altaro\Altaro Backup\\ManagementTools;C:\Program Files (x86)\NTP\bin;C:\WINDOWS\system32\config\systemprofile\AppData\Local\Microsoft\WindowsApps;C:\Users\phpinfo_iusr\AppData\Local\Microsoft\WindowsApps |
+| $_SERVER['PATHEXT'] | .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC |
+| $_SERVER['PROCESSOR_ARCHITECTURE'] | AMD64 |
+| $_SERVER['PROCESSOR_IDENTIFIER'] | Intel64 Family 6 Model 30 Stepping 5, GenuineIntel |
+| $_SERVER['PROCESSOR_LEVEL'] | 6 |
+| $_SERVER['PROCESSOR_REVISION'] | 1e05 |
+| $_SERVER['ProgramData'] | C:\ProgramData |
+| $_SERVER['ProgramFiles'] | C:\Program Files |
+| $_SERVER['ProgramFiles(x86)'] | C:\Program Files (x86) |
+| $_SERVER['ProgramW6432'] | C:\Program Files |
+| $_SERVER['PSModulePath'] | C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\;C:\Program Files\Microsoft System Center 2012 R2\Virtual Machine Manager\bin\psModules\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\PowerShell\Modules\;C:\Program Files\Microsoft System Center 2012 R2\Virtual Machine Manager\bin\Configuration Providers\ |
+| $_SERVER['PUBLIC'] | C:\Users\Public |
+| $_SERVER['RANDFILE'] | C:\Program Files (x86)\NTP\etc\.rnd |
+| $_SERVER['SystemDrive'] | C: |
+| $_SERVER['SystemRoot'] | C:\WINDOWS |
+| $_SERVER['TEMP'] | C:\Users\PHPINF~1\AppData\Local\Temp |
+| $_SERVER['TMP'] | C:\Users\PHPINF~1\AppData\Local\Temp |
+| $_SERVER['USERDOMAIN'] | VMM |
+| $_SERVER['USERNAME'] | phpinfo_iusr |
+| $_SERVER['USERPROFILE'] | C:\Users\phpinfo_iusr |
+| $_SERVER['windir'] | C:\WINDOWS |
+| $_SERVER['ORIG_PATH_INFO'] | /73/index.php |
+| $_SERVER['URL'] | /73/index.php |
+| $_SERVER['SERVER_SOFTWARE'] | Microsoft-IIS/10.0 |
+| $_SERVER['SERVER_PROTOCOL'] | HTTP/1.0 |
+| $_SERVER['SERVER_PORT_SECURE'] | 1 |
+| $_SERVER['SERVER_PORT'] | 443 |
+| $_SERVER['SERVER_NAME'] | phpinfo.aspnix.com |
+| $_SERVER['SCRIPT_NAME'] | /73/index.php |
+| $_SERVER['SCRIPT_FILENAME'] | C:\inetpub\wwwroot\phpinfo\73\index.php |
+| $_SERVER['REQUEST_URI'] | /73/ |
+| $_SERVER['REQUEST_METHOD'] | GET |
+| $_SERVER['REMOTE_USER'] | no value |
+| $_SERVER['REMOTE_PORT'] | 49330 |
+| $_SERVER['REMOTE_HOST'] | 73.58.149.229 |
+| $_SERVER['REMOTE_ADDR'] | 73.58.149.229 |
+| $_SERVER['QUERY_STRING'] | no value |
+| $_SERVER['PATH_TRANSLATED'] | C:\inetpub\wwwroot\phpinfo\73\index.php |
+| $_SERVER['LOGON_USER'] | no value |
+| $_SERVER['LOCAL_ADDR'] | 8.8.246.11 |
+| $_SERVER['INSTANCE_META_PATH'] | /LM/W3SVC/3 |
+| $_SERVER['INSTANCE_NAME'] | PHPINFO UTILITY |
+| $_SERVER['INSTANCE_ID'] | 3 |
+| $_SERVER['HTTPS_SERVER_SUBJECT'] | CN=*.anaxanet.com |
+| $_SERVER['HTTPS_SERVER_ISSUER'] | C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3 |
+| $_SERVER['HTTPS_SECRETKEYSIZE'] | 2048 |
+| $_SERVER['HTTPS_KEYSIZE'] | 256 |
+| $_SERVER['HTTPS'] | on |
+| $_SERVER['GATEWAY_INTERFACE'] | CGI/1.1 |
+| $_SERVER['DOCUMENT_ROOT'] | C:\inetpub\wwwroot\phpinfo |
+| $_SERVER['CONTENT_TYPE'] | no value |
+| $_SERVER['CONTENT_LENGTH'] | 0 |
+| $_SERVER['CERT_SUBJECT'] | no value |
+| $_SERVER['CERT_SERIALNUMBER'] | no value |
+| $_SERVER['CERT_ISSUER'] | no value |
+| $_SERVER['CERT_FLAGS'] | no value |
+| $_SERVER['CERT_COOKIE'] | no value |
+| $_SERVER['AUTH_USER'] | no value |
+| $_SERVER['AUTH_PASSWORD'] | no value |
+| $_SERVER['AUTH_TYPE'] | no value |
+| $_SERVER['APPL_PHYSICAL_PATH'] | C:\inetpub\wwwroot\phpinfo\ |
+| $_SERVER['APPL_MD_PATH'] | /LM/W3SVC/3/ROOT |
+| $_SERVER['IIS_UrlRewriteModule'] | 7.1.0761.0 |
+| $_SERVER['WEBSOCKET_VERSION'] | 13 |
+| $_SERVER['HTTP_HOST'] | phpinfo.aspnix.com |
+| $_SERVER['HTTP_CONTENT_LENGTH'] | 0 |
+| $_SERVER['HTTP_CONNECTION'] | close |
+| $_SERVER['FCGI_ROLE'] | RESPONDER |
+| $_SERVER['PHP_SELF'] | /73/index.php |
+| $_SERVER['REQUEST_TIME_FLOAT'] | 1546370320.252 |
+| $_SERVER['REQUEST_TIME'] | 1546370320 |
+
+
+
PHP Credits
+
+| PHP Group |
+| Thies C. Arntzen, Stig Bakken, Shane Caraveo, Andi Gutmans, Rasmus Lerdorf, Sam Ruby, Sascha Schumann, Zeev Suraski, Jim Winstead, Andrei Zmievski |
+
+
+| Language Design & Concept |
+| Andi Gutmans, Rasmus Lerdorf, Zeev Suraski, Marcus Boerger |
+
+
+| PHP Authors |
+| Contribution | Authors |
+| Zend Scripting Language Engine | Andi Gutmans, Zeev Suraski, Stanislav Malyshev, Marcus Boerger, Dmitry Stogov, Xinchen Hui, Nikita Popov |
+| Extension Module API | Andi Gutmans, Zeev Suraski, Andrei Zmievski |
+| UNIX Build and Modularization | Stig Bakken, Sascha Schumann, Jani Taskinen |
+| Windows Support | Shane Caraveo, Zeev Suraski, Wez Furlong, Pierre-Alain Joye, Anatol Belski, Kalle Sommer Nielsen |
+| Server API (SAPI) Abstraction Layer | Andi Gutmans, Shane Caraveo, Zeev Suraski |
+| Streams Abstraction Layer | Wez Furlong, Sara Golemon |
+| PHP Data Objects Layer | Wez Furlong, Marcus Boerger, Sterling Hughes, George Schlossnagle, Ilia Alshanetsky |
+| Output Handler | Zeev Suraski, Thies C. Arntzen, Marcus Boerger, Michael Wallner |
+| Consistent 64 bit support | Anthony Ferrara, Anatol Belski |
+
+
+| SAPI Modules |
+| Contribution | Authors |
+| Apache 2.0 Handler | Ian Holsman, Justin Erenkrantz (based on Apache 2.0 Filter code) |
+| CGI / FastCGI | Rasmus Lerdorf, Stig Bakken, Shane Caraveo, Dmitry Stogov |
+| CLI | Edin Kadribasic, Marcus Boerger, Johannes Schlueter, Moriyoshi Koizumi, Xinchen Hui |
+| Embed | Edin Kadribasic |
+| FastCGI Process Manager | Andrei Nigmatulin, dreamcat4, Antony Dovgal, Jerome Loyet |
+| litespeed | George Wang |
+| phpdbg | Felipe Pena, Joe Watkins, Bob Weinand |
+
+
+| Module Authors |
+| Module | Authors |
+| BC Math | Andi Gutmans |
+| Bzip2 | Sterling Hughes |
+| Calendar | Shane Caraveo, Colin Viebrock, Hartmut Holzgraefe, Wez Furlong |
+| COM and .Net | Wez Furlong |
+| ctype | Hartmut Holzgraefe |
+| cURL | Sterling Hughes |
+| Date/Time Support | Derick Rethans |
+| DB-LIB (MS SQL, Sybase) | Wez Furlong, Frank M. Kromann, Adam Baratz |
+| DBA | Sascha Schumann, Marcus Boerger |
+| DOM | Christian Stocker, Rob Richards, Marcus Boerger |
+| enchant | Pierre-Alain Joye, Ilia Alshanetsky |
+| EXIF | Rasmus Lerdorf, Marcus Boerger |
+| fileinfo | Ilia Alshanetsky, Pierre Alain Joye, Scott MacVicar, Derick Rethans, Anatol Belski |
+| Firebird driver for PDO | Ard Biesheuvel |
+| FTP | Stefan Esser, Andrew Skalski |
+| GD imaging | Rasmus Lerdorf, Stig Bakken, Jim Winstead, Jouni Ahto, Ilia Alshanetsky, Pierre-Alain Joye, Marcus Boerger |
+| GetText | Alex Plotnick |
+| GNU GMP support | Stanislav Malyshev |
+| Iconv | Rui Hirokawa, Stig Bakken, Moriyoshi Koizumi |
+| IMAP | Rex Logan, Mark Musone, Brian Wang, Kaj-Michael Lang, Antoni Pamies Olive, Rasmus Lerdorf, Andrew Skalski, Chuck Hagenbuch, Daniel R Kalowsky |
+| Input Filter | Rasmus Lerdorf, Derick Rethans, Pierre-Alain Joye, Ilia Alshanetsky |
+| InterBase | Jouni Ahto, Andrew Avdeev, Ard Biesheuvel |
+| Internationalization | Ed Batutis, Vladimir Iordanov, Dmitry Lakhtyuk, Stanislav Malyshev, Vadim Savchuk, Kirti Velankar |
+| JSON | Jakub Zelenka, Omar Kilani, Scott MacVicar |
+| LDAP | Amitay Isaacs, Eric Warnke, Rasmus Lerdorf, Gerrit Thomson, Stig Venaas |
+| LIBXML | Christian Stocker, Rob Richards, Marcus Boerger, Wez Furlong, Shane Caraveo |
+| Multibyte String Functions | Tsukada Takuya, Rui Hirokawa |
+| MySQL driver for PDO | George Schlossnagle, Wez Furlong, Ilia Alshanetsky, Johannes Schlueter |
+| MySQLi | Zak Greant, Georg Richter, Andrey Hristov, Ulf Wendel |
+| MySQLnd | Andrey Hristov, Ulf Wendel, Georg Richter, Johannes SchlΓΌter |
+| OCI8 | Stig Bakken, Thies C. Arntzen, Andy Sautins, David Benson, Maxim Maletsky, Harald Radi, Antony Dovgal, Andi Gutmans, Wez Furlong, Christopher Jones, Oracle Corporation |
+| ODBC driver for PDO | Wez Furlong |
+| ODBC | Stig Bakken, Andreas Karajannis, Frank M. Kromann, Daniel R. Kalowsky |
+| Opcache | Andi Gutmans, Zeev Suraski, Stanislav Malyshev, Dmitry Stogov, Xinchen Hui |
+| OpenSSL | Stig Venaas, Wez Furlong, Sascha Kettler, Scott MacVicar |
+| Oracle (OCI) driver for PDO | Wez Furlong |
+| pcntl | Jason Greene, Arnaud Le Blanc |
+| Perl Compatible Regexps | Andrei Zmievski |
+| PHP Archive | Gregory Beaver, Marcus Boerger |
+| PHP Data Objects | Wez Furlong, Marcus Boerger, Sterling Hughes, George Schlossnagle, Ilia Alshanetsky |
+| PHP hash | Sara Golemon, Rasmus Lerdorf, Stefan Esser, Michael Wallner, Scott MacVicar |
+| Posix | Kristian Koehntopp |
+| PostgreSQL driver for PDO | Edin Kadribasic, Ilia Alshanetsky |
+| PostgreSQL | Jouni Ahto, Zeev Suraski, Yasuo Ohgaki, Chris Kings-Lynne |
+| Pspell | Vlad Krupin |
+| Readline | Thies C. Arntzen |
+| Recode | Kristian Koehntopp |
+| Reflection | Marcus Boerger, Timm Friebe, George Schlossnagle, Andrei Zmievski, Johannes Schlueter |
+| Sessions | Sascha Schumann, Andrei Zmievski |
+| Shared Memory Operations | Slava Poliakov, Ilia Alshanetsky |
+| SimpleXML | Sterling Hughes, Marcus Boerger, Rob Richards |
+| SNMP | Rasmus Lerdorf, Harrie Hazewinkel, Mike Jackson, Steven Lawrance, Johann Hanne, Boris Lytochkin |
+| SOAP | Brad Lafountain, Shane Caraveo, Dmitry Stogov |
+| Sockets | Chris Vandomelen, Sterling Hughes, Daniel Beulshausen, Jason Greene |
+| Sodium | Frank Denis |
+| SPL | Marcus Boerger, Etienne Kneuss |
+| SQLite 3.x driver for PDO | Wez Furlong |
+| SQLite3 | Scott MacVicar, Ilia Alshanetsky, Brad Dewar |
+| System V Message based IPC | Wez Furlong |
+| System V Semaphores | Tom May |
+| System V Shared Memory | Christian Cartus |
+| tidy | John Coggeshall, Ilia Alshanetsky |
+| tokenizer | Andrei Zmievski, Johannes Schlueter |
+| WDDX | Andrei Zmievski |
+| XML | Stig Bakken, Thies C. Arntzen, Sterling Hughes |
+| XMLReader | Rob Richards |
+| xmlrpc | Dan Libby |
+| XMLWriter | Rob Richards, Pierre-Alain Joye |
+| XSL | Christian Stocker, Rob Richards |
+| Zip | Pierre-Alain Joye, Remi Collet |
+| Zlib | Rasmus Lerdorf, Stefan Roehrich, Zeev Suraski, Jade Nicoletti, Michael Wallner |
+
+
+| PHP Documentation |
+| Authors | Mehdi Achour, Friedhelm Betz, Antony Dovgal, Nuno Lopes, Hannes Magnusson, Philip Olson, Georg Richter, Damien Seguy, Jakub Vrana, Adam Harvey |
+| Editor | Peter Cowburn |
+| User Note Maintainers | Daniel P. Brown, Thiago Henrique Pojda |
+| Other Contributors | Previously active authors, editors and other contributors are listed in the manual. |
+
+
+| PHP Quality Assurance Team |
+| Ilia Alshanetsky, Joerg Behrens, Antony Dovgal, Stefan Esser, Moriyoshi Koizumi, Magnus Maatta, Sebastian Nohn, Derick Rethans, Melvyn Sopacua, Pierre-Alain Joye, Dmitry Stogov, Felipe Pena, David Soria Parra, Stanislav Malyshev, Julien Pauli, Stephen Zarkos, Anatol Belski, Remi Collet, Ferenc Kovacs |
+
+
+| Websites and Infrastructure team |
+| PHP Websites Team | Rasmus Lerdorf, Hannes Magnusson, Philip Olson, Lukas Kahwe Smith, Pierre-Alain Joye, Kalle Sommer Nielsen, Peter Cowburn, Adam Harvey, Ferenc Kovacs, Levi Morrison |
+| Event Maintainers | Damien Seguy, Daniel P. Brown |
+| Network Infrastructure | Daniel P. Brown |
+| Windows Infrastructure | Alex Schoenmaker |
+
+
PHP License
+
+|
+
+This program is free software; you can redistribute it and/or modify it under the terms of the PHP License as published by the PHP Group and included in the distribution in the file: LICENSE
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+If you did not receive a copy of the PHP license, or have any questions about PHP licensing, please contact license@php.net.
+
+ |
+
+
1
\ No newline at end of file
diff --git a/tests/PhpVersions/InfoTest.php b/tests/PhpVersions/InfoTest.php
new file mode 100644
index 0000000..92a8ce7
--- /dev/null
+++ b/tests/PhpVersions/InfoTest.php
@@ -0,0 +1,53 @@
+version = '7.3.0';
+ $this->infoItems = [];
+
+ $this->info = new Info($this->version, $this->infoItems);
+ }
+
+ public function testCanGetInstance() : void
+ {
+ $this->assertInstanceOf(Info::class, $this->info);
+ }
+
+ public function testCanGetPhpVersion() : void
+ {
+ $version = $this->info->phpVersion();
+
+ $this->assertSame($this->version, $version);
+ }
+
+ public function testCanGetPhpSemanticVersion() : void
+ {
+ $semanticVersion = $this->info->phpSemanticVersion();
+
+ $version = explode('.', $this->version);
+
+ $this->assertIsObject($semanticVersion);
+ $this->assertSame((int) $version[0], $semanticVersion->getMajor());
+ $this->assertSame((int) $version[1], $semanticVersion->getMinor());
+ $this->assertSame((int) $version[2], $semanticVersion->getPatch());
+ $this->assertSame($this->version, $semanticVersion->getOriginalVersion());
+ }
+}
diff --git a/tests/PhpVersions/ParserTest.php b/tests/PhpVersions/ParserTest.php
new file mode 100644
index 0000000..91c55f1
--- /dev/null
+++ b/tests/PhpVersions/ParserTest.php
@@ -0,0 +1,53 @@
+parser = new Parser($html);
+ }
+
+ public function testCanGetInstanceOf() : void
+ {
+ $this->assertInstanceOf(Parser::class, $this->parser);
+ }
+
+ public function testCanParseInfo() : void
+ {
+ $info = $this->parser->parse();
+
+ $this->assertInstanceOf(Info::class, $info);
+ }
+
+ public function testLocatePhpVersion() : void
+ {
+ $version = $this->parser->locatePhpVersion();
+
+ $this->assertSame(self::CURRENT_VERSION, $version);
+ }
+
+ public function testLocatePhpInfo() : void
+ {
+ $info = $this->parser->locateGeneralInfo();
+
+ $this->assertTrue(is_array($info));
+ $this->assertArrayHasKey('PHP Extension', $info);
+ $this->assertArrayHasKey('PHP API', $info);
+ $this->assertArrayHasKey('Server API', $info);
+ }
+}