Commit 08f33261 by HanSon Committed by GitHub

Merge pull request #15 from HanSon/qrcode

增加二维码显示
2 parents a7baacb4 11a8e84c
/vendor/
.idea
/tmp/
......@@ -16,7 +16,11 @@
"pimple/pimple": "^3.0",
"illuminate/support": "^5.3",
"nesbot/carbon": "^1.21",
"php": ">=7.0.0"
"php": ">=7.0.0",
"symfony/var-dumper": "^3.2",
"aferrandini/phpqrcode": "^1.0",
"symfony/process": "^3.2",
"symfony/console": "^3.2"
},
"minimum-stability": "dev",
"autoload": {
......
......@@ -4,10 +4,54 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"hash": "b8d45b4e0794f3855f36113b444420a7",
"content-hash": "4208bf2e5381a25360c7b542e17fd4a0",
"hash": "b84e2aeb3bf07508860d7856ff874d18",
"content-hash": "1d8a1895a8ce4f7fd0473faaad10cb75",
"packages": [
{
"name": "aferrandini/phpqrcode",
"version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/aferrandini/PHPQRCode.git",
"reference": "3c1c0454d43710ab5bbe19a51ad4cb41c22e3d46"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/aferrandini/PHPQRCode/3c1c0454d43710ab5bbe19a51ad4cb41c22e3d46.zip",
"reference": "3c1c0454d43710ab5bbe19a51ad4cb41c22e3d46",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"autoload": {
"psr-0": {
"PHPQRCode": "lib/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ariel Ferrandini",
"email": "arielferrandini@gmail.com",
"homepage": "http://www.ferrandini.com/",
"role": "Developer"
}
],
"description": "PHPQRCode porting and changed for PHP 5.3 compatibility",
"homepage": "https://github.com/aferrandini/PHPQRCode",
"keywords": [
"barcode",
"php",
"qrcode"
],
"time": "2013-07-08 09:39:08"
},
{
"name": "doctrine/inflector",
"version": "v1.1.0",
"source": {
......@@ -517,1091 +561,1188 @@
"time": "2015-11-04 20:07:17"
},
{
"name": "paragonie/random_compat",
"version": "v2.0.4",
"name": "nette/bootstrap",
"version": "v2.4.2",
"source": {
"type": "git",
"url": "https://github.com/paragonie/random_compat.git",
"reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e"
"url": "https://github.com/nette/bootstrap.git",
"reference": "4db37e6d42ddf41b50417950741113b5dfc86e27"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/paragonie/random_compat/a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e.zip",
"reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e",
"url": "https://packagist.phpcomposer.com/files/nette/bootstrap/4db37e6d42ddf41b50417950741113b5dfc86e27.zip",
"reference": "4db37e6d42ddf41b50417950741113b5dfc86e27",
"shasum": ""
},
"require": {
"php": ">=5.2.0"
"nette/di": "~2.4.0",
"nette/utils": "~2.4",
"php": ">=5.6.0"
},
"conflict": {
"nette/nette": "<2.2"
},
"require-dev": {
"phpunit/phpunit": "4.*|5.*"
"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.2",
"nette/safe-stream": "~2.2",
"nette/security": "~2.3",
"nette/tester": "~2.0",
"tracy/tracy": "^2.4.1"
},
"suggest": {
"ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
"nette/robot-loader": "to use Configurator::createRobotLoader()",
"tracy/tracy": "to use Configurator::enableTracy()"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.4-dev"
}
},
"autoload": {
"files": [
"lib/random.php"
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
"BSD-3-Clause",
"GPL-2.0",
"GPL-3.0"
],
"authors": [
{
"name": "Paragon Initiative Enterprises",
"email": "security@paragonie.com",
"homepage": "https://paragonie.com"
"name": "David Grudl",
"homepage": "https://davidgrudl.com"
},
{
"name": "Nette Community",
"homepage": "https://nette.org/contributors"
}
],
"description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
"keywords": [
"csprng",
"pseudorandom",
"random"
],
"time": "2016-11-07 23:38:38"
"description": "Nette Bootstrap",
"homepage": "https://nette.org",
"time": "2016-12-19 12:12:10"
},
{
"name": "pimple/pimple",
"version": "v3.0.2",
"name": "nette/caching",
"version": "v2.5.2",
"source": {
"type": "git",
"url": "https://github.com/silexphp/Pimple.git",
"reference": "a30f7d6e57565a2e1a316e1baf2a483f788b258a"
"url": "https://github.com/nette/caching.git",
"reference": "7da6cc65f301e220acba4fd8a11d3afdc642be9e"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/silexphp/Pimple/a30f7d6e57565a2e1a316e1baf2a483f788b258a.zip",
"reference": "a30f7d6e57565a2e1a316e1baf2a483f788b258a",
"url": "https://packagist.phpcomposer.com/files/nette/caching/7da6cc65f301e220acba4fd8a11d3afdc642be9e.zip",
"reference": "7da6cc65f301e220acba4fd8a11d3afdc642be9e",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
"nette/finder": "~2.2",
"nette/utils": "~2.4",
"php": ">=5.6.0"
},
"conflict": {
"nette/nette": "<2.2"
},
"require-dev": {
"latte/latte": "~2.4",
"nette/di": "~2.4",
"nette/tester": "~2.0",
"tracy/tracy": "^2.4"
},
"suggest": {
"ext-pdo_sqlite": "to use SQLiteStorage or SQLiteJournal"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.0.x-dev"
"dev-master": "2.5-dev"
}
},
"autoload": {
"psr-0": {
"Pimple": "src/"
}
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
"BSD-3-Clause",
"GPL-2.0",
"GPL-3.0"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
"name": "David Grudl",
"homepage": "https://davidgrudl.com"
},
{
"name": "Nette Community",
"homepage": "https://nette.org/contributors"
}
],
"description": "Pimple, a simple Dependency Injection Container",
"homepage": "http://pimple.sensiolabs.org",
"keywords": [
"container",
"dependency injection"
],
"time": "2015-09-11 15:10:35"
"description": "Nette Caching Component",
"homepage": "https://nette.org",
"time": "2016-10-06 00:08:42"
},
{
"name": "psr/http-message",
"version": "1.0.1",
"name": "nette/di",
"version": "v2.4.5",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-message.git",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
"url": "https://github.com/nette/di.git",
"reference": "b265f305e1fef2dad1cb2e7340b49d274d3dd14c"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/php-fig/http-message/f6561bf28d520154e4b0ec72be95418abe6d9363.zip",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
"url": "https://packagist.phpcomposer.com/files/nette/di/b265f305e1fef2dad1cb2e7340b49d274d3dd14c.zip",
"reference": "b265f305e1fef2dad1cb2e7340b49d274d3dd14c",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
"ext-tokenizer": "*",
"nette/neon": "^2.3.3",
"nette/php-generator": "^2.4",
"nette/utils": "^2.4",
"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": "1.0.x-dev"
"dev-master": "2.4-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Http\\Message\\": "src/"
}
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
"BSD-3-Clause",
"GPL-2.0",
"GPL-3.0"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
"name": "David Grudl",
"homepage": "https://davidgrudl.com"
},
{
"name": "Nette Community",
"homepage": "https://nette.org/contributors"
}
],
"description": "Common interface for HTTP messages",
"homepage": "https://github.com/php-fig/http-message",
"keywords": [
"http",
"http-message",
"psr",
"psr-7",
"request",
"response"
],
"time": "2016-08-06 14:39:51"
"description": "Nette Dependency Injection Component",
"homepage": "https://nette.org",
"time": "2016-12-23 10:26:44"
},
{
"name": "querypath/querypath",
"version": "3.0.5",
"name": "nette/finder",
"version": "v2.4.0",
"source": {
"type": "git",
"url": "https://github.com/technosophos/querypath.git",
"reference": "6b8e2395fac61fac25bbe962f94def556cb85f7d"
"url": "https://github.com/nette/finder.git",
"reference": "5cabd5fe89f9903715359a403b820c7f94f9bb5e"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/technosophos/querypath/6b8e2395fac61fac25bbe962f94def556cb85f7d.zip",
"reference": "6b8e2395fac61fac25bbe962f94def556cb85f7d",
"url": "https://packagist.phpcomposer.com/files/nette/finder/5cabd5fe89f9903715359a403b820c7f94f9bb5e.zip",
"reference": "5cabd5fe89f9903715359a403b820c7f94f9bb5e",
"shasum": ""
},
"require": {
"masterminds/html5": "2.*",
"php": ">=5.3.0"
"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": {
"psr-0": {
"QueryPath": "src/"
},
"files": [
"src/qp_functions.php"
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
"BSD-3-Clause",
"GPL-2.0",
"GPL-3.0"
],
"description": "HTML/XML querying (CSS 4 or XPath) and processing (like jQuery)",
"homepage": "https://github.com/technosophos/querypath",
"keywords": [
"css",
"html",
"jquery",
"xml",
"xslt"
"authors": [
{
"name": "David Grudl",
"homepage": "https://davidgrudl.com"
},
{
"name": "Nette Community",
"homepage": "https://nette.org/contributors"
}
],
"time": "2016-08-01 22:40:30"
"description": "Nette Finder: Files Searching",
"homepage": "https://nette.org",
"time": "2016-05-17 15:49:06"
},
{
"name": "symfony/css-selector",
"version": "v3.2.1",
"name": "nette/neon",
"version": "v2.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
"reference": "e1241f275814827c411d922ba8e64cf2a00b2994"
"url": "https://github.com/nette/neon.git",
"reference": "c40c63f2afa4196844ac40d9d2a2cfb313f76906"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/symfony/css-selector/e1241f275814827c411d922ba8e64cf2a00b2994.zip",
"reference": "e1241f275814827c411d922ba8e64cf2a00b2994",
"url": "https://packagist.phpcomposer.com/files/nette/neon/c40c63f2afa4196844ac40d9d2a2cfb313f76906.zip",
"reference": "c40c63f2afa4196844ac40d9d2a2cfb313f76906",
"shasum": ""
},
"require": {
"php": ">=5.5.9"
"ext-iconv": "*",
"php": ">=5.6.0"
},
"require-dev": {
"nette/tester": "~2.0",
"tracy/tracy": "^2.3"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.2-dev"
"dev-master": "2.4-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\CssSelector\\": ""
},
"exclude-from-classmap": [
"/Tests/"
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
"BSD-3-Clause",
"GPL-2.0",
"GPL-3.0"
],
"authors": [
{
"name": "Jean-François Simon",
"email": "jeanfrancois.simon@sensiolabs.com"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
"name": "David Grudl",
"homepage": "https://davidgrudl.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
"name": "Nette Community",
"homepage": "https://nette.org/contributors"
}
],
"description": "Symfony CssSelector Component",
"homepage": "https://symfony.com",
"time": "2016-11-03 08:11:03"
"description": "Nette NEON: parser & generator for Nette Object Notation",
"homepage": "http://ne-on.org",
"time": "2016-06-25 13:59:48"
},
{
"name": "symfony/dom-crawler",
"version": "v3.2.1",
"name": "nette/php-generator",
"version": "v2.4.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/dom-crawler.git",
"reference": "1638c7534a8a2fa0bf9e979f9aacb6d7e8e9e24e"
"url": "https://github.com/nette/php-generator.git",
"reference": "e9f4429f5ac526661634242198a1ff394fa5440a"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/symfony/dom-crawler/1638c7534a8a2fa0bf9e979f9aacb6d7e8e9e24e.zip",
"reference": "1638c7534a8a2fa0bf9e979f9aacb6d7e8e9e24e",
"url": "https://packagist.phpcomposer.com/files/nette/php-generator/e9f4429f5ac526661634242198a1ff394fa5440a.zip",
"reference": "e9f4429f5ac526661634242198a1ff394fa5440a",
"shasum": ""
},
"require": {
"php": ">=5.5.9",
"symfony/polyfill-mbstring": "~1.0"
"nette/utils": "~2.4",
"php": ">=5.6.0"
},
"require-dev": {
"symfony/css-selector": "~2.8|~3.0"
"conflict": {
"nette/nette": "<2.2"
},
"suggest": {
"symfony/css-selector": ""
"require-dev": {
"nette/tester": "~2.0",
"tracy/tracy": "^2.3"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.2-dev"
"dev-master": "2.4-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\DomCrawler\\": ""
},
"exclude-from-classmap": [
"/Tests/"
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
"BSD-3-Clause",
"GPL-2.0",
"GPL-3.0"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
"name": "David Grudl",
"homepage": "https://davidgrudl.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
"name": "Nette Community",
"homepage": "https://nette.org/contributors"
}
],
"description": "Symfony DomCrawler Component",
"homepage": "https://symfony.com",
"time": "2016-12-10 14:24:53"
"description": "Nette PHP Generator",
"homepage": "https://nette.org",
"time": "2016-07-31 13:50:37"
},
{
"name": "symfony/options-resolver",
"version": "v3.2.1",
"name": "nette/robot-loader",
"version": "v2.4.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/options-resolver.git",
"reference": "45940bcad6388b3b6058107eca67ced738d205bb"
"url": "https://github.com/nette/robot-loader.git",
"reference": "f23f8885624b249d5ec7bb525b9d6b007ab00293"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/symfony/options-resolver/45940bcad6388b3b6058107eca67ced738d205bb.zip",
"reference": "45940bcad6388b3b6058107eca67ced738d205bb",
"url": "https://packagist.phpcomposer.com/files/nette/robot-loader/f23f8885624b249d5ec7bb525b9d6b007ab00293.zip",
"reference": "f23f8885624b249d5ec7bb525b9d6b007ab00293",
"shasum": ""
},
"require": {
"php": ">=5.5.9"
"ext-tokenizer": "*",
"nette/caching": "~2.2",
"nette/finder": "~2.3",
"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": "3.2-dev"
"dev-master": "2.4-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\OptionsResolver\\": ""
},
"exclude-from-classmap": [
"/Tests/"
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
"BSD-3-Clause",
"GPL-2.0",
"GPL-3.0"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
"name": "David Grudl",
"homepage": "https://davidgrudl.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
"name": "Nette Community",
"homepage": "https://nette.org/contributors"
}
],
"description": "Symfony OptionsResolver Component",
"homepage": "https://symfony.com",
"keywords": [
"config",
"configuration",
"options"
],
"time": "2016-05-13 18:13:23"
"description": "Nette RobotLoader: comfortable autoloading",
"homepage": "https://nette.org",
"time": "2017-01-02 17:15:22"
},
{
"name": "symfony/polyfill-mbstring",
"version": "v1.3.0",
"name": "nette/utils",
"version": "v2.4.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "e79d363049d1c2128f133a2667e4f4190904f7f4"
"url": "https://github.com/nette/utils.git",
"reference": "fd2e67c2ce28da409864507d8d124621780d036d"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/symfony/polyfill-mbstring/e79d363049d1c2128f133a2667e4f4190904f7f4.zip",
"reference": "e79d363049d1c2128f133a2667e4f4190904f7f4",
"url": "https://packagist.phpcomposer.com/files/nette/utils/fd2e67c2ce28da409864507d8d124621780d036d.zip",
"reference": "fd2e67c2ce28da409864507d8d124621780d036d",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
"php": ">=5.6.0"
},
"conflict": {
"nette/nette": "<2.2"
},
"require-dev": {
"nette/tester": "~2.0",
"tracy/tracy": "^2.3"
},
"suggest": {
"ext-mbstring": "For best performance"
"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": "1.3-dev"
"dev-master": "2.4-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Mbstring\\": ""
},
"files": [
"bootstrap.php"
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
"BSD-3-Clause",
"GPL-2.0",
"GPL-3.0"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
"name": "David Grudl",
"homepage": "https://davidgrudl.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
"name": "Nette Community",
"homepage": "https://nette.org/contributors"
}
],
"description": "Symfony polyfill for the Mbstring extension",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"mbstring",
"polyfill",
"portable",
"shim"
],
"time": "2016-11-14 01:06:16"
"description": "Nette Utility Classes",
"homepage": "https://nette.org",
"time": "2016-12-19 22:01:55"
},
{
"name": "symfony/translation",
"version": "v3.2.1",
"name": "nikic/php-parser",
"version": "v3.0.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
"reference": "5fd18eca88f4d187807a1eba083bc99feaa8635b"
"url": "https://github.com/nikic/PHP-Parser.git",
"reference": "adf44419c0fc014a0f191db6f89d3e55d4211744"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/symfony/translation/5fd18eca88f4d187807a1eba083bc99feaa8635b.zip",
"reference": "5fd18eca88f4d187807a1eba083bc99feaa8635b",
"url": "https://packagist.phpcomposer.com/files/nikic/PHP-Parser/adf44419c0fc014a0f191db6f89d3e55d4211744.zip",
"reference": "adf44419c0fc014a0f191db6f89d3e55d4211744",
"shasum": ""
},
"require": {
"php": ">=5.5.9",
"symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
"symfony/config": "<2.8"
"ext-tokenizer": "*",
"php": ">=5.5"
},
"require-dev": {
"psr/log": "~1.0",
"symfony/config": "~2.8|~3.0",
"symfony/intl": "~2.8|~3.0",
"symfony/yaml": "~2.8|~3.0"
},
"suggest": {
"psr/log": "To use logging capability in translator",
"symfony/config": "",
"symfony/yaml": ""
"phpunit/phpunit": "~4.0|~5.0"
},
"bin": [
"bin/php-parse"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.2-dev"
"dev-master": "3.0-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\Translation\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
"PhpParser\\": "lib/PhpParser"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
"BSD-3-Clause"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
"name": "Nikita Popov"
}
],
"description": "Symfony Translation Component",
"homepage": "https://symfony.com",
"time": "2016-11-30 14:40:17"
}
],
"packages-dev": [
"description": "A PHP parser written in PHP",
"keywords": [
"parser",
"php"
],
"time": "2016-12-06 11:30:35"
},
{
"name": "nette/bootstrap",
"version": "v2.4.2",
"name": "paragonie/random_compat",
"version": "v2.0.4",
"source": {
"type": "git",
"url": "https://github.com/nette/bootstrap.git",
"reference": "4db37e6d42ddf41b50417950741113b5dfc86e27"
"url": "https://github.com/paragonie/random_compat.git",
"reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/nette/bootstrap/4db37e6d42ddf41b50417950741113b5dfc86e27.zip",
"reference": "4db37e6d42ddf41b50417950741113b5dfc86e27",
"url": "https://packagist.phpcomposer.com/files/paragonie/random_compat/a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e.zip",
"reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e",
"shasum": ""
},
"require": {
"nette/di": "~2.4.0",
"nette/utils": "~2.4",
"php": ">=5.6.0"
},
"conflict": {
"nette/nette": "<2.2"
"php": ">=5.2.0"
},
"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.2",
"nette/safe-stream": "~2.2",
"nette/security": "~2.3",
"nette/tester": "~2.0",
"tracy/tracy": "^2.4.1"
"phpunit/phpunit": "4.*|5.*"
},
"suggest": {
"nette/robot-loader": "to use Configurator::createRobotLoader()",
"tracy/tracy": "to use Configurator::enableTracy()"
"ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.4-dev"
}
},
"autoload": {
"classmap": [
"src/"
"files": [
"lib/random.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause",
"GPL-2.0",
"GPL-3.0"
"MIT"
],
"authors": [
{
"name": "David Grudl",
"homepage": "https://davidgrudl.com"
},
{
"name": "Nette Community",
"homepage": "https://nette.org/contributors"
"name": "Paragon Initiative Enterprises",
"email": "security@paragonie.com",
"homepage": "https://paragonie.com"
}
],
"description": "Nette Bootstrap",
"homepage": "https://nette.org",
"time": "2016-12-19 12:12:10"
"description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
"keywords": [
"csprng",
"pseudorandom",
"random"
],
"time": "2016-11-07 23:38:38"
},
{
"name": "nette/caching",
"version": "v2.5.2",
"name": "phpstan/phpstan",
"version": "0.4.2",
"source": {
"type": "git",
"url": "https://github.com/nette/caching.git",
"reference": "7da6cc65f301e220acba4fd8a11d3afdc642be9e"
"url": "https://github.com/phpstan/phpstan.git",
"reference": "075b4924eefbf84cd857d1e09842036d06b05c08"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/nette/caching/7da6cc65f301e220acba4fd8a11d3afdc642be9e.zip",
"reference": "7da6cc65f301e220acba4fd8a11d3afdc642be9e",
"url": "https://packagist.phpcomposer.com/files/phpstan/phpstan/075b4924eefbf84cd857d1e09842036d06b05c08.zip",
"reference": "075b4924eefbf84cd857d1e09842036d06b05c08",
"shasum": ""
},
"require": {
"nette/finder": "~2.2",
"nette/bootstrap": "~2.4",
"nette/caching": "~2.4",
"nette/di": "~2.4",
"nette/robot-loader": "~2.4",
"nette/utils": "~2.4",
"php": ">=5.6.0"
},
"conflict": {
"nette/nette": "<2.2"
"nikic/php-parser": "~3.0.2",
"php": "~7.0",
"symfony/console": "~2.8 || ~3.0",
"symfony/finder": "~2.8 || ~3.0",
"tracy/tracy": "~2.4"
},
"require-dev": {
"latte/latte": "~2.4",
"nette/di": "~2.4",
"nette/tester": "~2.0",
"tracy/tracy": "^2.4"
"consistence/coding-standard": "~0.12.0",
"phing/phing": "^2.13.0",
"phpunit/phpunit": "^5.6",
"satooshi/php-coveralls": "^1.0",
"slevomat/coding-standard": "dev-php7#d4a1a9cd4e"
},
"suggest": {
"ext-pdo_sqlite": "to use SQLiteStorage or SQLiteJournal"
"bin": [
"bin/phpstan"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "0.4-dev"
}
},
"autoload": {
"psr-4": {
"PHPStan\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "PHPStan - PHP Static Analysis Tool",
"time": "2016-12-12 20:31:52"
},
{
"name": "pimple/pimple",
"version": "v3.0.2",
"source": {
"type": "git",
"url": "https://github.com/silexphp/Pimple.git",
"reference": "a30f7d6e57565a2e1a316e1baf2a483f788b258a"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/silexphp/Pimple/a30f7d6e57565a2e1a316e1baf2a483f788b258a.zip",
"reference": "a30f7d6e57565a2e1a316e1baf2a483f788b258a",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.5-dev"
"dev-master": "3.0.x-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
"psr-0": {
"Pimple": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause",
"GPL-2.0",
"GPL-3.0"
"MIT"
],
"authors": [
{
"name": "David Grudl",
"homepage": "https://davidgrudl.com"
},
{
"name": "Nette Community",
"homepage": "https://nette.org/contributors"
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "Nette Caching Component",
"homepage": "https://nette.org",
"time": "2016-10-06 00:08:42"
"description": "Pimple, a simple Dependency Injection Container",
"homepage": "http://pimple.sensiolabs.org",
"keywords": [
"container",
"dependency injection"
],
"time": "2015-09-11 15:10:35"
},
{
"name": "nette/di",
"version": "v2.4.5",
"name": "psr/http-message",
"version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/nette/di.git",
"reference": "b265f305e1fef2dad1cb2e7340b49d274d3dd14c"
"url": "https://github.com/php-fig/http-message.git",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/nette/di/b265f305e1fef2dad1cb2e7340b49d274d3dd14c.zip",
"reference": "b265f305e1fef2dad1cb2e7340b49d274d3dd14c",
"url": "https://packagist.phpcomposer.com/files/php-fig/http-message/f6561bf28d520154e4b0ec72be95418abe6d9363.zip",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
"shasum": ""
},
"require": {
"ext-tokenizer": "*",
"nette/neon": "^2.3.3",
"nette/php-generator": "^2.4",
"nette/utils": "^2.4",
"php": ">=5.6.0"
"php": ">=5.3.0"
},
"conflict": {
"nette/bootstrap": "<2.4",
"nette/nette": "<2.2"
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"require-dev": {
"nette/tester": "~2.0",
"tracy/tracy": "^2.3"
"autoload": {
"psr-4": {
"Psr\\Http\\Message\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for HTTP messages",
"homepage": "https://github.com/php-fig/http-message",
"keywords": [
"http",
"http-message",
"psr",
"psr-7",
"request",
"response"
],
"time": "2016-08-06 14:39:51"
},
{
"name": "psr/log",
"version": "1.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
"reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/php-fig/log/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d.zip",
"reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.4-dev"
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
"psr-4": {
"Psr\\Log\\": "Psr/Log/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause",
"GPL-2.0",
"GPL-3.0"
"MIT"
],
"authors": [
{
"name": "David Grudl",
"homepage": "https://davidgrudl.com"
},
{
"name": "Nette Community",
"homepage": "https://nette.org/contributors"
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Nette Dependency Injection Component",
"homepage": "https://nette.org",
"time": "2016-12-23 10:26:44"
"description": "Common interface for logging libraries",
"homepage": "https://github.com/php-fig/log",
"keywords": [
"log",
"psr",
"psr-3"
],
"time": "2016-10-10 12:19:37"
},
{
"name": "nette/finder",
"version": "v2.4.0",
"name": "querypath/querypath",
"version": "3.0.5",
"source": {
"type": "git",
"url": "https://github.com/nette/finder.git",
"reference": "5cabd5fe89f9903715359a403b820c7f94f9bb5e"
"type": "git",
"url": "https://github.com/technosophos/querypath.git",
"reference": "6b8e2395fac61fac25bbe962f94def556cb85f7d"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/nette/finder/5cabd5fe89f9903715359a403b820c7f94f9bb5e.zip",
"reference": "5cabd5fe89f9903715359a403b820c7f94f9bb5e",
"url": "https://packagist.phpcomposer.com/files/technosophos/querypath/6b8e2395fac61fac25bbe962f94def556cb85f7d.zip",
"reference": "6b8e2395fac61fac25bbe962f94def556cb85f7d",
"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"
"masterminds/html5": "2.*",
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.4-dev"
}
},
"autoload": {
"classmap": [
"src/"
"psr-0": {
"QueryPath": "src/"
},
"files": [
"src/qp_functions.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause",
"GPL-2.0",
"GPL-3.0"
"MIT"
],
"authors": [
{
"name": "David Grudl",
"homepage": "https://davidgrudl.com"
},
{
"name": "Nette Community",
"homepage": "https://nette.org/contributors"
}
"description": "HTML/XML querying (CSS 4 or XPath) and processing (like jQuery)",
"homepage": "https://github.com/technosophos/querypath",
"keywords": [
"css",
"html",
"jquery",
"xml",
"xslt"
],
"description": "Nette Finder: Files Searching",
"homepage": "https://nette.org",
"time": "2016-05-17 15:49:06"
"time": "2016-08-01 22:40:30"
},
{
"name": "nette/neon",
"version": "v2.4.0",
"name": "symfony/console",
"version": "v3.2.1",
"source": {
"type": "git",
"url": "https://github.com/nette/neon.git",
"reference": "c40c63f2afa4196844ac40d9d2a2cfb313f76906"
"url": "https://github.com/symfony/console.git",
"reference": "d12aa9ca20f4db83ec58410978dab6afcb9d6aaa"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/nette/neon/c40c63f2afa4196844ac40d9d2a2cfb313f76906.zip",
"reference": "c40c63f2afa4196844ac40d9d2a2cfb313f76906",
"url": "https://packagist.phpcomposer.com/files/symfony/console/d12aa9ca20f4db83ec58410978dab6afcb9d6aaa.zip",
"reference": "d12aa9ca20f4db83ec58410978dab6afcb9d6aaa",
"shasum": ""
},
"require": {
"ext-iconv": "*",
"php": ">=5.6.0"
"php": ">=5.5.9",
"symfony/debug": "~2.8|~3.0",
"symfony/polyfill-mbstring": "~1.0"
},
"require-dev": {
"nette/tester": "~2.0",
"tracy/tracy": "^2.3"
"psr/log": "~1.0",
"symfony/event-dispatcher": "~2.8|~3.0",
"symfony/filesystem": "~2.8|~3.0",
"symfony/process": "~2.8|~3.0"
},
"suggest": {
"psr/log": "For using the console logger",
"symfony/event-dispatcher": "",
"symfony/filesystem": "",
"symfony/process": ""
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.4-dev"
"dev-master": "3.2-dev"
}
},
"autoload": {
"classmap": [
"src/"
"psr-4": {
"Symfony\\Component\\Console\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause",
"GPL-2.0",
"GPL-3.0"
"MIT"
],
"authors": [
{
"name": "David Grudl",
"homepage": "https://davidgrudl.com"
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Nette Community",
"homepage": "https://nette.org/contributors"
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Nette NEON: parser & generator for Nette Object Notation",
"homepage": "http://ne-on.org",
"time": "2016-06-25 13:59:48"
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
"time": "2016-12-11 14:34:22"
},
{
"name": "nette/php-generator",
"version": "v2.4.1",
"name": "symfony/css-selector",
"version": "v3.2.1",
"source": {
"type": "git",
"url": "https://github.com/nette/php-generator.git",
"reference": "e9f4429f5ac526661634242198a1ff394fa5440a"
"url": "https://github.com/symfony/css-selector.git",
"reference": "e1241f275814827c411d922ba8e64cf2a00b2994"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/nette/php-generator/e9f4429f5ac526661634242198a1ff394fa5440a.zip",
"reference": "e9f4429f5ac526661634242198a1ff394fa5440a",
"url": "https://packagist.phpcomposer.com/files/symfony/css-selector/e1241f275814827c411d922ba8e64cf2a00b2994.zip",
"reference": "e1241f275814827c411d922ba8e64cf2a00b2994",
"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"
"php": ">=5.5.9"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.4-dev"
"dev-master": "3.2-dev"
}
},
"autoload": {
"classmap": [
"src/"
"psr-4": {
"Symfony\\Component\\CssSelector\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause",
"GPL-2.0",
"GPL-3.0"
"MIT"
],
"authors": [
{
"name": "David Grudl",
"homepage": "https://davidgrudl.com"
"name": "Jean-François Simon",
"email": "jeanfrancois.simon@sensiolabs.com"
},
{
"name": "Nette Community",
"homepage": "https://nette.org/contributors"
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Nette PHP Generator",
"homepage": "https://nette.org",
"time": "2016-07-31 13:50:37"
"description": "Symfony CssSelector Component",
"homepage": "https://symfony.com",
"time": "2016-11-03 08:11:03"
},
{
"name": "nette/robot-loader",
"version": "v2.4.2",
"name": "symfony/debug",
"version": "v3.2.1",
"source": {
"type": "git",
"url": "https://github.com/nette/robot-loader.git",
"reference": "f23f8885624b249d5ec7bb525b9d6b007ab00293"
"url": "https://github.com/symfony/debug.git",
"reference": "9f923e68d524a3095c5a2ae5fc7220c7cbc12231"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/nette/robot-loader/f23f8885624b249d5ec7bb525b9d6b007ab00293.zip",
"reference": "f23f8885624b249d5ec7bb525b9d6b007ab00293",
"url": "https://packagist.phpcomposer.com/files/symfony/debug/9f923e68d524a3095c5a2ae5fc7220c7cbc12231.zip",
"reference": "9f923e68d524a3095c5a2ae5fc7220c7cbc12231",
"shasum": ""
},
"require": {
"ext-tokenizer": "*",
"nette/caching": "~2.2",
"nette/finder": "~2.3",
"nette/utils": "~2.4",
"php": ">=5.6.0"
"php": ">=5.5.9",
"psr/log": "~1.0"
},
"conflict": {
"nette/nette": "<2.2"
"symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
},
"require-dev": {
"nette/tester": "~2.0",
"tracy/tracy": "^2.3"
"symfony/class-loader": "~2.8|~3.0",
"symfony/http-kernel": "~2.8|~3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.4-dev"
"dev-master": "3.2-dev"
}
},
"autoload": {
"classmap": [
"src/"
"psr-4": {
"Symfony\\Component\\Debug\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause",
"GPL-2.0",
"GPL-3.0"
"MIT"
],
"authors": [
{
"name": "David Grudl",
"homepage": "https://davidgrudl.com"
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Nette Community",
"homepage": "https://nette.org/contributors"
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Nette RobotLoader: comfortable autoloading",
"homepage": "https://nette.org",
"time": "2017-01-02 17:15:22"
"description": "Symfony Debug Component",
"homepage": "https://symfony.com",
"time": "2016-11-16 22:18:16"
},
{
"name": "nette/utils",
"version": "v2.4.2",
"name": "symfony/dom-crawler",
"version": "v3.2.1",
"source": {
"type": "git",
"url": "https://github.com/nette/utils.git",
"reference": "fd2e67c2ce28da409864507d8d124621780d036d"
"url": "https://github.com/symfony/dom-crawler.git",
"reference": "1638c7534a8a2fa0bf9e979f9aacb6d7e8e9e24e"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/nette/utils/fd2e67c2ce28da409864507d8d124621780d036d.zip",
"reference": "fd2e67c2ce28da409864507d8d124621780d036d",
"url": "https://packagist.phpcomposer.com/files/symfony/dom-crawler/1638c7534a8a2fa0bf9e979f9aacb6d7e8e9e24e.zip",
"reference": "1638c7534a8a2fa0bf9e979f9aacb6d7e8e9e24e",
"shasum": ""
},
"require": {
"php": ">=5.6.0"
},
"conflict": {
"nette/nette": "<2.2"
"php": ">=5.5.9",
"symfony/polyfill-mbstring": "~1.0"
},
"require-dev": {
"nette/tester": "~2.0",
"tracy/tracy": "^2.3"
"symfony/css-selector": "~2.8|~3.0"
},
"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"
"symfony/css-selector": ""
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.4-dev"
"dev-master": "3.2-dev"
}
},
"autoload": {
"classmap": [
"src/"
"psr-4": {
"Symfony\\Component\\DomCrawler\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause",
"GPL-2.0",
"GPL-3.0"
"MIT"
],
"authors": [
{
"name": "David Grudl",
"homepage": "https://davidgrudl.com"
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Nette Community",
"homepage": "https://nette.org/contributors"
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Nette Utility Classes",
"homepage": "https://nette.org",
"time": "2016-12-19 22:01:55"
"description": "Symfony DomCrawler Component",
"homepage": "https://symfony.com",
"time": "2016-12-10 14:24:53"
},
{
"name": "nikic/php-parser",
"version": "v3.0.2",
"name": "symfony/finder",
"version": "v3.2.1",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
"reference": "adf44419c0fc014a0f191db6f89d3e55d4211744"
"url": "https://github.com/symfony/finder.git",
"reference": "a69cb5d455b4885ca376dc5bb3e1155cc8c08c4b"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/nikic/PHP-Parser/adf44419c0fc014a0f191db6f89d3e55d4211744.zip",
"reference": "adf44419c0fc014a0f191db6f89d3e55d4211744",
"url": "https://packagist.phpcomposer.com/files/symfony/finder/a69cb5d455b4885ca376dc5bb3e1155cc8c08c4b.zip",
"reference": "a69cb5d455b4885ca376dc5bb3e1155cc8c08c4b",
"shasum": ""
},
"require": {
"ext-tokenizer": "*",
"php": ">=5.5"
},
"require-dev": {
"phpunit/phpunit": "~4.0|~5.0"
"php": ">=5.5.9"
},
"bin": [
"bin/php-parse"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.0-dev"
"dev-master": "3.2-dev"
}
},
"autoload": {
"psr-4": {
"PhpParser\\": "lib/PhpParser"
}
"Symfony\\Component\\Finder\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
"MIT"
],
"authors": [
{
"name": "Nikita Popov"
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "A PHP parser written in PHP",
"keywords": [
"parser",
"php"
],
"time": "2016-12-06 11:30:35"
"description": "Symfony Finder Component",
"homepage": "https://symfony.com",
"time": "2016-12-13 09:39:43"
},
{
"name": "phpstan/phpstan",
"version": "0.4.2",
"name": "symfony/options-resolver",
"version": "v3.2.1",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
"reference": "075b4924eefbf84cd857d1e09842036d06b05c08"
"url": "https://github.com/symfony/options-resolver.git",
"reference": "45940bcad6388b3b6058107eca67ced738d205bb"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/phpstan/phpstan/075b4924eefbf84cd857d1e09842036d06b05c08.zip",
"reference": "075b4924eefbf84cd857d1e09842036d06b05c08",
"url": "https://packagist.phpcomposer.com/files/symfony/options-resolver/45940bcad6388b3b6058107eca67ced738d205bb.zip",
"reference": "45940bcad6388b3b6058107eca67ced738d205bb",
"shasum": ""
},
"require": {
"nette/bootstrap": "~2.4",
"nette/caching": "~2.4",
"nette/di": "~2.4",
"nette/robot-loader": "~2.4",
"nette/utils": "~2.4",
"nikic/php-parser": "~3.0.2",
"php": "~7.0",
"symfony/console": "~2.8 || ~3.0",
"symfony/finder": "~2.8 || ~3.0",
"tracy/tracy": "~2.4"
},
"require-dev": {
"consistence/coding-standard": "~0.12.0",
"phing/phing": "^2.13.0",
"phpunit/phpunit": "^5.6",
"satooshi/php-coveralls": "^1.0",
"slevomat/coding-standard": "dev-php7#d4a1a9cd4e"
"php": ">=5.5.9"
},
"bin": [
"bin/phpstan"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "0.4-dev"
"dev-master": "3.2-dev"
}
},
"autoload": {
"psr-4": {
"PHPStan\\": "src/"
}
"Symfony\\Component\\OptionsResolver\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "PHPStan - PHP Static Analysis Tool",
"time": "2016-12-12 20:31:52"
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony OptionsResolver Component",
"homepage": "https://symfony.com",
"keywords": [
"config",
"configuration",
"options"
],
"time": "2016-05-13 18:13:23"
},
{
"name": "psr/log",
"version": "1.0.2",
"name": "symfony/polyfill-mbstring",
"version": "v1.3.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
"reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
"url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "e79d363049d1c2128f133a2667e4f4190904f7f4"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/php-fig/log/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d.zip",
"reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
"url": "https://packagist.phpcomposer.com/files/symfony/polyfill-mbstring/e79d363049d1c2128f133a2667e4f4190904f7f4.zip",
"reference": "e79d363049d1c2128f133a2667e4f4190904f7f4",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
"php": ">=5.3.3"
},
"suggest": {
"ext-mbstring": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
"dev-master": "1.3-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Log\\": "Psr/Log/"
}
"Symfony\\Polyfill\\Mbstring\\": ""
},
"files": [
"bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
......@@ -1609,59 +1750,51 @@
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Common interface for logging libraries",
"homepage": "https://github.com/php-fig/log",
"description": "Symfony polyfill for the Mbstring extension",
"homepage": "https://symfony.com",
"keywords": [
"log",
"psr",
"psr-3"
"compatibility",
"mbstring",
"polyfill",
"portable",
"shim"
],
"time": "2016-10-10 12:19:37"
"time": "2016-11-14 01:06:16"
},
{
"name": "symfony/console",
"version": "v3.2.1",
"name": "symfony/process",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "d12aa9ca20f4db83ec58410978dab6afcb9d6aaa"
"url": "https://github.com/symfony/process.git",
"reference": "6c687d5ae36a8677a6e3ce020d12b18feac79d5b"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/symfony/console/d12aa9ca20f4db83ec58410978dab6afcb9d6aaa.zip",
"reference": "d12aa9ca20f4db83ec58410978dab6afcb9d6aaa",
"url": "https://packagist.phpcomposer.com/files/symfony/process/6c687d5ae36a8677a6e3ce020d12b18feac79d5b.zip",
"reference": "6c687d5ae36a8677a6e3ce020d12b18feac79d5b",
"shasum": ""
},
"require": {
"php": ">=5.5.9",
"symfony/debug": "~2.8|~3.0",
"symfony/polyfill-mbstring": "~1.0"
},
"require-dev": {
"psr/log": "~1.0",
"symfony/event-dispatcher": "~2.8|~3.0",
"symfony/filesystem": "~2.8|~3.0",
"symfony/process": "~2.8|~3.0"
},
"suggest": {
"psr/log": "For using the console logger",
"symfony/event-dispatcher": "",
"symfony/filesystem": "",
"symfony/process": ""
"php": ">=5.5.9"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.2-dev"
"dev-master": "3.3-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\Console\\": ""
"Symfony\\Component\\Process\\": ""
},
"exclude-from-classmap": [
"/Tests/"
......@@ -1681,34 +1814,41 @@
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Console Component",
"description": "Symfony Process Component",
"homepage": "https://symfony.com",
"time": "2016-12-11 14:34:22"
"time": "2017-01-02 20:33:09"
},
{
"name": "symfony/debug",
"name": "symfony/translation",
"version": "v3.2.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/debug.git",
"reference": "9f923e68d524a3095c5a2ae5fc7220c7cbc12231"
"url": "https://github.com/symfony/translation.git",
"reference": "5fd18eca88f4d187807a1eba083bc99feaa8635b"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/symfony/debug/9f923e68d524a3095c5a2ae5fc7220c7cbc12231.zip",
"reference": "9f923e68d524a3095c5a2ae5fc7220c7cbc12231",
"url": "https://packagist.phpcomposer.com/files/symfony/translation/5fd18eca88f4d187807a1eba083bc99feaa8635b.zip",
"reference": "5fd18eca88f4d187807a1eba083bc99feaa8635b",
"shasum": ""
},
"require": {
"php": ">=5.5.9",
"psr/log": "~1.0"
"symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
"symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
"symfony/config": "<2.8"
},
"require-dev": {
"symfony/class-loader": "~2.8|~3.0",
"symfony/http-kernel": "~2.8|~3.0"
"psr/log": "~1.0",
"symfony/config": "~2.8|~3.0",
"symfony/intl": "~2.8|~3.0",
"symfony/yaml": "~2.8|~3.0"
},
"suggest": {
"psr/log": "To use logging capability in translator",
"symfony/config": "",
"symfony/yaml": ""
},
"type": "library",
"extra": {
......@@ -1718,7 +1858,7 @@
},
"autoload": {
"psr-4": {
"Symfony\\Component\\Debug\\": ""
"Symfony\\Component\\Translation\\": ""
},
"exclude-from-classmap": [
"/Tests/"
......@@ -1738,36 +1878,46 @@
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Debug Component",
"description": "Symfony Translation Component",
"homepage": "https://symfony.com",
"time": "2016-11-16 22:18:16"
"time": "2016-11-30 14:40:17"
},
{
"name": "symfony/finder",
"version": "v3.2.1",
"name": "symfony/var-dumper",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
"reference": "a69cb5d455b4885ca376dc5bb3e1155cc8c08c4b"
"url": "https://github.com/symfony/var-dumper.git",
"reference": "45917d2b18425e5fac2a980f1f1bcc7023a16323"
},
"dist": {
"type": "zip",
"url": "https://packagist.phpcomposer.com/files/symfony/finder/a69cb5d455b4885ca376dc5bb3e1155cc8c08c4b.zip",
"reference": "a69cb5d455b4885ca376dc5bb3e1155cc8c08c4b",
"url": "https://packagist.phpcomposer.com/files/symfony/var-dumper/45917d2b18425e5fac2a980f1f1bcc7023a16323.zip",
"reference": "45917d2b18425e5fac2a980f1f1bcc7023a16323",
"shasum": ""
},
"require": {
"php": ">=5.5.9"
"php": ">=5.5.9",
"symfony/polyfill-mbstring": "~1.0"
},
"require-dev": {
"twig/twig": "~1.20|~2.0"
},
"suggest": {
"ext-symfony_debug": ""
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.2-dev"
"dev-master": "3.3-dev"
}
},
"autoload": {
"files": [
"Resources/functions/dump.php"
],
"psr-4": {
"Symfony\\Component\\Finder\\": ""
"Symfony\\Component\\VarDumper\\": ""
},
"exclude-from-classmap": [
"/Tests/"
......@@ -1779,17 +1929,21 @@
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Finder Component",
"description": "Symfony mechanism for exploring and dumping PHP variables",
"homepage": "https://symfony.com",
"time": "2016-12-13 09:39:43"
"keywords": [
"debug",
"dump"
],
"time": "2017-01-15 16:39:59"
},
{
"name": "tracy/tracy",
......@@ -1854,11 +2008,14 @@
"time": "2016-12-10 15:04:11"
}
],
"packages-dev": [],
"aliases": [],
"minimum-stability": "stable",
"minimum-stability": "dev",
"stability-flags": [],
"prefer-stable": false,
"prefer-lowest": false,
"platform": [],
"platform": {
"php": ">=7.0.0"
},
"platform-dev": []
}
......@@ -18,9 +18,11 @@ $robot = new Vbot([
$flag = false;
$robot->server->setCustomerHandler(function() use (&$flag){
$contact = contact()->getUsernameById('matts8023');
// RemarkName,代表的改用户在你通讯录的名字
$contact = contact()->getUsernameByRemarkName('hanson');
if ($contact === false){
dd("找不到你要的联系人,请确认联系人姓名");
}
if(!$flag){
Text::send($contact, '来轰炸吧');
$flag = true;
......
......@@ -62,5 +62,20 @@ class Contact extends Collection
}
});
}
/**
* 根据通讯录中的名字获取通讯对象
*
* @param $id
* @return mixed
*/
public function getUsernameByRemarkName( $id)
{
return $this->search(function($item, $key) use ($id){
if($item['RemarkName'] === $id){
return true;
}
});
}
}
\ No newline at end of file
......@@ -10,12 +10,9 @@ namespace Hanson\Vbot\Core;
use Endroid\QrCode\QrCode;
use GuzzleHttp\Client;
use Hanson\Vbot\Collections\Account;
use Hanson\Vbot\Collections\ContactFactory;
use Hanson\Vbot\Collections\Group;
use Hanson\Vbot\Support\Console;
use Symfony\Component\DomCrawler\Crawler;
class Server
{
......@@ -60,7 +57,7 @@ class Server
{
$this->config = $config;
$this->config['debug'] = $this->config['debug'] ?? false;
$this->config['debug'] = isset($this->config['debug']) ? $this->config['debug'] : false;
}
/**
......@@ -97,6 +94,7 @@ class Server
{
$this->getUuid();
$this->generateQrCode();
Console::showQrCode('https://login.weixin.qq.com/l/' . $this->uuid);
Console::log('[INFO] 请扫描二维码登录');
$this->waitForLogin();
......@@ -144,10 +142,6 @@ class Server
$file = $this->config['tmp'] . 'qr.png';
$qrCode->save($file);
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
system($file);
}
}
/**
......@@ -253,7 +247,7 @@ class Server
$content = http()->json($url, [
'BaseRequest' => $this->baseRequest
]);
$result = json_decode($content, true);
$this->generateSyncKey($result, $first);
......@@ -334,11 +328,4 @@ class Server
{
MessageHandler::getInstance()->setExceptionHandler($closure);
}
public function debug($debug = true)
{
$this->debug = $debug;
return $this;
}
}
\ No newline at end of file
......@@ -9,12 +9,66 @@
namespace Hanson\Vbot\Support;
use PHPQRCode\QRcode;
use Symfony\Component\Console\Formatter\OutputFormatterStyle;
use Symfony\Component\Console\Output\ConsoleOutput;
use Symfony\Component\Console\Output\OutputInterface;
class Console
{
/**
* 输出字符串
*
* @param $str
*/
public static function log($str)
{
echo $str . PHP_EOL;
}
/**
* 初始化二维码style
*
* @param OutputInterface $output
*/
private static function initQrcodeStyle(OutputInterface $output) {
$style = new OutputFormatterStyle('black', 'black', array('bold'));
$output->getFormatter()->setStyle('blackc', $style);
$style = new OutputFormatterStyle('white', 'white', array('bold'));
$output->getFormatter()->setStyle('whitec', $style);
}
/**
* 控制台显示二维码
*
* @param $text
*/
public static function showQrCode($text)
{
$output = new ConsoleOutput();
static::initQrcodeStyle($output);
if(System::isWin()){
$pxMap = ['<whitec>mm</whitec>', '<blackc> </blackc>'];
system('cls');
}else{
$pxMap = ['<whitec> </whitec>', '<blackc> </blackc>'];
system('clear');
}
$text = QRcode::text($text);
$length = strlen($text[0]);
foreach ($text as $line) {
$output->write($pxMap[0]);
for ($i = 0; $i < $length; $i++) {
$type = substr($line, $i, 1);
$output->write($pxMap[$type]);
}
$output->writeln($pxMap[0]);
}
}
}
\ No newline at end of file
<?php
/**
* Created by PhpStorm.
* User: Hanson
* Date: 2017/1/20
* Time: 18:37
*/
namespace Hanson\Vbot\Support;
class System
{
/**
* 判断运行服务器是否windows
*
* @return bool
*/
public static function isWin()
{
return strtoupper(substr(PHP_OS, 0, 3)) === 'WIN';
}
}
\ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!