Commit cb5f6d4d by zhuanxuhit

修复了无法找到联系人姓名的bug同时直接在控制台输出二维码方便登陆

1 parent 5d6fbba5
...@@ -17,7 +17,9 @@ ...@@ -17,7 +17,9 @@
"illuminate/support": "^5.3", "illuminate/support": "^5.3",
"nesbot/carbon": "^1.21", "nesbot/carbon": "^1.21",
"php": ">=7.0.0", "php": ">=7.0.0",
"symfony/var-dumper": "^3.2" "symfony/var-dumper": "^3.2",
"aferrandini/phpqrcode": "^1.0",
"symfony/process": "^3.2"
}, },
"minimum-stability": "dev", "minimum-stability": "dev",
"autoload": { "autoload": {
......
...@@ -4,10 +4,54 @@ ...@@ -4,10 +4,54 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"hash": "b8d45b4e0794f3855f36113b444420a7", "hash": "b84e2aeb3bf07508860d7856ff874d18",
"content-hash": "4208bf2e5381a25360c7b542e17fd4a0", "content-hash": "1d8a1895a8ce4f7fd0473faaad10cb75",
"packages": [ "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", "name": "doctrine/inflector",
"version": "v1.1.0", "version": "v1.1.0",
"source": { "source": {
...@@ -517,1091 +561,1188 @@ ...@@ -517,1091 +561,1188 @@
"time": "2015-11-04 20:07:17" "time": "2015-11-04 20:07:17"
}, },
{ {
"name": "paragonie/random_compat", "name": "nette/bootstrap",
"version": "v2.0.4", "version": "v2.4.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/paragonie/random_compat.git", "url": "https://github.com/nette/bootstrap.git",
"reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e" "reference": "4db37e6d42ddf41b50417950741113b5dfc86e27"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://packagist.phpcomposer.com/files/paragonie/random_compat/a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e.zip", "url": "https://packagist.phpcomposer.com/files/nette/bootstrap/4db37e6d42ddf41b50417950741113b5dfc86e27.zip",
"reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e", "reference": "4db37e6d42ddf41b50417950741113b5dfc86e27",
"shasum": "" "shasum": ""
}, },
"require": { "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": { "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": { "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", "type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.4-dev"
}
},
"autoload": { "autoload": {
"files": [ "classmap": [
"lib/random.php" "src/"
] ]
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "BSD-3-Clause",
"GPL-2.0",
"GPL-3.0"
], ],
"authors": [ "authors": [
{ {
"name": "Paragon Initiative Enterprises", "name": "David Grudl",
"email": "security@paragonie.com", "homepage": "https://davidgrudl.com"
"homepage": "https://paragonie.com" },
{
"name": "Nette Community",
"homepage": "https://nette.org/contributors"
} }
], ],
"description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", "description": "Nette Bootstrap",
"keywords": [ "homepage": "https://nette.org",
"csprng", "time": "2016-12-19 12:12:10"
"pseudorandom",
"random"
],
"time": "2016-11-07 23:38:38"
}, },
{ {
"name": "pimple/pimple", "name": "nette/caching",
"version": "v3.0.2", "version": "v2.5.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/silexphp/Pimple.git", "url": "https://github.com/nette/caching.git",
"reference": "a30f7d6e57565a2e1a316e1baf2a483f788b258a" "reference": "7da6cc65f301e220acba4fd8a11d3afdc642be9e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://packagist.phpcomposer.com/files/silexphp/Pimple/a30f7d6e57565a2e1a316e1baf2a483f788b258a.zip", "url": "https://packagist.phpcomposer.com/files/nette/caching/7da6cc65f301e220acba4fd8a11d3afdc642be9e.zip",
"reference": "a30f7d6e57565a2e1a316e1baf2a483f788b258a", "reference": "7da6cc65f301e220acba4fd8a11d3afdc642be9e",
"shasum": "" "shasum": ""
}, },
"require": { "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", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.0.x-dev" "dev-master": "2.5-dev"
} }
}, },
"autoload": { "autoload": {
"psr-0": { "classmap": [
"Pimple": "src/" "src/"
} ]
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "BSD-3-Clause",
"GPL-2.0",
"GPL-3.0"
], ],
"authors": [ "authors": [
{ {
"name": "Fabien Potencier", "name": "David Grudl",
"email": "fabien@symfony.com" "homepage": "https://davidgrudl.com"
},
{
"name": "Nette Community",
"homepage": "https://nette.org/contributors"
} }
], ],
"description": "Pimple, a simple Dependency Injection Container", "description": "Nette Caching Component",
"homepage": "http://pimple.sensiolabs.org", "homepage": "https://nette.org",
"keywords": [ "time": "2016-10-06 00:08:42"
"container",
"dependency injection"
],
"time": "2015-09-11 15:10:35"
}, },
{ {
"name": "psr/http-message", "name": "nette/di",
"version": "1.0.1", "version": "v2.4.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-fig/http-message.git", "url": "https://github.com/nette/di.git",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" "reference": "b265f305e1fef2dad1cb2e7340b49d274d3dd14c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://packagist.phpcomposer.com/files/php-fig/http-message/f6561bf28d520154e4b0ec72be95418abe6d9363.zip", "url": "https://packagist.phpcomposer.com/files/nette/di/b265f305e1fef2dad1cb2e7340b49d274d3dd14c.zip",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", "reference": "b265f305e1fef2dad1cb2e7340b49d274d3dd14c",
"shasum": "" "shasum": ""
}, },
"require": { "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", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.0.x-dev" "dev-master": "2.4-dev"
} }
}, },
"autoload": { "autoload": {
"psr-4": { "classmap": [
"Psr\\Http\\Message\\": "src/" "src/"
} ]
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "BSD-3-Clause",
"GPL-2.0",
"GPL-3.0"
], ],
"authors": [ "authors": [
{ {
"name": "PHP-FIG", "name": "David Grudl",
"homepage": "http://www.php-fig.org/" "homepage": "https://davidgrudl.com"
},
{
"name": "Nette Community",
"homepage": "https://nette.org/contributors"
} }
], ],
"description": "Common interface for HTTP messages", "description": "Nette Dependency Injection Component",
"homepage": "https://github.com/php-fig/http-message", "homepage": "https://nette.org",
"keywords": [ "time": "2016-12-23 10:26:44"
"http",
"http-message",
"psr",
"psr-7",
"request",
"response"
],
"time": "2016-08-06 14:39:51"
}, },
{ {
"name": "querypath/querypath", "name": "nette/finder",
"version": "3.0.5", "version": "v2.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/technosophos/querypath.git", "url": "https://github.com/nette/finder.git",
"reference": "6b8e2395fac61fac25bbe962f94def556cb85f7d" "reference": "5cabd5fe89f9903715359a403b820c7f94f9bb5e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://packagist.phpcomposer.com/files/technosophos/querypath/6b8e2395fac61fac25bbe962f94def556cb85f7d.zip", "url": "https://packagist.phpcomposer.com/files/nette/finder/5cabd5fe89f9903715359a403b820c7f94f9bb5e.zip",
"reference": "6b8e2395fac61fac25bbe962f94def556cb85f7d", "reference": "5cabd5fe89f9903715359a403b820c7f94f9bb5e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"masterminds/html5": "2.*", "nette/utils": "~2.4",
"php": ">=5.3.0" "php": ">=5.6.0"
},
"conflict": {
"nette/nette": "<2.2"
},
"require-dev": {
"nette/tester": "~2.0",
"tracy/tracy": "^2.3"
}, },
"type": "library", "type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.4-dev"
}
},
"autoload": { "autoload": {
"psr-0": { "classmap": [
"QueryPath": "src/" "src/"
},
"files": [
"src/qp_functions.php"
] ]
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "BSD-3-Clause",
"GPL-2.0",
"GPL-3.0"
], ],
"description": "HTML/XML querying (CSS 4 or XPath) and processing (like jQuery)", "authors": [
"homepage": "https://github.com/technosophos/querypath", {
"keywords": [ "name": "David Grudl",
"css", "homepage": "https://davidgrudl.com"
"html", },
"jquery", {
"xml", "name": "Nette Community",
"xslt" "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", "name": "nette/neon",
"version": "v3.2.1", "version": "v2.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/css-selector.git", "url": "https://github.com/nette/neon.git",
"reference": "e1241f275814827c411d922ba8e64cf2a00b2994" "reference": "c40c63f2afa4196844ac40d9d2a2cfb313f76906"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://packagist.phpcomposer.com/files/symfony/css-selector/e1241f275814827c411d922ba8e64cf2a00b2994.zip", "url": "https://packagist.phpcomposer.com/files/nette/neon/c40c63f2afa4196844ac40d9d2a2cfb313f76906.zip",
"reference": "e1241f275814827c411d922ba8e64cf2a00b2994", "reference": "c40c63f2afa4196844ac40d9d2a2cfb313f76906",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.5.9" "ext-iconv": "*",
"php": ">=5.6.0"
},
"require-dev": {
"nette/tester": "~2.0",
"tracy/tracy": "^2.3"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.2-dev" "dev-master": "2.4-dev"
} }
}, },
"autoload": { "autoload": {
"psr-4": { "classmap": [
"Symfony\\Component\\CssSelector\\": "" "src/"
},
"exclude-from-classmap": [
"/Tests/"
] ]
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "BSD-3-Clause",
"GPL-2.0",
"GPL-3.0"
], ],
"authors": [ "authors": [
{ {
"name": "Jean-François Simon", "name": "David Grudl",
"email": "jeanfrancois.simon@sensiolabs.com" "homepage": "https://davidgrudl.com"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}, },
{ {
"name": "Symfony Community", "name": "Nette Community",
"homepage": "https://symfony.com/contributors" "homepage": "https://nette.org/contributors"
} }
], ],
"description": "Symfony CssSelector Component", "description": "Nette NEON: parser & generator for Nette Object Notation",
"homepage": "https://symfony.com", "homepage": "http://ne-on.org",
"time": "2016-11-03 08:11:03" "time": "2016-06-25 13:59:48"
}, },
{ {
"name": "symfony/dom-crawler", "name": "nette/php-generator",
"version": "v3.2.1", "version": "v2.4.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/dom-crawler.git", "url": "https://github.com/nette/php-generator.git",
"reference": "1638c7534a8a2fa0bf9e979f9aacb6d7e8e9e24e" "reference": "e9f4429f5ac526661634242198a1ff394fa5440a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://packagist.phpcomposer.com/files/symfony/dom-crawler/1638c7534a8a2fa0bf9e979f9aacb6d7e8e9e24e.zip", "url": "https://packagist.phpcomposer.com/files/nette/php-generator/e9f4429f5ac526661634242198a1ff394fa5440a.zip",
"reference": "1638c7534a8a2fa0bf9e979f9aacb6d7e8e9e24e", "reference": "e9f4429f5ac526661634242198a1ff394fa5440a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.5.9", "nette/utils": "~2.4",
"symfony/polyfill-mbstring": "~1.0" "php": ">=5.6.0"
}, },
"require-dev": { "conflict": {
"symfony/css-selector": "~2.8|~3.0" "nette/nette": "<2.2"
}, },
"suggest": { "require-dev": {
"symfony/css-selector": "" "nette/tester": "~2.0",
"tracy/tracy": "^2.3"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.2-dev" "dev-master": "2.4-dev"
} }
}, },
"autoload": { "autoload": {
"psr-4": { "classmap": [
"Symfony\\Component\\DomCrawler\\": "" "src/"
},
"exclude-from-classmap": [
"/Tests/"
] ]
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "BSD-3-Clause",
"GPL-2.0",
"GPL-3.0"
], ],
"authors": [ "authors": [
{ {
"name": "Fabien Potencier", "name": "David Grudl",
"email": "fabien@symfony.com" "homepage": "https://davidgrudl.com"
}, },
{ {
"name": "Symfony Community", "name": "Nette Community",
"homepage": "https://symfony.com/contributors" "homepage": "https://nette.org/contributors"
} }
], ],
"description": "Symfony DomCrawler Component", "description": "Nette PHP Generator",
"homepage": "https://symfony.com", "homepage": "https://nette.org",
"time": "2016-12-10 14:24:53" "time": "2016-07-31 13:50:37"
}, },
{ {
"name": "symfony/options-resolver", "name": "nette/robot-loader",
"version": "v3.2.1", "version": "v2.4.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/options-resolver.git", "url": "https://github.com/nette/robot-loader.git",
"reference": "45940bcad6388b3b6058107eca67ced738d205bb" "reference": "f23f8885624b249d5ec7bb525b9d6b007ab00293"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://packagist.phpcomposer.com/files/symfony/options-resolver/45940bcad6388b3b6058107eca67ced738d205bb.zip", "url": "https://packagist.phpcomposer.com/files/nette/robot-loader/f23f8885624b249d5ec7bb525b9d6b007ab00293.zip",
"reference": "45940bcad6388b3b6058107eca67ced738d205bb", "reference": "f23f8885624b249d5ec7bb525b9d6b007ab00293",
"shasum": "" "shasum": ""
}, },
"require": { "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", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.2-dev" "dev-master": "2.4-dev"
} }
}, },
"autoload": { "autoload": {
"psr-4": { "classmap": [
"Symfony\\Component\\OptionsResolver\\": "" "src/"
},
"exclude-from-classmap": [
"/Tests/"
] ]
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "BSD-3-Clause",
"GPL-2.0",
"GPL-3.0"
], ],
"authors": [ "authors": [
{ {
"name": "Fabien Potencier", "name": "David Grudl",
"email": "fabien@symfony.com" "homepage": "https://davidgrudl.com"
}, },
{ {
"name": "Symfony Community", "name": "Nette Community",
"homepage": "https://symfony.com/contributors" "homepage": "https://nette.org/contributors"
} }
], ],
"description": "Symfony OptionsResolver Component", "description": "Nette RobotLoader: comfortable autoloading",
"homepage": "https://symfony.com", "homepage": "https://nette.org",
"keywords": [ "time": "2017-01-02 17:15:22"
"config",
"configuration",
"options"
],
"time": "2016-05-13 18:13:23"
}, },
{ {
"name": "symfony/polyfill-mbstring", "name": "nette/utils",
"version": "v1.3.0", "version": "v2.4.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git", "url": "https://github.com/nette/utils.git",
"reference": "e79d363049d1c2128f133a2667e4f4190904f7f4" "reference": "fd2e67c2ce28da409864507d8d124621780d036d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://packagist.phpcomposer.com/files/symfony/polyfill-mbstring/e79d363049d1c2128f133a2667e4f4190904f7f4.zip", "url": "https://packagist.phpcomposer.com/files/nette/utils/fd2e67c2ce28da409864507d8d124621780d036d.zip",
"reference": "e79d363049d1c2128f133a2667e4f4190904f7f4", "reference": "fd2e67c2ce28da409864507d8d124621780d036d",
"shasum": "" "shasum": ""
}, },
"require": { "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": { "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", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.3-dev" "dev-master": "2.4-dev"
} }
}, },
"autoload": { "autoload": {
"psr-4": { "classmap": [
"Symfony\\Polyfill\\Mbstring\\": "" "src/"
},
"files": [
"bootstrap.php"
] ]
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "BSD-3-Clause",
"GPL-2.0",
"GPL-3.0"
], ],
"authors": [ "authors": [
{ {
"name": "Nicolas Grekas", "name": "David Grudl",
"email": "p@tchwork.com" "homepage": "https://davidgrudl.com"
}, },
{ {
"name": "Symfony Community", "name": "Nette Community",
"homepage": "https://symfony.com/contributors" "homepage": "https://nette.org/contributors"
} }
], ],
"description": "Symfony polyfill for the Mbstring extension", "description": "Nette Utility Classes",
"homepage": "https://symfony.com", "homepage": "https://nette.org",
"keywords": [ "time": "2016-12-19 22:01:55"
"compatibility",
"mbstring",
"polyfill",
"portable",
"shim"
],
"time": "2016-11-14 01:06:16"
}, },
{ {
"name": "symfony/translation", "name": "nikic/php-parser",
"version": "v3.2.1", "version": "v3.0.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/translation.git", "url": "https://github.com/nikic/PHP-Parser.git",
"reference": "5fd18eca88f4d187807a1eba083bc99feaa8635b" "reference": "adf44419c0fc014a0f191db6f89d3e55d4211744"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://packagist.phpcomposer.com/files/symfony/translation/5fd18eca88f4d187807a1eba083bc99feaa8635b.zip", "url": "https://packagist.phpcomposer.com/files/nikic/PHP-Parser/adf44419c0fc014a0f191db6f89d3e55d4211744.zip",
"reference": "5fd18eca88f4d187807a1eba083bc99feaa8635b", "reference": "adf44419c0fc014a0f191db6f89d3e55d4211744",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.5.9", "ext-tokenizer": "*",
"symfony/polyfill-mbstring": "~1.0" "php": ">=5.5"
},
"conflict": {
"symfony/config": "<2.8"
}, },
"require-dev": { "require-dev": {
"psr/log": "~1.0", "phpunit/phpunit": "~4.0|~5.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": ""
}, },
"bin": [
"bin/php-parse"
],
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.2-dev" "dev-master": "3.0-dev"
} }
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Symfony\\Component\\Translation\\": "" "PhpParser\\": "lib/PhpParser"
}, }
"exclude-from-classmap": [
"/Tests/"
]
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "BSD-3-Clause"
], ],
"authors": [ "authors": [
{ {
"name": "Fabien Potencier", "name": "Nikita Popov"
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
} }
], ],
"description": "Symfony Translation Component", "description": "A PHP parser written in PHP",
"homepage": "https://symfony.com", "keywords": [
"time": "2016-11-30 14:40:17" "parser",
} "php"
], ],
"packages-dev": [ "time": "2016-12-06 11:30:35"
},
{ {
"name": "nette/bootstrap", "name": "paragonie/random_compat",
"version": "v2.4.2", "version": "v2.0.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nette/bootstrap.git", "url": "https://github.com/paragonie/random_compat.git",
"reference": "4db37e6d42ddf41b50417950741113b5dfc86e27" "reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://packagist.phpcomposer.com/files/nette/bootstrap/4db37e6d42ddf41b50417950741113b5dfc86e27.zip", "url": "https://packagist.phpcomposer.com/files/paragonie/random_compat/a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e.zip",
"reference": "4db37e6d42ddf41b50417950741113b5dfc86e27", "reference": "a9b97968bcde1c4de2a5ec6cbd06a0f6c919b46e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"nette/di": "~2.4.0", "php": ">=5.2.0"
"nette/utils": "~2.4",
"php": ">=5.6.0"
},
"conflict": {
"nette/nette": "<2.2"
}, },
"require-dev": { "require-dev": {
"latte/latte": "~2.2", "phpunit/phpunit": "4.*|5.*"
"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": { "suggest": {
"nette/robot-loader": "to use Configurator::createRobotLoader()", "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
"tracy/tracy": "to use Configurator::enableTracy()"
}, },
"type": "library", "type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.4-dev"
}
},
"autoload": { "autoload": {
"classmap": [ "files": [
"src/" "lib/random.php"
] ]
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"BSD-3-Clause", "MIT"
"GPL-2.0",
"GPL-3.0"
], ],
"authors": [ "authors": [
{ {
"name": "David Grudl", "name": "Paragon Initiative Enterprises",
"homepage": "https://davidgrudl.com" "email": "security@paragonie.com",
}, "homepage": "https://paragonie.com"
{
"name": "Nette Community",
"homepage": "https://nette.org/contributors"
} }
], ],
"description": "Nette Bootstrap", "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
"homepage": "https://nette.org", "keywords": [
"time": "2016-12-19 12:12:10" "csprng",
"pseudorandom",
"random"
],
"time": "2016-11-07 23:38:38"
}, },
{ {
"name": "nette/caching", "name": "phpstan/phpstan",
"version": "v2.5.2", "version": "0.4.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nette/caching.git", "url": "https://github.com/phpstan/phpstan.git",
"reference": "7da6cc65f301e220acba4fd8a11d3afdc642be9e" "reference": "075b4924eefbf84cd857d1e09842036d06b05c08"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://packagist.phpcomposer.com/files/nette/caching/7da6cc65f301e220acba4fd8a11d3afdc642be9e.zip", "url": "https://packagist.phpcomposer.com/files/phpstan/phpstan/075b4924eefbf84cd857d1e09842036d06b05c08.zip",
"reference": "7da6cc65f301e220acba4fd8a11d3afdc642be9e", "reference": "075b4924eefbf84cd857d1e09842036d06b05c08",
"shasum": "" "shasum": ""
}, },
"require": { "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", "nette/utils": "~2.4",
"php": ">=5.6.0" "nikic/php-parser": "~3.0.2",
}, "php": "~7.0",
"conflict": { "symfony/console": "~2.8 || ~3.0",
"nette/nette": "<2.2" "symfony/finder": "~2.8 || ~3.0",
"tracy/tracy": "~2.4"
}, },
"require-dev": { "require-dev": {
"latte/latte": "~2.4", "consistence/coding-standard": "~0.12.0",
"nette/di": "~2.4", "phing/phing": "^2.13.0",
"nette/tester": "~2.0", "phpunit/phpunit": "^5.6",
"tracy/tracy": "^2.4" "satooshi/php-coveralls": "^1.0",
"slevomat/coding-standard": "dev-php7#d4a1a9cd4e"
}, },
"suggest": { "bin": [
"ext-pdo_sqlite": "to use SQLiteStorage or SQLiteJournal" "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", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "2.5-dev" "dev-master": "3.0.x-dev"
} }
}, },
"autoload": { "autoload": {
"classmap": [ "psr-0": {
"src/" "Pimple": "src/"
] }
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"BSD-3-Clause", "MIT"
"GPL-2.0",
"GPL-3.0"
], ],
"authors": [ "authors": [
{ {
"name": "David Grudl", "name": "Fabien Potencier",
"homepage": "https://davidgrudl.com" "email": "fabien@symfony.com"
},
{
"name": "Nette Community",
"homepage": "https://nette.org/contributors"
} }
], ],
"description": "Nette Caching Component", "description": "Pimple, a simple Dependency Injection Container",
"homepage": "https://nette.org", "homepage": "http://pimple.sensiolabs.org",
"time": "2016-10-06 00:08:42" "keywords": [
"container",
"dependency injection"
],
"time": "2015-09-11 15:10:35"
}, },
{ {
"name": "nette/di", "name": "psr/http-message",
"version": "v2.4.5", "version": "1.0.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nette/di.git", "url": "https://github.com/php-fig/http-message.git",
"reference": "b265f305e1fef2dad1cb2e7340b49d274d3dd14c" "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://packagist.phpcomposer.com/files/nette/di/b265f305e1fef2dad1cb2e7340b49d274d3dd14c.zip", "url": "https://packagist.phpcomposer.com/files/php-fig/http-message/f6561bf28d520154e4b0ec72be95418abe6d9363.zip",
"reference": "b265f305e1fef2dad1cb2e7340b49d274d3dd14c", "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-tokenizer": "*", "php": ">=5.3.0"
"nette/neon": "^2.3.3",
"nette/php-generator": "^2.4",
"nette/utils": "^2.4",
"php": ">=5.6.0"
}, },
"conflict": { "type": "library",
"nette/bootstrap": "<2.4", "extra": {
"nette/nette": "<2.2" "branch-alias": {
"dev-master": "1.0.x-dev"
}
}, },
"require-dev": { "autoload": {
"nette/tester": "~2.0", "psr-4": {
"tracy/tracy": "^2.3" "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", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "2.4-dev" "dev-master": "1.0.x-dev"
} }
}, },
"autoload": { "autoload": {
"classmap": [ "psr-4": {
"src/" "Psr\\Log\\": "Psr/Log/"
] }
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"BSD-3-Clause", "MIT"
"GPL-2.0",
"GPL-3.0"
], ],
"authors": [ "authors": [
{ {
"name": "David Grudl", "name": "PHP-FIG",
"homepage": "https://davidgrudl.com" "homepage": "http://www.php-fig.org/"
},
{
"name": "Nette Community",
"homepage": "https://nette.org/contributors"
} }
], ],
"description": "Nette Dependency Injection Component", "description": "Common interface for logging libraries",
"homepage": "https://nette.org", "homepage": "https://github.com/php-fig/log",
"time": "2016-12-23 10:26:44" "keywords": [
"log",
"psr",
"psr-3"
],
"time": "2016-10-10 12:19:37"
}, },
{ {
"name": "nette/finder", "name": "querypath/querypath",
"version": "v2.4.0", "version": "3.0.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nette/finder.git", "url": "https://github.com/technosophos/querypath.git",
"reference": "5cabd5fe89f9903715359a403b820c7f94f9bb5e" "reference": "6b8e2395fac61fac25bbe962f94def556cb85f7d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://packagist.phpcomposer.com/files/nette/finder/5cabd5fe89f9903715359a403b820c7f94f9bb5e.zip", "url": "https://packagist.phpcomposer.com/files/technosophos/querypath/6b8e2395fac61fac25bbe962f94def556cb85f7d.zip",
"reference": "5cabd5fe89f9903715359a403b820c7f94f9bb5e", "reference": "6b8e2395fac61fac25bbe962f94def556cb85f7d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"nette/utils": "~2.4", "masterminds/html5": "2.*",
"php": ">=5.6.0" "php": ">=5.3.0"
},
"conflict": {
"nette/nette": "<2.2"
},
"require-dev": {
"nette/tester": "~2.0",
"tracy/tracy": "^2.3"
}, },
"type": "library", "type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.4-dev"
}
},
"autoload": { "autoload": {
"classmap": [ "psr-0": {
"src/" "QueryPath": "src/"
},
"files": [
"src/qp_functions.php"
] ]
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"BSD-3-Clause", "MIT"
"GPL-2.0",
"GPL-3.0"
], ],
"authors": [ "description": "HTML/XML querying (CSS 4 or XPath) and processing (like jQuery)",
{ "homepage": "https://github.com/technosophos/querypath",
"name": "David Grudl", "keywords": [
"homepage": "https://davidgrudl.com" "css",
}, "html",
{ "jquery",
"name": "Nette Community", "xml",
"homepage": "https://nette.org/contributors" "xslt"
}
], ],
"description": "Nette Finder: Files Searching", "time": "2016-08-01 22:40:30"
"homepage": "https://nette.org",
"time": "2016-05-17 15:49:06"
}, },
{ {
"name": "nette/neon", "name": "symfony/console",
"version": "v2.4.0", "version": "v3.2.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nette/neon.git", "url": "https://github.com/symfony/console.git",
"reference": "c40c63f2afa4196844ac40d9d2a2cfb313f76906" "reference": "d12aa9ca20f4db83ec58410978dab6afcb9d6aaa"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://packagist.phpcomposer.com/files/nette/neon/c40c63f2afa4196844ac40d9d2a2cfb313f76906.zip", "url": "https://packagist.phpcomposer.com/files/symfony/console/d12aa9ca20f4db83ec58410978dab6afcb9d6aaa.zip",
"reference": "c40c63f2afa4196844ac40d9d2a2cfb313f76906", "reference": "d12aa9ca20f4db83ec58410978dab6afcb9d6aaa",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-iconv": "*", "php": ">=5.5.9",
"php": ">=5.6.0" "symfony/debug": "~2.8|~3.0",
"symfony/polyfill-mbstring": "~1.0"
}, },
"require-dev": { "require-dev": {
"nette/tester": "~2.0", "psr/log": "~1.0",
"tracy/tracy": "^2.3" "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", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "2.4-dev" "dev-master": "3.2-dev"
} }
}, },
"autoload": { "autoload": {
"classmap": [ "psr-4": {
"src/" "Symfony\\Component\\Console\\": ""
},
"exclude-from-classmap": [
"/Tests/"
] ]
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"BSD-3-Clause", "MIT"
"GPL-2.0",
"GPL-3.0"
], ],
"authors": [ "authors": [
{ {
"name": "David Grudl", "name": "Fabien Potencier",
"homepage": "https://davidgrudl.com" "email": "fabien@symfony.com"
}, },
{ {
"name": "Nette Community", "name": "Symfony Community",
"homepage": "https://nette.org/contributors" "homepage": "https://symfony.com/contributors"
} }
], ],
"description": "Nette NEON: parser & generator for Nette Object Notation", "description": "Symfony Console Component",
"homepage": "http://ne-on.org", "homepage": "https://symfony.com",
"time": "2016-06-25 13:59:48" "time": "2016-12-11 14:34:22"
}, },
{ {
"name": "nette/php-generator", "name": "symfony/css-selector",
"version": "v2.4.1", "version": "v3.2.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nette/php-generator.git", "url": "https://github.com/symfony/css-selector.git",
"reference": "e9f4429f5ac526661634242198a1ff394fa5440a" "reference": "e1241f275814827c411d922ba8e64cf2a00b2994"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://packagist.phpcomposer.com/files/nette/php-generator/e9f4429f5ac526661634242198a1ff394fa5440a.zip", "url": "https://packagist.phpcomposer.com/files/symfony/css-selector/e1241f275814827c411d922ba8e64cf2a00b2994.zip",
"reference": "e9f4429f5ac526661634242198a1ff394fa5440a", "reference": "e1241f275814827c411d922ba8e64cf2a00b2994",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"nette/utils": "~2.4", "php": ">=5.5.9"
"php": ">=5.6.0"
},
"conflict": {
"nette/nette": "<2.2"
},
"require-dev": {
"nette/tester": "~2.0",
"tracy/tracy": "^2.3"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "2.4-dev" "dev-master": "3.2-dev"
} }
}, },
"autoload": { "autoload": {
"classmap": [ "psr-4": {
"src/" "Symfony\\Component\\CssSelector\\": ""
},
"exclude-from-classmap": [
"/Tests/"
] ]
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"BSD-3-Clause", "MIT"
"GPL-2.0",
"GPL-3.0"
], ],
"authors": [ "authors": [
{ {
"name": "David Grudl", "name": "Jean-François Simon",
"homepage": "https://davidgrudl.com" "email": "jeanfrancois.simon@sensiolabs.com"
}, },
{ {
"name": "Nette Community", "name": "Fabien Potencier",
"homepage": "https://nette.org/contributors" "email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
} }
], ],
"description": "Nette PHP Generator", "description": "Symfony CssSelector Component",
"homepage": "https://nette.org", "homepage": "https://symfony.com",
"time": "2016-07-31 13:50:37" "time": "2016-11-03 08:11:03"
}, },
{ {
"name": "nette/robot-loader", "name": "symfony/debug",
"version": "v2.4.2", "version": "v3.2.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nette/robot-loader.git", "url": "https://github.com/symfony/debug.git",
"reference": "f23f8885624b249d5ec7bb525b9d6b007ab00293" "reference": "9f923e68d524a3095c5a2ae5fc7220c7cbc12231"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://packagist.phpcomposer.com/files/nette/robot-loader/f23f8885624b249d5ec7bb525b9d6b007ab00293.zip", "url": "https://packagist.phpcomposer.com/files/symfony/debug/9f923e68d524a3095c5a2ae5fc7220c7cbc12231.zip",
"reference": "f23f8885624b249d5ec7bb525b9d6b007ab00293", "reference": "9f923e68d524a3095c5a2ae5fc7220c7cbc12231",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-tokenizer": "*", "php": ">=5.5.9",
"nette/caching": "~2.2", "psr/log": "~1.0"
"nette/finder": "~2.3",
"nette/utils": "~2.4",
"php": ">=5.6.0"
}, },
"conflict": { "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": { "require-dev": {
"nette/tester": "~2.0", "symfony/class-loader": "~2.8|~3.0",
"tracy/tracy": "^2.3" "symfony/http-kernel": "~2.8|~3.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "2.4-dev" "dev-master": "3.2-dev"
} }
}, },
"autoload": { "autoload": {
"classmap": [ "psr-4": {
"src/" "Symfony\\Component\\Debug\\": ""
},
"exclude-from-classmap": [
"/Tests/"
] ]
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"BSD-3-Clause", "MIT"
"GPL-2.0",
"GPL-3.0"
], ],
"authors": [ "authors": [
{ {
"name": "David Grudl", "name": "Fabien Potencier",
"homepage": "https://davidgrudl.com" "email": "fabien@symfony.com"
}, },
{ {
"name": "Nette Community", "name": "Symfony Community",
"homepage": "https://nette.org/contributors" "homepage": "https://symfony.com/contributors"
} }
], ],
"description": "Nette RobotLoader: comfortable autoloading", "description": "Symfony Debug Component",
"homepage": "https://nette.org", "homepage": "https://symfony.com",
"time": "2017-01-02 17:15:22" "time": "2016-11-16 22:18:16"
}, },
{ {
"name": "nette/utils", "name": "symfony/dom-crawler",
"version": "v2.4.2", "version": "v3.2.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nette/utils.git", "url": "https://github.com/symfony/dom-crawler.git",
"reference": "fd2e67c2ce28da409864507d8d124621780d036d" "reference": "1638c7534a8a2fa0bf9e979f9aacb6d7e8e9e24e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://packagist.phpcomposer.com/files/nette/utils/fd2e67c2ce28da409864507d8d124621780d036d.zip", "url": "https://packagist.phpcomposer.com/files/symfony/dom-crawler/1638c7534a8a2fa0bf9e979f9aacb6d7e8e9e24e.zip",
"reference": "fd2e67c2ce28da409864507d8d124621780d036d", "reference": "1638c7534a8a2fa0bf9e979f9aacb6d7e8e9e24e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.6.0" "php": ">=5.5.9",
}, "symfony/polyfill-mbstring": "~1.0"
"conflict": {
"nette/nette": "<2.2"
}, },
"require-dev": { "require-dev": {
"nette/tester": "~2.0", "symfony/css-selector": "~2.8|~3.0"
"tracy/tracy": "^2.3"
}, },
"suggest": { "suggest": {
"ext-gd": "to use Image", "symfony/css-selector": ""
"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", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "2.4-dev" "dev-master": "3.2-dev"
} }
}, },
"autoload": { "autoload": {
"classmap": [ "psr-4": {
"src/" "Symfony\\Component\\DomCrawler\\": ""
},
"exclude-from-classmap": [
"/Tests/"
] ]
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"BSD-3-Clause", "MIT"
"GPL-2.0",
"GPL-3.0"
], ],
"authors": [ "authors": [
{ {
"name": "David Grudl", "name": "Fabien Potencier",
"homepage": "https://davidgrudl.com" "email": "fabien@symfony.com"
}, },
{ {
"name": "Nette Community", "name": "Symfony Community",
"homepage": "https://nette.org/contributors" "homepage": "https://symfony.com/contributors"
} }
], ],
"description": "Nette Utility Classes", "description": "Symfony DomCrawler Component",
"homepage": "https://nette.org", "homepage": "https://symfony.com",
"time": "2016-12-19 22:01:55" "time": "2016-12-10 14:24:53"
}, },
{ {
"name": "nikic/php-parser", "name": "symfony/finder",
"version": "v3.0.2", "version": "v3.2.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nikic/PHP-Parser.git", "url": "https://github.com/symfony/finder.git",
"reference": "adf44419c0fc014a0f191db6f89d3e55d4211744" "reference": "a69cb5d455b4885ca376dc5bb3e1155cc8c08c4b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://packagist.phpcomposer.com/files/nikic/PHP-Parser/adf44419c0fc014a0f191db6f89d3e55d4211744.zip", "url": "https://packagist.phpcomposer.com/files/symfony/finder/a69cb5d455b4885ca376dc5bb3e1155cc8c08c4b.zip",
"reference": "adf44419c0fc014a0f191db6f89d3e55d4211744", "reference": "a69cb5d455b4885ca376dc5bb3e1155cc8c08c4b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-tokenizer": "*", "php": ">=5.5.9"
"php": ">=5.5"
},
"require-dev": {
"phpunit/phpunit": "~4.0|~5.0"
}, },
"bin": [
"bin/php-parse"
],
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.0-dev" "dev-master": "3.2-dev"
} }
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"PhpParser\\": "lib/PhpParser" "Symfony\\Component\\Finder\\": ""
} },
"exclude-from-classmap": [
"/Tests/"
]
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"BSD-3-Clause" "MIT"
], ],
"authors": [ "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", "description": "Symfony Finder Component",
"keywords": [ "homepage": "https://symfony.com",
"parser", "time": "2016-12-13 09:39:43"
"php"
],
"time": "2016-12-06 11:30:35"
}, },
{ {
"name": "phpstan/phpstan", "name": "symfony/options-resolver",
"version": "0.4.2", "version": "v3.2.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpstan/phpstan.git", "url": "https://github.com/symfony/options-resolver.git",
"reference": "075b4924eefbf84cd857d1e09842036d06b05c08" "reference": "45940bcad6388b3b6058107eca67ced738d205bb"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://packagist.phpcomposer.com/files/phpstan/phpstan/075b4924eefbf84cd857d1e09842036d06b05c08.zip", "url": "https://packagist.phpcomposer.com/files/symfony/options-resolver/45940bcad6388b3b6058107eca67ced738d205bb.zip",
"reference": "075b4924eefbf84cd857d1e09842036d06b05c08", "reference": "45940bcad6388b3b6058107eca67ced738d205bb",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"nette/bootstrap": "~2.4", "php": ">=5.5.9"
"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"
}, },
"bin": [
"bin/phpstan"
],
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "0.4-dev" "dev-master": "3.2-dev"
} }
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"PHPStan\\": "src/" "Symfony\\Component\\OptionsResolver\\": ""
} },
"exclude-from-classmap": [
"/Tests/"
]
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "MIT"
], ],
"description": "PHPStan - PHP Static Analysis Tool", "authors": [
"time": "2016-12-12 20:31:52" {
"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", "name": "symfony/polyfill-mbstring",
"version": "1.0.2", "version": "v1.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-fig/log.git", "url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" "reference": "e79d363049d1c2128f133a2667e4f4190904f7f4"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://packagist.phpcomposer.com/files/php-fig/log/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d.zip", "url": "https://packagist.phpcomposer.com/files/symfony/polyfill-mbstring/e79d363049d1c2128f133a2667e4f4190904f7f4.zip",
"reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", "reference": "e79d363049d1c2128f133a2667e4f4190904f7f4",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.0" "php": ">=5.3.3"
},
"suggest": {
"ext-mbstring": "For best performance"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.0.x-dev" "dev-master": "1.3-dev"
} }
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Psr\\Log\\": "Psr/Log/" "Symfony\\Polyfill\\Mbstring\\": ""
} },
"files": [
"bootstrap.php"
]
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
...@@ -1609,59 +1750,51 @@ ...@@ -1609,59 +1750,51 @@
], ],
"authors": [ "authors": [
{ {
"name": "PHP-FIG", "name": "Nicolas Grekas",
"homepage": "http://www.php-fig.org/" "email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
} }
], ],
"description": "Common interface for logging libraries", "description": "Symfony polyfill for the Mbstring extension",
"homepage": "https://github.com/php-fig/log", "homepage": "https://symfony.com",
"keywords": [ "keywords": [
"log", "compatibility",
"psr", "mbstring",
"psr-3" "polyfill",
"portable",
"shim"
], ],
"time": "2016-10-10 12:19:37" "time": "2016-11-14 01:06:16"
}, },
{ {
"name": "symfony/console", "name": "symfony/process",
"version": "v3.2.1", "version": "dev-master",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/process.git",
"reference": "d12aa9ca20f4db83ec58410978dab6afcb9d6aaa" "reference": "6c687d5ae36a8677a6e3ce020d12b18feac79d5b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://packagist.phpcomposer.com/files/symfony/console/d12aa9ca20f4db83ec58410978dab6afcb9d6aaa.zip", "url": "https://packagist.phpcomposer.com/files/symfony/process/6c687d5ae36a8677a6e3ce020d12b18feac79d5b.zip",
"reference": "d12aa9ca20f4db83ec58410978dab6afcb9d6aaa", "reference": "6c687d5ae36a8677a6e3ce020d12b18feac79d5b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.5.9", "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": ""
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.2-dev" "dev-master": "3.3-dev"
} }
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Symfony\\Component\\Console\\": "" "Symfony\\Component\\Process\\": ""
}, },
"exclude-from-classmap": [ "exclude-from-classmap": [
"/Tests/" "/Tests/"
...@@ -1681,34 +1814,41 @@ ...@@ -1681,34 +1814,41 @@
"homepage": "https://symfony.com/contributors" "homepage": "https://symfony.com/contributors"
} }
], ],
"description": "Symfony Console Component", "description": "Symfony Process Component",
"homepage": "https://symfony.com", "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", "version": "v3.2.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/debug.git", "url": "https://github.com/symfony/translation.git",
"reference": "9f923e68d524a3095c5a2ae5fc7220c7cbc12231" "reference": "5fd18eca88f4d187807a1eba083bc99feaa8635b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://packagist.phpcomposer.com/files/symfony/debug/9f923e68d524a3095c5a2ae5fc7220c7cbc12231.zip", "url": "https://packagist.phpcomposer.com/files/symfony/translation/5fd18eca88f4d187807a1eba083bc99feaa8635b.zip",
"reference": "9f923e68d524a3095c5a2ae5fc7220c7cbc12231", "reference": "5fd18eca88f4d187807a1eba083bc99feaa8635b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.5.9", "php": ">=5.5.9",
"psr/log": "~1.0" "symfony/polyfill-mbstring": "~1.0"
}, },
"conflict": { "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": { "require-dev": {
"symfony/class-loader": "~2.8|~3.0", "psr/log": "~1.0",
"symfony/http-kernel": "~2.8|~3.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", "type": "library",
"extra": { "extra": {
...@@ -1718,7 +1858,7 @@ ...@@ -1718,7 +1858,7 @@
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Symfony\\Component\\Debug\\": "" "Symfony\\Component\\Translation\\": ""
}, },
"exclude-from-classmap": [ "exclude-from-classmap": [
"/Tests/" "/Tests/"
...@@ -1738,36 +1878,46 @@ ...@@ -1738,36 +1878,46 @@
"homepage": "https://symfony.com/contributors" "homepage": "https://symfony.com/contributors"
} }
], ],
"description": "Symfony Debug Component", "description": "Symfony Translation Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2016-11-16 22:18:16" "time": "2016-11-30 14:40:17"
}, },
{ {
"name": "symfony/finder", "name": "symfony/var-dumper",
"version": "v3.2.1", "version": "dev-master",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/finder.git", "url": "https://github.com/symfony/var-dumper.git",
"reference": "a69cb5d455b4885ca376dc5bb3e1155cc8c08c4b" "reference": "45917d2b18425e5fac2a980f1f1bcc7023a16323"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://packagist.phpcomposer.com/files/symfony/finder/a69cb5d455b4885ca376dc5bb3e1155cc8c08c4b.zip", "url": "https://packagist.phpcomposer.com/files/symfony/var-dumper/45917d2b18425e5fac2a980f1f1bcc7023a16323.zip",
"reference": "a69cb5d455b4885ca376dc5bb3e1155cc8c08c4b", "reference": "45917d2b18425e5fac2a980f1f1bcc7023a16323",
"shasum": "" "shasum": ""
}, },
"require": { "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", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.2-dev" "dev-master": "3.3-dev"
} }
}, },
"autoload": { "autoload": {
"files": [
"Resources/functions/dump.php"
],
"psr-4": { "psr-4": {
"Symfony\\Component\\Finder\\": "" "Symfony\\Component\\VarDumper\\": ""
}, },
"exclude-from-classmap": [ "exclude-from-classmap": [
"/Tests/" "/Tests/"
...@@ -1779,17 +1929,21 @@ ...@@ -1779,17 +1929,21 @@
], ],
"authors": [ "authors": [
{ {
"name": "Fabien Potencier", "name": "Nicolas Grekas",
"email": "fabien@symfony.com" "email": "p@tchwork.com"
}, },
{ {
"name": "Symfony Community", "name": "Symfony Community",
"homepage": "https://symfony.com/contributors" "homepage": "https://symfony.com/contributors"
} }
], ],
"description": "Symfony Finder Component", "description": "Symfony mechanism for exploring and dumping PHP variables",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2016-12-13 09:39:43" "keywords": [
"debug",
"dump"
],
"time": "2017-01-15 16:39:59"
}, },
{ {
"name": "tracy/tracy", "name": "tracy/tracy",
...@@ -1854,11 +2008,14 @@ ...@@ -1854,11 +2008,14 @@
"time": "2016-12-10 15:04:11" "time": "2016-12-10 15:04:11"
} }
], ],
"packages-dev": [],
"aliases": [], "aliases": [],
"minimum-stability": "stable", "minimum-stability": "dev",
"stability-flags": [], "stability-flags": [],
"prefer-stable": false, "prefer-stable": false,
"prefer-lowest": false, "prefer-lowest": false,
"platform": [], "platform": {
"php": ">=7.0.0"
},
"platform-dev": [] "platform-dev": []
} }
...@@ -18,9 +18,11 @@ $robot = new Vbot([ ...@@ -18,9 +18,11 @@ $robot = new Vbot([
$flag = false; $flag = false;
$robot->server->setCustomerHandler(function() use (&$flag){ $robot->server->setCustomerHandler(function() use (&$flag){
// RemarkName,代表的改用户在你通讯录的名字
$contact = contact()->getUsernameById('matts8023'); $contact = contact()->getUsernameByNickRemarkName('hanson');
if ($contact === false){
dd("找不到你要的联系人,请确认联系人姓名");
}
if(!$flag){ if(!$flag){
Text::send($contact, '来轰炸吧'); Text::send($contact, '来轰炸吧');
$flag = true; $flag = true;
......
...@@ -62,5 +62,20 @@ class Contact extends Collection ...@@ -62,5 +62,20 @@ class Contact extends Collection
} }
}); });
} }
/**
* 根据通讯录中的名字获取通讯对象
*
* @param $id
* @return mixed
*/
public function getUsernameByNickRemarkName($id)
{
return $this->search(function($item, $key) use ($id){
if($item['RemarkName'] === $id){
return true;
}
});
}
} }
\ No newline at end of file \ No newline at end of file
...@@ -15,7 +15,14 @@ use Hanson\Vbot\Collections\Account; ...@@ -15,7 +15,14 @@ use Hanson\Vbot\Collections\Account;
use Hanson\Vbot\Collections\ContactFactory; use Hanson\Vbot\Collections\ContactFactory;
use Hanson\Vbot\Collections\Group; use Hanson\Vbot\Collections\Group;
use Hanson\Vbot\Support\Console; use Hanson\Vbot\Support\Console;
use PHPQRCode\QRencode;
use Symfony\Component\Console\Formatter\OutputFormatterStyle;
use Symfony\Component\Console\Output\ConsoleOutput;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\DomCrawler\Crawler; use Symfony\Component\DomCrawler\Crawler;
use PHPQRCode\QRcode as CQRcode;
use Symfony\Component\Process\Exception\ProcessFailedException;
use Symfony\Component\Process\ProcessBuilder;
class Server class Server
{ {
...@@ -96,7 +103,8 @@ class Server ...@@ -96,7 +103,8 @@ class Server
public function prepare() public function prepare()
{ {
$this->getUuid(); $this->getUuid();
$this->generateQrCode(); // $this->generateQrCode();
$this->generateConsoleQrCode();
Console::log('[INFO] 请扫描二维码登录'); Console::log('[INFO] 请扫描二维码登录');
$this->waitForLogin(); $this->waitForLogin();
...@@ -150,6 +158,75 @@ class Server ...@@ -150,6 +158,75 @@ class Server
} }
} }
private function initStyle(OutputInterface $output) {
$style = new OutputFormatterStyle('black', 'black');
$output->getFormatter()->setStyle('blackc', $style);
$style = new OutputFormatterStyle('white', 'white');
$output->getFormatter()->setStyle('whitec', $style);
}
/**
*
*/
public function generateConsoleQrCode()
{
$text = 'https://login.weixin.qq.com/l/' . $this->uuid;
$output = new ConsoleOutput();
$this->initStyle($output);
$map = array(
0 => '<whitec> </whitec>',
1 => '<blackc> </blackc>',
);
$lrPadding = 1;
$tbPadding = 0;
$text = CQRcode::text($text);
$length = strlen($text[0]);
$screenSize = $this->getTTYSize();
if(!$screenSize) {
$output->getErrorOutput()->writeln('<comment>Get Screen Size Failed</comment>');
} else {
list($maxLines, $maxCols) = $screenSize;
$qrCols = 2 * ($length + $lrPadding * 2);
$qrLines = count($text) + $tbPadding * 2;
if($qrCols > $maxCols || $qrLines > $maxLines){
$output->getErrorOutput()->writeln('<error>Max Lines/Columns Reached:请缩小控制台字体大小</error>');
return;
}
}
$paddingLine = str_repeat($map[0], $length + $lrPadding * 2) . "\n";
$after = $before = str_repeat($paddingLine, $tbPadding);
$output->write($before);
foreach ($text as $line) {
$output->write(str_repeat($map[0], $lrPadding));
for ($i = 0; $i < $length; $i++) {
$type = substr($line, $i, 1);
$output->write($map[$type]);
}
$output->writeln(str_repeat($map[0], $lrPadding));
}
$output->write($after);
}
private function getTTYSize() {
if(!posix_isatty(STDOUT)){
return false;
}
$ttyName = posix_ttyname(STDOUT);
$builder = new ProcessBuilder();
$process = $builder->setPrefix('stty')->setArguments(array('-f', $ttyName, 'size'))->getProcess();
try {
$process->mustRun();
} catch (ProcessFailedException $e) {
return false;
}
$output = $process->getOutput();
if(!preg_match('~^(\d+)\s+(\d+)$~', $output, $match)) {
return false;
}
return array($match[1], $match[2]);
}
/** /**
* waiting user to login * waiting user to login
* *
...@@ -253,7 +330,7 @@ class Server ...@@ -253,7 +330,7 @@ class Server
$content = http()->json($url, [ $content = http()->json($url, [
'BaseRequest' => $this->baseRequest 'BaseRequest' => $this->baseRequest
]); ]);
$result = json_decode($content, true); $result = json_decode($content, true);
$this->generateSyncKey($result, $first); $this->generateSyncKey($result, $first);
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!