removal of unnecessary file, and composer update

This commit is contained in:
2019-01-09 23:31:31 -06:00
parent a90688deb6
commit e4380f2ffe
604 changed files with 32070 additions and 26824 deletions

View File

@@ -1,18 +0,0 @@
<?php
namespace App\Library;
use DB;
use App\Models\Corporation\CorpJournal;
use GuzzleHttp\Exception\GuzzleException;
use GuzzleHttp\Client;
use GuzzleHttp\RequestOptions;
class SeatHelper {
// Nothing to do here right now
}
?>

188
composer.lock generated
View File

@@ -742,16 +742,16 @@
}, },
{ {
"name": "laravel/framework", "name": "laravel/framework",
"version": "v5.7.19", "version": "v5.7.20",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/framework.git", "url": "https://github.com/laravel/framework.git",
"reference": "5c1d1ec7e8563ea31826fd5eb3f6791acf01160c" "reference": "10cd20294b5668f90ba91996236834e71f7ff670"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/5c1d1ec7e8563ea31826fd5eb3f6791acf01160c", "url": "https://api.github.com/repos/laravel/framework/zipball/10cd20294b5668f90ba91996236834e71f7ff670",
"reference": "5c1d1ec7e8563ea31826fd5eb3f6791acf01160c", "reference": "10cd20294b5668f90ba91996236834e71f7ff670",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -825,7 +825,7 @@
"moontoast/math": "^1.1", "moontoast/math": "^1.1",
"orchestra/testbench-core": "3.7.*", "orchestra/testbench-core": "3.7.*",
"pda/pheanstalk": "^3.0", "pda/pheanstalk": "^3.0",
"phpunit/phpunit": "^7.0", "phpunit/phpunit": "^7.5",
"predis/predis": "^1.1.1", "predis/predis": "^1.1.1",
"symfony/css-selector": "^4.1", "symfony/css-selector": "^4.1",
"symfony/dom-crawler": "^4.1", "symfony/dom-crawler": "^4.1",
@@ -884,7 +884,7 @@
"framework", "framework",
"laravel" "laravel"
], ],
"time": "2018-12-18T14:00:38+00:00" "time": "2019-01-08T14:39:11+00:00"
}, },
{ {
"name": "laravel/nexmo-notification-channel", "name": "laravel/nexmo-notification-channel",
@@ -1479,16 +1479,16 @@
}, },
{ {
"name": "nesbot/carbon", "name": "nesbot/carbon",
"version": "1.36.1", "version": "1.36.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/briannesbitt/Carbon.git", "url": "https://github.com/briannesbitt/Carbon.git",
"reference": "63da8cdf89d7a5efe43aabc794365f6e7b7b8983" "reference": "cd324b98bc30290f233dd0e75e6ce49f7ab2a6c9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/63da8cdf89d7a5efe43aabc794365f6e7b7b8983", "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/cd324b98bc30290f233dd0e75e6ce49f7ab2a6c9",
"reference": "63da8cdf89d7a5efe43aabc794365f6e7b7b8983", "reference": "cd324b98bc30290f233dd0e75e6ce49f7ab2a6c9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1533,7 +1533,7 @@
"datetime", "datetime",
"time" "time"
], ],
"time": "2018-11-22T18:23:02+00:00" "time": "2018-12-28T10:07:33+00:00"
}, },
{ {
"name": "nexmo/client", "name": "nexmo/client",
@@ -1585,16 +1585,16 @@
}, },
{ {
"name": "nikic/php-parser", "name": "nikic/php-parser",
"version": "v4.1.0", "version": "v4.1.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nikic/PHP-Parser.git", "url": "https://github.com/nikic/PHP-Parser.git",
"reference": "d0230c5c77a7e3cfa69446febf340978540958c0" "reference": "8aae5b59b83bb4d0dbf07b0a835f2680a658f610"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/d0230c5c77a7e3cfa69446febf340978540958c0", "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/8aae5b59b83bb4d0dbf07b0a835f2680a658f610",
"reference": "d0230c5c77a7e3cfa69446febf340978540958c0", "reference": "8aae5b59b83bb4d0dbf07b0a835f2680a658f610",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1632,7 +1632,7 @@
"parser", "parser",
"php" "php"
], ],
"time": "2018-10-10T09:24:14+00:00" "time": "2018-12-26T11:32:39+00:00"
}, },
{ {
"name": "nullx27/eveonline-socialite", "name": "nullx27/eveonline-socialite",
@@ -1681,16 +1681,16 @@
}, },
{ {
"name": "opis/closure", "name": "opis/closure",
"version": "3.1.2", "version": "3.1.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/opis/closure.git", "url": "https://github.com/opis/closure.git",
"reference": "de00c69a2328d3ee5baa71fc584dc643222a574c" "reference": "5e9095ce871a425ab87a854b285b7766de38a7d9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/opis/closure/zipball/de00c69a2328d3ee5baa71fc584dc643222a574c", "url": "https://api.github.com/repos/opis/closure/zipball/5e9095ce871a425ab87a854b285b7766de38a7d9",
"reference": "de00c69a2328d3ee5baa71fc584dc643222a574c", "reference": "5e9095ce871a425ab87a854b285b7766de38a7d9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1703,7 +1703,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.0.x-dev" "dev-master": "3.1.x-dev"
} }
}, },
"autoload": { "autoload": {
@@ -1738,7 +1738,7 @@
"serialization", "serialization",
"serialize" "serialize"
], ],
"time": "2018-12-16T21:48:23+00:00" "time": "2019-01-06T22:07:38+00:00"
}, },
{ {
"name": "paragonie/random_compat", "name": "paragonie/random_compat",
@@ -2452,16 +2452,16 @@
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v4.2.1", "version": "v4.2.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "4dff24e5d01e713818805c1862d2e3f901ee7dd0" "reference": "b0a03c1bb0fcbe288629956cf2f1dd3f1dc97522"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/4dff24e5d01e713818805c1862d2e3f901ee7dd0", "url": "https://api.github.com/repos/symfony/console/zipball/b0a03c1bb0fcbe288629956cf2f1dd3f1dc97522",
"reference": "4dff24e5d01e713818805c1862d2e3f901ee7dd0", "reference": "b0a03c1bb0fcbe288629956cf2f1dd3f1dc97522",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2517,7 +2517,7 @@
], ],
"description": "Symfony Console Component", "description": "Symfony Console Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2018-11-27T07:40:44+00:00" "time": "2019-01-04T15:13:53+00:00"
}, },
{ {
"name": "symfony/contracts", "name": "symfony/contracts",
@@ -2589,16 +2589,16 @@
}, },
{ {
"name": "symfony/css-selector", "name": "symfony/css-selector",
"version": "v4.2.1", "version": "v4.2.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/css-selector.git", "url": "https://github.com/symfony/css-selector.git",
"reference": "aa9fa526ba1b2ec087ffdfb32753803d999fcfcd" "reference": "76dac1dbe2830213e95892c7c2ec1edd74113ea4"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/css-selector/zipball/aa9fa526ba1b2ec087ffdfb32753803d999fcfcd", "url": "https://api.github.com/repos/symfony/css-selector/zipball/76dac1dbe2830213e95892c7c2ec1edd74113ea4",
"reference": "aa9fa526ba1b2ec087ffdfb32753803d999fcfcd", "reference": "76dac1dbe2830213e95892c7c2ec1edd74113ea4",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2638,20 +2638,20 @@
], ],
"description": "Symfony CssSelector Component", "description": "Symfony CssSelector Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2018-11-11T19:52:12+00:00" "time": "2019-01-03T09:07:35+00:00"
}, },
{ {
"name": "symfony/debug", "name": "symfony/debug",
"version": "v4.2.1", "version": "v4.2.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/debug.git", "url": "https://github.com/symfony/debug.git",
"reference": "e0a2b92ee0b5b934f973d90c2f58e18af109d276" "reference": "64cb33c81e37d19b7715d4a6a4d49c1c382066dd"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/debug/zipball/e0a2b92ee0b5b934f973d90c2f58e18af109d276", "url": "https://api.github.com/repos/symfony/debug/zipball/64cb33c81e37d19b7715d4a6a4d49c1c382066dd",
"reference": "e0a2b92ee0b5b934f973d90c2f58e18af109d276", "reference": "64cb33c81e37d19b7715d4a6a4d49c1c382066dd",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2694,20 +2694,20 @@
], ],
"description": "Symfony Debug Component", "description": "Symfony Debug Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2018-11-28T18:24:18+00:00" "time": "2019-01-03T09:07:35+00:00"
}, },
{ {
"name": "symfony/event-dispatcher", "name": "symfony/event-dispatcher",
"version": "v4.2.1", "version": "v4.2.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/event-dispatcher.git", "url": "https://github.com/symfony/event-dispatcher.git",
"reference": "921f49c3158a276d27c0d770a5a347a3b718b328" "reference": "887de6d34c86cf0cb6cbf910afb170cdb743cb5e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/921f49c3158a276d27c0d770a5a347a3b718b328", "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/887de6d34c86cf0cb6cbf910afb170cdb743cb5e",
"reference": "921f49c3158a276d27c0d770a5a347a3b718b328", "reference": "887de6d34c86cf0cb6cbf910afb170cdb743cb5e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2758,20 +2758,20 @@
], ],
"description": "Symfony EventDispatcher Component", "description": "Symfony EventDispatcher Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2018-12-01T08:52:38+00:00" "time": "2019-01-05T16:37:49+00:00"
}, },
{ {
"name": "symfony/finder", "name": "symfony/finder",
"version": "v4.2.1", "version": "v4.2.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/finder.git", "url": "https://github.com/symfony/finder.git",
"reference": "e53d477d7b5c4982d0e1bfd2298dbee63d01441d" "reference": "9094d69e8c6ee3fe186a0ec5a4f1401e506071ce"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/e53d477d7b5c4982d0e1bfd2298dbee63d01441d", "url": "https://api.github.com/repos/symfony/finder/zipball/9094d69e8c6ee3fe186a0ec5a4f1401e506071ce",
"reference": "e53d477d7b5c4982d0e1bfd2298dbee63d01441d", "reference": "9094d69e8c6ee3fe186a0ec5a4f1401e506071ce",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2807,20 +2807,20 @@
], ],
"description": "Symfony Finder Component", "description": "Symfony Finder Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2018-11-11T19:52:12+00:00" "time": "2019-01-03T09:07:35+00:00"
}, },
{ {
"name": "symfony/http-foundation", "name": "symfony/http-foundation",
"version": "v4.2.1", "version": "v4.2.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-foundation.git", "url": "https://github.com/symfony/http-foundation.git",
"reference": "1b31f3017fadd8cb05cf2c8aebdbf3b12a943851" "reference": "a633d422a09242064ba24e44a6e1494c5126de86"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/1b31f3017fadd8cb05cf2c8aebdbf3b12a943851", "url": "https://api.github.com/repos/symfony/http-foundation/zipball/a633d422a09242064ba24e44a6e1494c5126de86",
"reference": "1b31f3017fadd8cb05cf2c8aebdbf3b12a943851", "reference": "a633d422a09242064ba24e44a6e1494c5126de86",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2861,20 +2861,20 @@
], ],
"description": "Symfony HttpFoundation Component", "description": "Symfony HttpFoundation Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2018-11-26T10:55:26+00:00" "time": "2019-01-05T16:37:49+00:00"
}, },
{ {
"name": "symfony/http-kernel", "name": "symfony/http-kernel",
"version": "v4.2.1", "version": "v4.2.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-kernel.git", "url": "https://github.com/symfony/http-kernel.git",
"reference": "b39ceffc0388232c309cbde3a7c3685f2ec0a624" "reference": "83de6543328917c18d5498eeb6bb6d36f7aab31b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/b39ceffc0388232c309cbde3a7c3685f2ec0a624", "url": "https://api.github.com/repos/symfony/http-kernel/zipball/83de6543328917c18d5498eeb6bb6d36f7aab31b",
"reference": "b39ceffc0388232c309cbde3a7c3685f2ec0a624", "reference": "83de6543328917c18d5498eeb6bb6d36f7aab31b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2950,7 +2950,7 @@
], ],
"description": "Symfony HttpKernel Component", "description": "Symfony HttpKernel Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2018-12-06T17:39:52+00:00" "time": "2019-01-06T16:19:23+00:00"
}, },
{ {
"name": "symfony/polyfill-ctype", "name": "symfony/polyfill-ctype",
@@ -3126,16 +3126,16 @@
}, },
{ {
"name": "symfony/process", "name": "symfony/process",
"version": "v4.2.1", "version": "v4.2.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/process.git", "url": "https://github.com/symfony/process.git",
"reference": "2b341009ccec76837a7f46f59641b431e4d4c2b0" "reference": "ea043ab5d8ed13b467a9087d81cb876aee7f689a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/2b341009ccec76837a7f46f59641b431e4d4c2b0", "url": "https://api.github.com/repos/symfony/process/zipball/ea043ab5d8ed13b467a9087d81cb876aee7f689a",
"reference": "2b341009ccec76837a7f46f59641b431e4d4c2b0", "reference": "ea043ab5d8ed13b467a9087d81cb876aee7f689a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3171,20 +3171,20 @@
], ],
"description": "Symfony Process Component", "description": "Symfony Process Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2018-11-20T16:22:05+00:00" "time": "2019-01-03T14:48:52+00:00"
}, },
{ {
"name": "symfony/routing", "name": "symfony/routing",
"version": "v4.2.1", "version": "v4.2.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/routing.git", "url": "https://github.com/symfony/routing.git",
"reference": "649460207e77da6c545326c7f53618d23ad2c866" "reference": "e69b7a13a0b58af378a49b49dd7084462de16cee"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/routing/zipball/649460207e77da6c545326c7f53618d23ad2c866", "url": "https://api.github.com/repos/symfony/routing/zipball/e69b7a13a0b58af378a49b49dd7084462de16cee",
"reference": "649460207e77da6c545326c7f53618d23ad2c866", "reference": "e69b7a13a0b58af378a49b49dd7084462de16cee",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3248,20 +3248,20 @@
"uri", "uri",
"url" "url"
], ],
"time": "2018-12-03T22:08:12+00:00" "time": "2019-01-03T09:07:35+00:00"
}, },
{ {
"name": "symfony/translation", "name": "symfony/translation",
"version": "v4.2.1", "version": "v4.2.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/translation.git", "url": "https://github.com/symfony/translation.git",
"reference": "c0e2191e9bed845946ab3d99767513b56ca7dcd6" "reference": "939fb792d73f2ce80e6ae9019d205fc480f1c9a0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/translation/zipball/c0e2191e9bed845946ab3d99767513b56ca7dcd6", "url": "https://api.github.com/repos/symfony/translation/zipball/939fb792d73f2ce80e6ae9019d205fc480f1c9a0",
"reference": "c0e2191e9bed845946ab3d99767513b56ca7dcd6", "reference": "939fb792d73f2ce80e6ae9019d205fc480f1c9a0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3321,20 +3321,20 @@
], ],
"description": "Symfony Translation Component", "description": "Symfony Translation Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2018-12-06T10:45:32+00:00" "time": "2019-01-03T09:07:35+00:00"
}, },
{ {
"name": "symfony/var-dumper", "name": "symfony/var-dumper",
"version": "v4.2.1", "version": "v4.2.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/var-dumper.git", "url": "https://github.com/symfony/var-dumper.git",
"reference": "db61258540350725f4beb6b84006e32398acd120" "reference": "85bde661b178173d85c6f11ea9d03b61d1212bb2"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/db61258540350725f4beb6b84006e32398acd120", "url": "https://api.github.com/repos/symfony/var-dumper/zipball/85bde661b178173d85c6f11ea9d03b61d1212bb2",
"reference": "db61258540350725f4beb6b84006e32398acd120", "reference": "85bde661b178173d85c6f11ea9d03b61d1212bb2",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3348,6 +3348,7 @@
}, },
"require-dev": { "require-dev": {
"ext-iconv": "*", "ext-iconv": "*",
"symfony/console": "~3.4|~4.0",
"symfony/process": "~3.4|~4.0", "symfony/process": "~3.4|~4.0",
"twig/twig": "~1.34|~2.4" "twig/twig": "~1.34|~2.4"
}, },
@@ -3396,7 +3397,7 @@
"debug", "debug",
"dump" "dump"
], ],
"time": "2018-11-25T12:50:42+00:00" "time": "2019-01-03T09:07:35+00:00"
}, },
{ {
"name": "tijsverkoyen/css-to-inline-styles", "name": "tijsverkoyen/css-to-inline-styles",
@@ -3447,16 +3448,16 @@
}, },
{ {
"name": "twbs/bootstrap", "name": "twbs/bootstrap",
"version": "v4.1.3", "version": "v4.2.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/twbs/bootstrap.git", "url": "https://github.com/twbs/bootstrap.git",
"reference": "3b558734382ce58b51e5fc676453bfd53bba9201" "reference": "9e4e94747bd698f4f61d48ed54c9c6d4d199bd32"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/twbs/bootstrap/zipball/3b558734382ce58b51e5fc676453bfd53bba9201", "url": "https://api.github.com/repos/twbs/bootstrap/zipball/9e4e94747bd698f4f61d48ed54c9c6d4d199bd32",
"reference": "3b558734382ce58b51e5fc676453bfd53bba9201", "reference": "9e4e94747bd698f4f61d48ed54c9c6d4d199bd32",
"shasum": "" "shasum": ""
}, },
"replace": { "replace": {
@@ -3494,20 +3495,20 @@
"sass", "sass",
"web" "web"
], ],
"time": "2018-07-24T15:54:34+00:00" "time": "2018-12-21T18:55:28+00:00"
}, },
{ {
"name": "vlucas/phpdotenv", "name": "vlucas/phpdotenv",
"version": "v2.5.1", "version": "v2.5.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/vlucas/phpdotenv.git", "url": "https://github.com/vlucas/phpdotenv.git",
"reference": "8abb4f9aa89ddea9d52112c65bbe8d0125e2fa8e" "reference": "cfd5dc225767ca154853752abc93aeec040fcf36"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/8abb4f9aa89ddea9d52112c65bbe8d0125e2fa8e", "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/cfd5dc225767ca154853752abc93aeec040fcf36",
"reference": "8abb4f9aa89ddea9d52112c65bbe8d0125e2fa8e", "reference": "cfd5dc225767ca154853752abc93aeec040fcf36",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3544,7 +3545,7 @@
"env", "env",
"environment" "environment"
], ],
"time": "2018-07-29T20:33:41+00:00" "time": "2018-10-30T17:29:25+00:00"
}, },
{ {
"name": "zendframework/zend-diactoros", "name": "zendframework/zend-diactoros",
@@ -5321,20 +5322,21 @@
}, },
{ {
"name": "webmozart/assert", "name": "webmozart/assert",
"version": "1.3.0", "version": "1.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/webmozart/assert.git", "url": "https://github.com/webmozart/assert.git",
"reference": "0df1908962e7a3071564e857d86874dad1ef204a" "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a", "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9",
"reference": "0df1908962e7a3071564e857d86874dad1ef204a", "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^5.3.3 || ^7.0" "php": "^5.3.3 || ^7.0",
"symfony/polyfill-ctype": "^1.8"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^4.6", "phpunit/phpunit": "^4.6",
@@ -5367,7 +5369,7 @@
"check", "check",
"validate" "validate"
], ],
"time": "2018-01-29T19:49:41+00:00" "time": "2018-12-25T11:19:39+00:00"
} }
], ],
"aliases": [], "aliases": [],

View File

@@ -65,7 +65,6 @@ return array(
'App\\Library\\Lookups\\LookupHelper' => $baseDir . '/app/Library/Lookups/LookupHelper.php', 'App\\Library\\Lookups\\LookupHelper' => $baseDir . '/app/Library/Lookups/LookupHelper.php',
'App\\Library\\Moons\\MoonCalc' => $baseDir . '/app/Library/Moons/MoonCalc.php', 'App\\Library\\Moons\\MoonCalc' => $baseDir . '/app/Library/Moons/MoonCalc.php',
'App\\Library\\Moons\\MoonMine' => $baseDir . '/app/Library/Moons/MoonMine.php', 'App\\Library\\Moons\\MoonMine' => $baseDir . '/app/Library/Moons/MoonMine.php',
'App\\Library\\SeatHelper' => $baseDir . '/app/Library/SeatHelper.php',
'App\\Library\\Structures\\JumpBridgeFuel' => $baseDir . '/app/Library/Structures/JumpBridgeFuel.php', 'App\\Library\\Structures\\JumpBridgeFuel' => $baseDir . '/app/Library/Structures/JumpBridgeFuel.php',
'App\\Library\\Structures\\StructureTaxHelper' => $baseDir . '/app/Library/Structures/StructureTaxHelper.php', 'App\\Library\\Structures\\StructureTaxHelper' => $baseDir . '/app/Library/Structures/StructureTaxHelper.php',
'App\\Models\\Character\\CharacterToCorporation' => $baseDir . '/app/Models/Charcter/CharacterToCorporation.php', 'App\\Models\\Character\\CharacterToCorporation' => $baseDir . '/app/Models/Charcter/CharacterToCorporation.php',

View File

@@ -519,7 +519,6 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
'App\\Library\\Lookups\\LookupHelper' => __DIR__ . '/../..' . '/app/Library/Lookups/LookupHelper.php', 'App\\Library\\Lookups\\LookupHelper' => __DIR__ . '/../..' . '/app/Library/Lookups/LookupHelper.php',
'App\\Library\\Moons\\MoonCalc' => __DIR__ . '/../..' . '/app/Library/Moons/MoonCalc.php', 'App\\Library\\Moons\\MoonCalc' => __DIR__ . '/../..' . '/app/Library/Moons/MoonCalc.php',
'App\\Library\\Moons\\MoonMine' => __DIR__ . '/../..' . '/app/Library/Moons/MoonMine.php', 'App\\Library\\Moons\\MoonMine' => __DIR__ . '/../..' . '/app/Library/Moons/MoonMine.php',
'App\\Library\\SeatHelper' => __DIR__ . '/../..' . '/app/Library/SeatHelper.php',
'App\\Library\\Structures\\JumpBridgeFuel' => __DIR__ . '/../..' . '/app/Library/Structures/JumpBridgeFuel.php', 'App\\Library\\Structures\\JumpBridgeFuel' => __DIR__ . '/../..' . '/app/Library/Structures/JumpBridgeFuel.php',
'App\\Library\\Structures\\StructureTaxHelper' => __DIR__ . '/../..' . '/app/Library/Structures/StructureTaxHelper.php', 'App\\Library\\Structures\\StructureTaxHelper' => __DIR__ . '/../..' . '/app/Library/Structures/StructureTaxHelper.php',
'App\\Models\\Character\\CharacterToCorporation' => __DIR__ . '/../..' . '/app/Models/Charcter/CharacterToCorporation.php', 'App\\Models\\Character\\CharacterToCorporation' => __DIR__ . '/../..' . '/app/Models/Charcter/CharacterToCorporation.php',

View File

@@ -1047,17 +1047,17 @@
}, },
{ {
"name": "laravel/framework", "name": "laravel/framework",
"version": "v5.7.19", "version": "v5.7.20",
"version_normalized": "5.7.19.0", "version_normalized": "5.7.20.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/framework.git", "url": "https://github.com/laravel/framework.git",
"reference": "5c1d1ec7e8563ea31826fd5eb3f6791acf01160c" "reference": "10cd20294b5668f90ba91996236834e71f7ff670"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/5c1d1ec7e8563ea31826fd5eb3f6791acf01160c", "url": "https://api.github.com/repos/laravel/framework/zipball/10cd20294b5668f90ba91996236834e71f7ff670",
"reference": "5c1d1ec7e8563ea31826fd5eb3f6791acf01160c", "reference": "10cd20294b5668f90ba91996236834e71f7ff670",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1131,7 +1131,7 @@
"moontoast/math": "^1.1", "moontoast/math": "^1.1",
"orchestra/testbench-core": "3.7.*", "orchestra/testbench-core": "3.7.*",
"pda/pheanstalk": "^3.0", "pda/pheanstalk": "^3.0",
"phpunit/phpunit": "^7.0", "phpunit/phpunit": "^7.5",
"predis/predis": "^1.1.1", "predis/predis": "^1.1.1",
"symfony/css-selector": "^4.1", "symfony/css-selector": "^4.1",
"symfony/dom-crawler": "^4.1", "symfony/dom-crawler": "^4.1",
@@ -1159,7 +1159,7 @@
"symfony/dom-crawler": "Required to use most of the crawler integration testing tools (^4.1).", "symfony/dom-crawler": "Required to use most of the crawler integration testing tools (^4.1).",
"symfony/psr-http-message-bridge": "Required to psr7 bridging features (^1.0)." "symfony/psr-http-message-bridge": "Required to psr7 bridging features (^1.0)."
}, },
"time": "2018-12-18T14:00:38+00:00", "time": "2019-01-08T14:39:11+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -1921,17 +1921,17 @@
}, },
{ {
"name": "nesbot/carbon", "name": "nesbot/carbon",
"version": "1.36.1", "version": "1.36.2",
"version_normalized": "1.36.1.0", "version_normalized": "1.36.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/briannesbitt/Carbon.git", "url": "https://github.com/briannesbitt/Carbon.git",
"reference": "63da8cdf89d7a5efe43aabc794365f6e7b7b8983" "reference": "cd324b98bc30290f233dd0e75e6ce49f7ab2a6c9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/63da8cdf89d7a5efe43aabc794365f6e7b7b8983", "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/cd324b98bc30290f233dd0e75e6ce49f7ab2a6c9",
"reference": "63da8cdf89d7a5efe43aabc794365f6e7b7b8983", "reference": "cd324b98bc30290f233dd0e75e6ce49f7ab2a6c9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1945,7 +1945,7 @@
"friendsofphp/php-cs-fixer": "Needed for the `composer phpcs` command. Allow to automatically fix code style.", "friendsofphp/php-cs-fixer": "Needed for the `composer phpcs` command. Allow to automatically fix code style.",
"phpstan/phpstan": "Needed for the `composer phpstan` command. Allow to detect potential errors." "phpstan/phpstan": "Needed for the `composer phpstan` command. Allow to detect potential errors."
}, },
"time": "2018-11-22T18:23:02+00:00", "time": "2018-12-28T10:07:33+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"laravel": { "laravel": {
@@ -2031,17 +2031,17 @@
}, },
{ {
"name": "nikic/php-parser", "name": "nikic/php-parser",
"version": "v4.1.0", "version": "v4.1.1",
"version_normalized": "4.1.0.0", "version_normalized": "4.1.1.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nikic/PHP-Parser.git", "url": "https://github.com/nikic/PHP-Parser.git",
"reference": "d0230c5c77a7e3cfa69446febf340978540958c0" "reference": "8aae5b59b83bb4d0dbf07b0a835f2680a658f610"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/d0230c5c77a7e3cfa69446febf340978540958c0", "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/8aae5b59b83bb4d0dbf07b0a835f2680a658f610",
"reference": "d0230c5c77a7e3cfa69446febf340978540958c0", "reference": "8aae5b59b83bb4d0dbf07b0a835f2680a658f610",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2051,7 +2051,7 @@
"require-dev": { "require-dev": {
"phpunit/phpunit": "^6.5 || ^7.0" "phpunit/phpunit": "^6.5 || ^7.0"
}, },
"time": "2018-10-10T09:24:14+00:00", "time": "2018-12-26T11:32:39+00:00",
"bin": [ "bin": [
"bin/php-parse" "bin/php-parse"
], ],
@@ -2197,17 +2197,17 @@
}, },
{ {
"name": "opis/closure", "name": "opis/closure",
"version": "3.1.2", "version": "3.1.3",
"version_normalized": "3.1.2.0", "version_normalized": "3.1.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/opis/closure.git", "url": "https://github.com/opis/closure.git",
"reference": "de00c69a2328d3ee5baa71fc584dc643222a574c" "reference": "5e9095ce871a425ab87a854b285b7766de38a7d9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/opis/closure/zipball/de00c69a2328d3ee5baa71fc584dc643222a574c", "url": "https://api.github.com/repos/opis/closure/zipball/5e9095ce871a425ab87a854b285b7766de38a7d9",
"reference": "de00c69a2328d3ee5baa71fc584dc643222a574c", "reference": "5e9095ce871a425ab87a854b285b7766de38a7d9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2217,11 +2217,11 @@
"jeremeamia/superclosure": "^2.0", "jeremeamia/superclosure": "^2.0",
"phpunit/phpunit": "^4.0|^5.0|^6.0|^7.0" "phpunit/phpunit": "^4.0|^5.0|^6.0|^7.0"
}, },
"time": "2018-12-16T21:48:23+00:00", "time": "2019-01-06T22:07:38+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.0.x-dev" "dev-master": "3.1.x-dev"
} }
}, },
"installation-source": "dist", "installation-source": "dist",
@@ -4258,17 +4258,17 @@
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v4.2.1", "version": "v4.2.2",
"version_normalized": "4.2.1.0", "version_normalized": "4.2.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "4dff24e5d01e713818805c1862d2e3f901ee7dd0" "reference": "b0a03c1bb0fcbe288629956cf2f1dd3f1dc97522"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/4dff24e5d01e713818805c1862d2e3f901ee7dd0", "url": "https://api.github.com/repos/symfony/console/zipball/b0a03c1bb0fcbe288629956cf2f1dd3f1dc97522",
"reference": "4dff24e5d01e713818805c1862d2e3f901ee7dd0", "reference": "b0a03c1bb0fcbe288629956cf2f1dd3f1dc97522",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4294,7 +4294,7 @@
"symfony/lock": "", "symfony/lock": "",
"symfony/process": "" "symfony/process": ""
}, },
"time": "2018-11-27T07:40:44+00:00", "time": "2019-01-04T15:13:53+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -4399,23 +4399,23 @@
}, },
{ {
"name": "symfony/css-selector", "name": "symfony/css-selector",
"version": "v4.2.1", "version": "v4.2.2",
"version_normalized": "4.2.1.0", "version_normalized": "4.2.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/css-selector.git", "url": "https://github.com/symfony/css-selector.git",
"reference": "aa9fa526ba1b2ec087ffdfb32753803d999fcfcd" "reference": "76dac1dbe2830213e95892c7c2ec1edd74113ea4"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/css-selector/zipball/aa9fa526ba1b2ec087ffdfb32753803d999fcfcd", "url": "https://api.github.com/repos/symfony/css-selector/zipball/76dac1dbe2830213e95892c7c2ec1edd74113ea4",
"reference": "aa9fa526ba1b2ec087ffdfb32753803d999fcfcd", "reference": "76dac1dbe2830213e95892c7c2ec1edd74113ea4",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.1.3" "php": "^7.1.3"
}, },
"time": "2018-11-11T19:52:12+00:00", "time": "2019-01-03T09:07:35+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -4454,17 +4454,17 @@
}, },
{ {
"name": "symfony/debug", "name": "symfony/debug",
"version": "v4.2.1", "version": "v4.2.2",
"version_normalized": "4.2.1.0", "version_normalized": "4.2.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/debug.git", "url": "https://github.com/symfony/debug.git",
"reference": "e0a2b92ee0b5b934f973d90c2f58e18af109d276" "reference": "64cb33c81e37d19b7715d4a6a4d49c1c382066dd"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/debug/zipball/e0a2b92ee0b5b934f973d90c2f58e18af109d276", "url": "https://api.github.com/repos/symfony/debug/zipball/64cb33c81e37d19b7715d4a6a4d49c1c382066dd",
"reference": "e0a2b92ee0b5b934f973d90c2f58e18af109d276", "reference": "64cb33c81e37d19b7715d4a6a4d49c1c382066dd",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4477,7 +4477,7 @@
"require-dev": { "require-dev": {
"symfony/http-kernel": "~3.4|~4.0" "symfony/http-kernel": "~3.4|~4.0"
}, },
"time": "2018-11-28T18:24:18+00:00", "time": "2019-01-03T09:07:35+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -4512,17 +4512,17 @@
}, },
{ {
"name": "symfony/event-dispatcher", "name": "symfony/event-dispatcher",
"version": "v4.2.1", "version": "v4.2.2",
"version_normalized": "4.2.1.0", "version_normalized": "4.2.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/event-dispatcher.git", "url": "https://github.com/symfony/event-dispatcher.git",
"reference": "921f49c3158a276d27c0d770a5a347a3b718b328" "reference": "887de6d34c86cf0cb6cbf910afb170cdb743cb5e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/921f49c3158a276d27c0d770a5a347a3b718b328", "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/887de6d34c86cf0cb6cbf910afb170cdb743cb5e",
"reference": "921f49c3158a276d27c0d770a5a347a3b718b328", "reference": "887de6d34c86cf0cb6cbf910afb170cdb743cb5e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4543,7 +4543,7 @@
"symfony/dependency-injection": "", "symfony/dependency-injection": "",
"symfony/http-kernel": "" "symfony/http-kernel": ""
}, },
"time": "2018-12-01T08:52:38+00:00", "time": "2019-01-05T16:37:49+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -4578,23 +4578,23 @@
}, },
{ {
"name": "symfony/finder", "name": "symfony/finder",
"version": "v4.2.1", "version": "v4.2.2",
"version_normalized": "4.2.1.0", "version_normalized": "4.2.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/finder.git", "url": "https://github.com/symfony/finder.git",
"reference": "e53d477d7b5c4982d0e1bfd2298dbee63d01441d" "reference": "9094d69e8c6ee3fe186a0ec5a4f1401e506071ce"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/e53d477d7b5c4982d0e1bfd2298dbee63d01441d", "url": "https://api.github.com/repos/symfony/finder/zipball/9094d69e8c6ee3fe186a0ec5a4f1401e506071ce",
"reference": "e53d477d7b5c4982d0e1bfd2298dbee63d01441d", "reference": "9094d69e8c6ee3fe186a0ec5a4f1401e506071ce",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.1.3" "php": "^7.1.3"
}, },
"time": "2018-11-11T19:52:12+00:00", "time": "2019-01-03T09:07:35+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -4629,17 +4629,17 @@
}, },
{ {
"name": "symfony/http-foundation", "name": "symfony/http-foundation",
"version": "v4.2.1", "version": "v4.2.2",
"version_normalized": "4.2.1.0", "version_normalized": "4.2.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-foundation.git", "url": "https://github.com/symfony/http-foundation.git",
"reference": "1b31f3017fadd8cb05cf2c8aebdbf3b12a943851" "reference": "a633d422a09242064ba24e44a6e1494c5126de86"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/1b31f3017fadd8cb05cf2c8aebdbf3b12a943851", "url": "https://api.github.com/repos/symfony/http-foundation/zipball/a633d422a09242064ba24e44a6e1494c5126de86",
"reference": "1b31f3017fadd8cb05cf2c8aebdbf3b12a943851", "reference": "a633d422a09242064ba24e44a6e1494c5126de86",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4650,7 +4650,7 @@
"predis/predis": "~1.0", "predis/predis": "~1.0",
"symfony/expression-language": "~3.4|~4.0" "symfony/expression-language": "~3.4|~4.0"
}, },
"time": "2018-11-26T10:55:26+00:00", "time": "2019-01-05T16:37:49+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -4685,17 +4685,17 @@
}, },
{ {
"name": "symfony/http-kernel", "name": "symfony/http-kernel",
"version": "v4.2.1", "version": "v4.2.2",
"version_normalized": "4.2.1.0", "version_normalized": "4.2.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-kernel.git", "url": "https://github.com/symfony/http-kernel.git",
"reference": "b39ceffc0388232c309cbde3a7c3685f2ec0a624" "reference": "83de6543328917c18d5498eeb6bb6d36f7aab31b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/b39ceffc0388232c309cbde3a7c3685f2ec0a624", "url": "https://api.github.com/repos/symfony/http-kernel/zipball/83de6543328917c18d5498eeb6bb6d36f7aab31b",
"reference": "b39ceffc0388232c309cbde3a7c3685f2ec0a624", "reference": "83de6543328917c18d5498eeb6bb6d36f7aab31b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4741,7 +4741,7 @@
"symfony/dependency-injection": "", "symfony/dependency-injection": "",
"symfony/var-dumper": "" "symfony/var-dumper": ""
}, },
"time": "2018-12-06T17:39:52+00:00", "time": "2019-01-06T16:19:23+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -4954,23 +4954,23 @@
}, },
{ {
"name": "symfony/process", "name": "symfony/process",
"version": "v4.2.1", "version": "v4.2.2",
"version_normalized": "4.2.1.0", "version_normalized": "4.2.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/process.git", "url": "https://github.com/symfony/process.git",
"reference": "2b341009ccec76837a7f46f59641b431e4d4c2b0" "reference": "ea043ab5d8ed13b467a9087d81cb876aee7f689a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/2b341009ccec76837a7f46f59641b431e4d4c2b0", "url": "https://api.github.com/repos/symfony/process/zipball/ea043ab5d8ed13b467a9087d81cb876aee7f689a",
"reference": "2b341009ccec76837a7f46f59641b431e4d4c2b0", "reference": "ea043ab5d8ed13b467a9087d81cb876aee7f689a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.1.3" "php": "^7.1.3"
}, },
"time": "2018-11-20T16:22:05+00:00", "time": "2019-01-03T14:48:52+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -5005,17 +5005,17 @@
}, },
{ {
"name": "symfony/routing", "name": "symfony/routing",
"version": "v4.2.1", "version": "v4.2.2",
"version_normalized": "4.2.1.0", "version_normalized": "4.2.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/routing.git", "url": "https://github.com/symfony/routing.git",
"reference": "649460207e77da6c545326c7f53618d23ad2c866" "reference": "e69b7a13a0b58af378a49b49dd7084462de16cee"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/routing/zipball/649460207e77da6c545326c7f53618d23ad2c866", "url": "https://api.github.com/repos/symfony/routing/zipball/e69b7a13a0b58af378a49b49dd7084462de16cee",
"reference": "649460207e77da6c545326c7f53618d23ad2c866", "reference": "e69b7a13a0b58af378a49b49dd7084462de16cee",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -5043,7 +5043,7 @@
"symfony/http-foundation": "For using a Symfony Request object", "symfony/http-foundation": "For using a Symfony Request object",
"symfony/yaml": "For using the YAML loader" "symfony/yaml": "For using the YAML loader"
}, },
"time": "2018-12-03T22:08:12+00:00", "time": "2019-01-03T09:07:35+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -5084,17 +5084,17 @@
}, },
{ {
"name": "symfony/translation", "name": "symfony/translation",
"version": "v4.2.1", "version": "v4.2.2",
"version_normalized": "4.2.1.0", "version_normalized": "4.2.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/translation.git", "url": "https://github.com/symfony/translation.git",
"reference": "c0e2191e9bed845946ab3d99767513b56ca7dcd6" "reference": "939fb792d73f2ce80e6ae9019d205fc480f1c9a0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/translation/zipball/c0e2191e9bed845946ab3d99767513b56ca7dcd6", "url": "https://api.github.com/repos/symfony/translation/zipball/939fb792d73f2ce80e6ae9019d205fc480f1c9a0",
"reference": "c0e2191e9bed845946ab3d99767513b56ca7dcd6", "reference": "939fb792d73f2ce80e6ae9019d205fc480f1c9a0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -5124,7 +5124,7 @@
"symfony/config": "", "symfony/config": "",
"symfony/yaml": "" "symfony/yaml": ""
}, },
"time": "2018-12-06T10:45:32+00:00", "time": "2019-01-03T09:07:35+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -5159,17 +5159,17 @@
}, },
{ {
"name": "symfony/var-dumper", "name": "symfony/var-dumper",
"version": "v4.2.1", "version": "v4.2.2",
"version_normalized": "4.2.1.0", "version_normalized": "4.2.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/var-dumper.git", "url": "https://github.com/symfony/var-dumper.git",
"reference": "db61258540350725f4beb6b84006e32398acd120" "reference": "85bde661b178173d85c6f11ea9d03b61d1212bb2"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/db61258540350725f4beb6b84006e32398acd120", "url": "https://api.github.com/repos/symfony/var-dumper/zipball/85bde661b178173d85c6f11ea9d03b61d1212bb2",
"reference": "db61258540350725f4beb6b84006e32398acd120", "reference": "85bde661b178173d85c6f11ea9d03b61d1212bb2",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -5183,6 +5183,7 @@
}, },
"require-dev": { "require-dev": {
"ext-iconv": "*", "ext-iconv": "*",
"symfony/console": "~3.4|~4.0",
"symfony/process": "~3.4|~4.0", "symfony/process": "~3.4|~4.0",
"twig/twig": "~1.34|~2.4" "twig/twig": "~1.34|~2.4"
}, },
@@ -5191,7 +5192,7 @@
"ext-intl": "To show region name in time zone dump", "ext-intl": "To show region name in time zone dump",
"symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
}, },
"time": "2018-11-25T12:50:42+00:00", "time": "2019-01-03T09:07:35+00:00",
"bin": [ "bin": [
"Resources/bin/var-dump-server" "Resources/bin/var-dump-server"
], ],
@@ -5327,23 +5328,23 @@
}, },
{ {
"name": "twbs/bootstrap", "name": "twbs/bootstrap",
"version": "v4.1.3", "version": "v4.2.1",
"version_normalized": "4.1.3.0", "version_normalized": "4.2.1.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/twbs/bootstrap.git", "url": "https://github.com/twbs/bootstrap.git",
"reference": "3b558734382ce58b51e5fc676453bfd53bba9201" "reference": "9e4e94747bd698f4f61d48ed54c9c6d4d199bd32"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/twbs/bootstrap/zipball/3b558734382ce58b51e5fc676453bfd53bba9201", "url": "https://api.github.com/repos/twbs/bootstrap/zipball/9e4e94747bd698f4f61d48ed54c9c6d4d199bd32",
"reference": "3b558734382ce58b51e5fc676453bfd53bba9201", "reference": "9e4e94747bd698f4f61d48ed54c9c6d4d199bd32",
"shasum": "" "shasum": ""
}, },
"replace": { "replace": {
"twitter/bootstrap": "self.version" "twitter/bootstrap": "self.version"
}, },
"time": "2018-07-24T15:54:34+00:00", "time": "2018-12-21T18:55:28+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -5380,17 +5381,17 @@
}, },
{ {
"name": "vlucas/phpdotenv", "name": "vlucas/phpdotenv",
"version": "v2.5.1", "version": "v2.5.2",
"version_normalized": "2.5.1.0", "version_normalized": "2.5.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/vlucas/phpdotenv.git", "url": "https://github.com/vlucas/phpdotenv.git",
"reference": "8abb4f9aa89ddea9d52112c65bbe8d0125e2fa8e" "reference": "cfd5dc225767ca154853752abc93aeec040fcf36"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/8abb4f9aa89ddea9d52112c65bbe8d0125e2fa8e", "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/cfd5dc225767ca154853752abc93aeec040fcf36",
"reference": "8abb4f9aa89ddea9d52112c65bbe8d0125e2fa8e", "reference": "cfd5dc225767ca154853752abc93aeec040fcf36",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -5399,7 +5400,7 @@
"require-dev": { "require-dev": {
"phpunit/phpunit": "^4.8.35 || ^5.0" "phpunit/phpunit": "^4.8.35 || ^5.0"
}, },
"time": "2018-07-29T20:33:41+00:00", "time": "2018-10-30T17:29:25+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -5432,27 +5433,28 @@
}, },
{ {
"name": "webmozart/assert", "name": "webmozart/assert",
"version": "1.3.0", "version": "1.4.0",
"version_normalized": "1.3.0.0", "version_normalized": "1.4.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/webmozart/assert.git", "url": "https://github.com/webmozart/assert.git",
"reference": "0df1908962e7a3071564e857d86874dad1ef204a" "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a", "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9",
"reference": "0df1908962e7a3071564e857d86874dad1ef204a", "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^5.3.3 || ^7.0" "php": "^5.3.3 || ^7.0",
"symfony/polyfill-ctype": "^1.8"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^4.6", "phpunit/phpunit": "^4.6",
"sebastian/version": "^1.0.1" "sebastian/version": "^1.0.1"
}, },
"time": "2018-01-29T19:49:41+00:00", "time": "2018-12-25T11:19:39+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {

View File

@@ -85,7 +85,7 @@
"moontoast/math": "^1.1", "moontoast/math": "^1.1",
"orchestra/testbench-core": "3.7.*", "orchestra/testbench-core": "3.7.*",
"pda/pheanstalk": "^3.0", "pda/pheanstalk": "^3.0",
"phpunit/phpunit": "^7.0", "phpunit/phpunit": "^7.5",
"predis/predis": "^1.1.1", "predis/predis": "^1.1.1",
"symfony/css-selector": "^4.1", "symfony/css-selector": "^4.1",
"symfony/dom-crawler": "^4.1", "symfony/dom-crawler": "^4.1",

View File

@@ -223,13 +223,31 @@ class Command extends SymfonyCommand
*/ */
protected function createInputFromArguments(array $arguments) protected function createInputFromArguments(array $arguments)
{ {
return tap(new ArrayInput($arguments), function ($input) { return tap(new ArrayInput(array_merge($this->context(), $arguments)), function ($input) {
if ($input->hasParameterOption(['--no-interaction'], true)) { if ($input->hasParameterOption(['--no-interaction'], true)) {
$input->setInteractive(false); $input->setInteractive(false);
} }
}); });
} }
/**
* Get all of the context passed to the command.
*
* @return array
*/
protected function context()
{
return collect($this->option())->only([
'ansi',
'no-ansi',
'no-interaction',
'quiet',
'verbose',
])->filter()->mapWithKeys(function ($value, $key) {
return ["--{$key}" => $value];
})->all();
}
/** /**
* Determine if the given argument is present. * Determine if the given argument is present.
* *
@@ -551,6 +569,16 @@ class Command extends SymfonyCommand
return $this->hidden; return $this->hidden;
} }
/**
* {@inheritdoc}
*/
public function setHidden($hidden)
{
parent::setHidden($this->hidden = $hidden);
return $this;
}
/** /**
* Get the console command arguments. * Get the console command arguments.
* *

View File

@@ -47,13 +47,13 @@ class FreshCommand extends Command
$this->info('Dropped all tables successfully.'); $this->info('Dropped all tables successfully.');
$this->call('migrate', [ $this->call('migrate', array_filter([
'--database' => $database, '--database' => $database,
'--path' => $this->input->getOption('path'), '--path' => $this->input->getOption('path'),
'--realpath' => $this->input->getOption('realpath'), '--realpath' => $this->input->getOption('realpath'),
'--force' => true, '--force' => true,
'--step' => $this->option('step'), '--step' => $this->option('step'),
]); ]));
if ($this->needsSeeding()) { if ($this->needsSeeding()) {
$this->runSeeder($database); $this->runSeeder($database);
@@ -104,11 +104,11 @@ class FreshCommand extends Command
*/ */
protected function runSeeder($database) protected function runSeeder($database)
{ {
$this->call('db:seed', [ $this->call('db:seed', array_filter([
'--database' => $database, '--database' => $database,
'--class' => $this->option('seeder') ?: 'DatabaseSeeder', '--class' => $this->option('seeder') ?: 'DatabaseSeeder',
'--force' => $this->option('force'), '--force' => true,
]); ]));
} }
/** /**

View File

@@ -74,7 +74,7 @@ class MigrateCommand extends BaseCommand
// Finally, if the "seed" option has been given, we will re-run the database // Finally, if the "seed" option has been given, we will re-run the database
// seed task to re-populate the database, which is convenient when adding // seed task to re-populate the database, which is convenient when adding
// a migration and a seed at the same time, as it is only this command. // a migration and a seed at the same time, as it is only this command.
if ($this->option('seed')) { if ($this->option('seed') && ! $this->option('pretend')) {
$this->call('db:seed', ['--force' => true]); $this->call('db:seed', ['--force' => true]);
} }
} }
@@ -89,9 +89,9 @@ class MigrateCommand extends BaseCommand
$this->migrator->setConnection($this->option('database')); $this->migrator->setConnection($this->option('database'));
if (! $this->migrator->repositoryExists()) { if (! $this->migrator->repositoryExists()) {
$this->call( $this->call('migrate:install', array_filter([
'migrate:install', ['--database' => $this->option('database')] '--database' => $this->option('database'),
); ]));
} }
} }
} }

View File

@@ -42,28 +42,26 @@ class RefreshCommand extends Command
$path = $this->input->getOption('path'); $path = $this->input->getOption('path');
$force = $this->input->getOption('force');
// If the "step" option is specified it means we only want to rollback a small // If the "step" option is specified it means we only want to rollback a small
// number of migrations before migrating again. For example, the user might // number of migrations before migrating again. For example, the user might
// only rollback and remigrate the latest four migrations instead of all. // only rollback and remigrate the latest four migrations instead of all.
$step = $this->input->getOption('step') ?: 0; $step = $this->input->getOption('step') ?: 0;
if ($step > 0) { if ($step > 0) {
$this->runRollback($database, $path, $step, $force); $this->runRollback($database, $path, $step);
} else { } else {
$this->runReset($database, $path, $force); $this->runReset($database, $path);
} }
// The refresh command is essentially just a brief aggregate of a few other of // The refresh command is essentially just a brief aggregate of a few other of
// the migration commands and just provides a convenient wrapper to execute // the migration commands and just provides a convenient wrapper to execute
// them in succession. We'll also see if we need to re-seed the database. // them in succession. We'll also see if we need to re-seed the database.
$this->call('migrate', [ $this->call('migrate', array_filter([
'--database' => $database, '--database' => $database,
'--path' => $path, '--path' => $path,
'--realpath' => $this->input->getOption('realpath'), '--realpath' => $this->input->getOption('realpath'),
'--force' => $force, '--force' => true,
]); ]));
if ($this->needsSeeding()) { if ($this->needsSeeding()) {
$this->runSeeder($database); $this->runSeeder($database);
@@ -75,19 +73,18 @@ class RefreshCommand extends Command
* *
* @param string $database * @param string $database
* @param string $path * @param string $path
* @param bool $step * @param int $step
* @param bool $force
* @return void * @return void
*/ */
protected function runRollback($database, $path, $step, $force) protected function runRollback($database, $path, $step)
{ {
$this->call('migrate:rollback', [ $this->call('migrate:rollback', array_filter([
'--database' => $database, '--database' => $database,
'--path' => $path, '--path' => $path,
'--realpath' => $this->input->getOption('realpath'), '--realpath' => $this->input->getOption('realpath'),
'--step' => $step, '--step' => $step,
'--force' => $force, '--force' => true,
]); ]));
} }
/** /**
@@ -95,17 +92,16 @@ class RefreshCommand extends Command
* *
* @param string $database * @param string $database
* @param string $path * @param string $path
* @param bool $force
* @return void * @return void
*/ */
protected function runReset($database, $path, $force) protected function runReset($database, $path)
{ {
$this->call('migrate:reset', [ $this->call('migrate:reset', array_filter([
'--database' => $database, '--database' => $database,
'--path' => $path, '--path' => $path,
'--realpath' => $this->input->getOption('realpath'), '--realpath' => $this->input->getOption('realpath'),
'--force' => $force, '--force' => true,
]); ]));
} }
/** /**
@@ -126,11 +122,11 @@ class RefreshCommand extends Command
*/ */
protected function runSeeder($database) protected function runSeeder($database)
{ {
$this->call('db:seed', [ $this->call('db:seed', array_filter([
'--database' => $database, '--database' => $database,
'--class' => $this->option('seeder') ?: 'DatabaseSeeder', '--class' => $this->option('seeder') ?: 'DatabaseSeeder',
'--force' => $this->option('force'), '--force' => true,
]); ]));
} }
/** /**

View File

@@ -34,9 +34,10 @@ trait DetectsLostConnections
'reset by peer', 'reset by peer',
'Physical connection is not usable', 'Physical connection is not usable',
'TCP Provider: Error code 0x68', 'TCP Provider: Error code 0x68',
'Name or service not known', 'php_network_getaddresses: getaddrinfo failed: Name or service not known',
'ORA-03114', 'ORA-03114',
'Packets out of order. Expected', 'Packets out of order. Expected',
'Adaptive Server connection failed',
]); ]);
} }
} }

View File

@@ -118,10 +118,14 @@ class Collection extends BaseCollection implements QueueableCollection
$segments[count($segments) - 1] .= ':'.explode(':', $key)[1]; $segments[count($segments) - 1] .= ':'.explode(':', $key)[1];
} }
$path = array_combine($segments, $segments); $path = [];
foreach ($segments as $segment) {
$path[] = [$segment => $segment];
}
if (is_callable($value)) { if (is_callable($value)) {
$path[end($segments)] = $value; $path[count($segments) - 1][end($segments)] = $value;
} }
$this->loadMissingRelation($this, $path); $this->loadMissingRelation($this, $path);
@@ -139,7 +143,7 @@ class Collection extends BaseCollection implements QueueableCollection
*/ */
protected function loadMissingRelation(Collection $models, array $path) protected function loadMissingRelation(Collection $models, array $path)
{ {
$relation = array_splice($path, 0, 1); $relation = array_shift($path);
$name = explode(':', key($relation))[0]; $name = explode(':', key($relation))[0];
@@ -178,12 +182,8 @@ class Collection extends BaseCollection implements QueueableCollection
->groupBy(function ($model) { ->groupBy(function ($model) {
return get_class($model); return get_class($model);
}) })
->filter(function ($models, $className) use ($relations) {
return Arr::has($relations, $className);
})
->each(function ($models, $className) use ($relations) { ->each(function ($models, $className) use ($relations) {
$className::with($relations[$className]) static::make($models)->load($relations[$className] ?? []);
->eagerLoadRelations($models->all());
}); });
return $this; return $this;

View File

@@ -1043,7 +1043,7 @@ trait HasAttributes
} }
/** /**
* Determine if the model or given attribute(s) have been modified. * Determine if the model or any of the given attribute(s) have been modified.
* *
* @param array|string|null $attributes * @param array|string|null $attributes
* @return bool * @return bool
@@ -1056,7 +1056,7 @@ trait HasAttributes
} }
/** /**
* Determine if the model or given attribute(s) have remained the same. * Determine if the model and all the given attribute(s) have remained the same.
* *
* @param array|string|null $attributes * @param array|string|null $attributes
* @return bool * @return bool
@@ -1067,7 +1067,7 @@ trait HasAttributes
} }
/** /**
* Determine if the model or given attribute(s) have been modified. * Determine if the model or any of the given attribute(s) have been modified.
* *
* @param array|string|null $attributes * @param array|string|null $attributes
* @return bool * @return bool
@@ -1080,7 +1080,7 @@ trait HasAttributes
} }
/** /**
* Determine if the given attributes were changed. * Determine if any of the given attributes were changed.
* *
* @param array $changes * @param array $changes
* @param array|string|null $attributes * @param array|string|null $attributes

View File

@@ -75,6 +75,10 @@ class BelongsTo extends Relation
*/ */
public function getResults() public function getResults()
{ {
if (is_null($this->child->{$this->foreignKey})) {
return $this->getDefaultFor($this->parent);
}
return $this->query->first() ?: $this->getDefaultFor($this->parent); return $this->query->first() ?: $this->getDefaultFor($this->parent);
} }
@@ -132,13 +136,6 @@ class BelongsTo extends Relation
} }
} }
// If there are no keys that were not null we will just return an array with null
// so this query wont fail plus returns zero results, which should be what the
// developer expects to happen in this situation. Otherwise we'll sort them.
if (count($keys) === 0) {
return [null];
}
sort($keys); sort($keys);
return array_values(array_unique($keys)); return array_values(array_unique($keys));

View File

@@ -559,7 +559,9 @@ class BelongsToMany extends Relation
*/ */
public function getResults() public function getResults()
{ {
return $this->get(); return ! is_null($this->parent->{$this->parentKey})
? $this->get()
: $this->related->newCollection();
} }
/** /**
@@ -678,6 +680,32 @@ class BelongsToMany extends Relation
}); });
} }
/**
* Chunk the results of a query by comparing numeric IDs.
*
* @param int $count
* @param callable $callback
* @param string|null $column
* @param string|null $alias
* @return bool
*/
public function chunkById($count, callable $callback, $column = null, $alias = null)
{
$this->query->addSelect($this->shouldSelect());
$column = $column ?? $this->getRelated()->qualifyColumn(
$this->getRelatedKeyName()
);
$alias = $alias ?? $this->getRelatedKeyName();
return $this->query->chunkById($count, function ($results) use ($callback) {
$this->hydratePivotRelation($results->all());
return $callback($results);
}, $column, $alias);
}
/** /**
* Execute a callback over each item while chunking. * Execute a callback over each item while chunking.
* *

View File

@@ -13,7 +13,9 @@ class HasMany extends HasOneOrMany
*/ */
public function getResults() public function getResults()
{ {
return $this->query->get(); return ! is_null($this->getParentKey())
? $this->query->get()
: $this->related->newCollection();
} }
/** /**

View File

@@ -343,7 +343,9 @@ class HasManyThrough extends Relation
*/ */
public function getResults() public function getResults()
{ {
return $this->get(); return ! is_null($this->farParent->{$this->localKey})
? $this->get()
: $this->related->newCollection();
} }
/** /**
@@ -427,6 +429,24 @@ class HasManyThrough extends Relation
return $this->prepareQueryBuilder()->chunk($count, $callback); return $this->prepareQueryBuilder()->chunk($count, $callback);
} }
/**
* Chunk the results of a query by comparing numeric IDs.
*
* @param int $count
* @param callable $callback
* @param string|null $column
* @param string|null $alias
* @return bool
*/
public function chunkById($count, callable $callback, $column = null, $alias = null)
{
$column = $column ?? $this->getRelated()->getQualifiedKeyName();
$alias = $alias ?? $this->getRelated()->getKeyName();
return $this->prepareQueryBuilder()->chunkById($count, $callback, $column, $alias);
}
/** /**
* Get a generator for the given query. * Get a generator for the given query.
* *

View File

@@ -17,6 +17,10 @@ class HasOne extends HasOneOrMany
*/ */
public function getResults() public function getResults()
{ {
if (is_null($this->getParentKey())) {
return $this->getDefaultFor($this->parent);
}
return $this->query->first() ?: $this->getDefaultFor($this->parent); return $this->query->first() ?: $this->getDefaultFor($this->parent);
} }

View File

@@ -310,21 +310,6 @@ abstract class HasOneOrMany extends Relation
$model->setAttribute($this->getForeignKeyName(), $this->getParentKey()); $model->setAttribute($this->getForeignKeyName(), $this->getParentKey());
} }
/**
* Perform an update on all the related models.
*
* @param array $attributes
* @return int
*/
public function update(array $attributes)
{
if ($this->related->usesTimestamps() && ! is_null($this->relatedUpdatedAt())) {
$attributes[$this->relatedUpdatedAt()] = $this->related->freshTimestampString();
}
return $this->query->update($attributes);
}
/** /**
* Add the constraints for a relationship query. * Add the constraints for a relationship query.
* *

View File

@@ -13,7 +13,9 @@ class MorphMany extends MorphOneOrMany
*/ */
public function getResults() public function getResults()
{ {
return $this->query->get(); return ! is_null($this->getParentKey())
? $this->query->get()
: $this->related->newCollection();
} }
/** /**

View File

@@ -17,6 +17,10 @@ class MorphOne extends MorphOneOrMany
*/ */
public function getResults() public function getResults()
{ {
if (is_null($this->getParentKey())) {
return $this->getDefaultFor($this->parent);
}
return $this->query->first() ?: $this->getDefaultFor($this->parent); return $this->query->first() ?: $this->getDefaultFor($this->parent);
} }

View File

@@ -81,16 +81,6 @@ class MorphTo extends BelongsTo
} }
} }
/**
* Get the results of the relationship.
*
* @return mixed
*/
public function getResults()
{
return $this->ownerKey ? parent::getResults() : null;
}
/** /**
* Get the results of the relationship. * Get the results of the relationship.
* *
@@ -227,7 +217,7 @@ class MorphTo extends BelongsTo
*/ */
public function touch() public function touch()
{ {
if (! is_null($this->ownerKey)) { if (! is_null($this->child->{$this->foreignKey})) {
parent::touch(); parent::touch();
} }
} }

View File

@@ -382,7 +382,7 @@ class Builder
*/ */
public function join($table, $first, $operator = null, $second = null, $type = 'inner', $where = false) public function join($table, $first, $operator = null, $second = null, $type = 'inner', $where = false)
{ {
$join = new JoinClause($this, $type, $table); $join = $this->newJoinClause($this, $type, $table);
// If the first "column" of the join is really a Closure instance the developer // If the first "column" of the join is really a Closure instance the developer
// is trying to build a join with a complex "on" clause containing more than // is trying to build a join with a complex "on" clause containing more than
@@ -550,11 +550,24 @@ class Builder
return $this->join($table, $first, $operator, $second, 'cross'); return $this->join($table, $first, $operator, $second, 'cross');
} }
$this->joins[] = new JoinClause($this, 'cross', $table); $this->joins[] = $this->newJoinClause($this, 'cross', $table);
return $this; return $this;
} }
/**
* Get a new join clause.
*
* @param \Illuminate\Database\Query\Builder $parentQuery
* @param string $type
* @param string $table
* @return \Illuminate\Database\Query\JoinClause
*/
protected function newJoinClause(self $parentQuery, $type, $table)
{
return new JoinClause($parentQuery, $type, $table);
}
/** /**
* Merge an array of where clauses and bindings. * Merge an array of where clauses and bindings.
* *

View File

@@ -4,6 +4,7 @@ namespace Illuminate\Filesystem;
use RuntimeException; use RuntimeException;
use Illuminate\Http\File; use Illuminate\Http\File;
use Illuminate\Support\Arr;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use InvalidArgumentException; use InvalidArgumentException;
use Illuminate\Support\Carbon; use Illuminate\Support\Carbon;
@@ -50,27 +51,39 @@ class FilesystemAdapter implements FilesystemContract, CloudFilesystemContract
/** /**
* Assert that the given file exists. * Assert that the given file exists.
* *
* @param string $path * @param string|array $path
* @return void * @return $this
*/ */
public function assertExists($path) public function assertExists($path)
{ {
PHPUnit::assertTrue( $paths = Arr::wrap($path);
$this->exists($path), "Unable to find a file at path [{$path}]."
); foreach ($paths as $path) {
PHPUnit::assertTrue(
$this->exists($path), "Unable to find a file at path [{$path}]."
);
}
return $this;
} }
/** /**
* Assert that the given file does not exist. * Assert that the given file does not exist.
* *
* @param string $path * @param string|array $path
* @return void * @return $this
*/ */
public function assertMissing($path) public function assertMissing($path)
{ {
PHPUnit::assertFalse( $paths = Arr::wrap($path);
$this->exists($path), "Found unexpected file at path [{$path}]."
); foreach ($paths as $path) {
PHPUnit::assertFalse(
$this->exists($path), "Found unexpected file at path [{$path}]."
);
}
return $this;
} }
/** /**

View File

@@ -29,7 +29,7 @@ class Application extends Container implements ApplicationContract, HttpKernelIn
* *
* @var string * @var string
*/ */
const VERSION = '5.7.19'; const VERSION = '5.7.20';
/** /**
* The base path for the Laravel installation. * The base path for the Laravel installation.

View File

@@ -36,6 +36,10 @@ trait VerifiesEmails
throw new AuthorizationException; throw new AuthorizationException;
} }
if ($request->user()->hasVerifiedEmail()) {
return redirect($this->redirectPath());
}
if ($request->user()->markEmailAsVerified()) { if ($request->user()->markEmailAsVerified()) {
event(new Verified($request->user())); event(new Verified($request->user()));
} }

View File

@@ -4,8 +4,8 @@
@section('title', __('Unauthorized')) @section('title', __('Unauthorized'))
@section('image') @section('image')
<div style="background-image: url({{ asset('/svg/403.svg') }});" class="absolute pin bg-cover bg-no-repeat md:bg-left lg:bg-center"> <div style="background-image: url({{ asset('/svg/403.svg') }});" class="absolute pin bg-cover bg-no-repeat md:bg-left lg:bg-center">
</div> </div>
@endsection @endsection
@section('message', __('Sorry, you are not authorized to access this page.')) @section('message', __('Sorry, you are not authorized to access this page.'))

View File

@@ -4,8 +4,8 @@
@section('title', __('Forbidden')) @section('title', __('Forbidden'))
@section('image') @section('image')
<div style="background-image: url({{ asset('/svg/403.svg') }});" class="absolute pin bg-cover bg-no-repeat md:bg-left lg:bg-center"> <div style="background-image: url({{ asset('/svg/403.svg') }});" class="absolute pin bg-cover bg-no-repeat md:bg-left lg:bg-center">
</div> </div>
@endsection @endsection
@section('message', __($exception->getMessage() ?: __('Sorry, you are forbidden from accessing this page.'))) @section('message', __($exception->getMessage() ?: __('Sorry, you are forbidden from accessing this page.')))

View File

@@ -4,8 +4,8 @@
@section('title', __('Page Not Found')) @section('title', __('Page Not Found'))
@section('image') @section('image')
<div style="background-image: url({{ asset('/svg/404.svg') }});" class="absolute pin bg-cover bg-no-repeat md:bg-left lg:bg-center"> <div style="background-image: url({{ asset('/svg/404.svg') }});" class="absolute pin bg-cover bg-no-repeat md:bg-left lg:bg-center">
</div> </div>
@endsection @endsection
@section('message', __('Sorry, the page you are looking for could not be found.')) @section('message', __('Sorry, the page you are looking for could not be found.'))

View File

@@ -4,8 +4,8 @@
@section('title', __('Page Expired')) @section('title', __('Page Expired'))
@section('image') @section('image')
<div style="background-image: url({{ asset('/svg/403.svg') }});" class="absolute pin bg-cover bg-no-repeat md:bg-left lg:bg-center"> <div style="background-image: url({{ asset('/svg/403.svg') }});" class="absolute pin bg-cover bg-no-repeat md:bg-left lg:bg-center">
</div> </div>
@endsection @endsection
@section('message', __('Sorry, your session has expired. Please refresh and try again.')) @section('message', __('Sorry, your session has expired. Please refresh and try again.'))

View File

@@ -4,8 +4,8 @@
@section('title', __('Too Many Requests')) @section('title', __('Too Many Requests'))
@section('image') @section('image')
<div style="background-image: url({{ asset('/svg/403.svg') }});" class="absolute pin bg-cover bg-no-repeat md:bg-left lg:bg-center"> <div style="background-image: url({{ asset('/svg/403.svg') }});" class="absolute pin bg-cover bg-no-repeat md:bg-left lg:bg-center">
</div> </div>
@endsection @endsection
@section('message', __('Sorry, you are making too many requests to our servers.')) @section('message', __('Sorry, you are making too many requests to our servers.'))

View File

@@ -4,8 +4,8 @@
@section('title', __('Error')) @section('title', __('Error'))
@section('image') @section('image')
<div style="background-image: url({{ asset('/svg/500.svg') }});" class="absolute pin bg-cover bg-no-repeat md:bg-left lg:bg-center"> <div style="background-image: url({{ asset('/svg/500.svg') }});" class="absolute pin bg-cover bg-no-repeat md:bg-left lg:bg-center">
</div> </div>
@endsection @endsection
@section('message', __('Whoops, something went wrong on our servers.')) @section('message', __('Whoops, something went wrong on our servers.'))

View File

@@ -4,8 +4,8 @@
@section('title', __('Service Unavailable')) @section('title', __('Service Unavailable'))
@section('image') @section('image')
<div style="background-image: url({{ asset('/svg/503.svg') }});" class="absolute pin bg-cover bg-no-repeat md:bg-left lg:bg-center"> <div style="background-image: url({{ asset('/svg/503.svg') }});" class="absolute pin bg-cover bg-no-repeat md:bg-left lg:bg-center">
</div> </div>
@endsection @endsection
@section('message', __($exception->getMessage() ?: __('Sorry, we are doing some maintenance. Please check back soon.'))) @section('message', __($exception->getMessage() ?: __('Sorry, we are doing some maintenance. Please check back soon.')))

View File

@@ -243,6 +243,17 @@ class Request extends SymfonyRequest implements Arrayable, ArrayAccess
return $this->headers->get('X-PJAX') == true; return $this->headers->get('X-PJAX') == true;
} }
/**
* Determine if the request is the result of an prefetch call.
*
* @return bool
*/
public function prefetch()
{
return strcasecmp($this->server->get('HTTP_X_MOZ'), 'prefetch') === 0 ||
strcasecmp($this->headers->get('Purpose'), 'prefetch') === 0;
}
/** /**
* Determine if the request is over HTTPS. * Determine if the request is over HTTPS.
* *

View File

@@ -2,6 +2,7 @@
namespace Illuminate\Http\Resources; namespace Illuminate\Http\Resources;
use JsonSerializable;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
class MergeValue class MergeValue
@@ -21,6 +22,12 @@ class MergeValue
*/ */
public function __construct($data) public function __construct($data)
{ {
$this->data = $data instanceof Collection ? $data->all() : $data; if ($data instanceof Collection) {
$this->data = $data->all();
} elseif ($data instanceof JsonSerializable) {
$this->data = $data->jsonSerialize();
} else {
$this->data = $data;
}
} }
} }

View File

@@ -232,7 +232,7 @@ class LogManager implements LoggerInterface
new StreamHandler( new StreamHandler(
$config['path'], $this->level($config), $config['path'], $this->level($config),
$config['bubble'] ?? true, $config['permission'] ?? null, $config['locking'] ?? false $config['bubble'] ?? true, $config['permission'] ?? null, $config['locking'] ?? false
) ), $config
), ),
]); ]);
} }
@@ -249,7 +249,7 @@ class LogManager implements LoggerInterface
$this->prepareHandler(new RotatingFileHandler( $this->prepareHandler(new RotatingFileHandler(
$config['path'], $config['days'] ?? 7, $this->level($config), $config['path'], $config['days'] ?? 7, $this->level($config),
$config['bubble'] ?? true, $config['permission'] ?? null, $config['locking'] ?? false $config['bubble'] ?? true, $config['permission'] ?? null, $config['locking'] ?? false
)), ), $config),
]); ]);
} }
@@ -288,7 +288,7 @@ class LogManager implements LoggerInterface
return new Monolog($this->parseChannel($config), [ return new Monolog($this->parseChannel($config), [
$this->prepareHandler(new SyslogHandler( $this->prepareHandler(new SyslogHandler(
$this->app['config']['app.name'], $config['facility'] ?? LOG_USER, $this->level($config) $this->app['config']['app.name'], $config['facility'] ?? LOG_USER, $this->level($config)
)), ), $config),
]); ]);
} }

View File

@@ -84,6 +84,13 @@ class Route
*/ */
public $parameterNames; public $parameterNames;
/**
* The array of the matched parameters' original values.
*
* @var array
*/
protected $originalParameters;
/** /**
* The computed gathered middleware. * The computed gathered middleware.
* *
@@ -300,6 +307,8 @@ class Route
$this->parameters = (new RouteParameterBinder($this)) $this->parameters = (new RouteParameterBinder($this))
->parameters($request); ->parameters($request);
$this->originalParameters = $this->parameters;
return $this; return $this;
} }
@@ -340,6 +349,18 @@ class Route
return Arr::get($this->parameters(), $name, $default); return Arr::get($this->parameters(), $name, $default);
} }
/**
* Get original value of a given parameter from the route.
*
* @param string $name
* @param mixed $default
* @return string
*/
public function originalParameter($name, $default = null)
{
return Arr::get($this->originalParameters(), $name, $default);
}
/** /**
* Set a parameter to the given value. * Set a parameter to the given value.
* *
@@ -383,6 +404,22 @@ class Route
throw new LogicException('Route is not bound.'); throw new LogicException('Route is not bound.');
} }
/**
* Get the key / value list of original parameters for the route.
*
* @return array
*
* @throws \LogicException
*/
public function originalParameters()
{
if (isset($this->originalParameters)) {
return $this->originalParameters;
}
throw new LogicException('Route is not bound.');
}
/** /**
* Get the key / value list of parameters without null values. * Get the key / value list of parameters without null values.
* *

View File

@@ -362,7 +362,7 @@ class UrlGenerator implements UrlGeneratorContract
Arr::except($request->query(), 'signature') Arr::except($request->query(), 'signature')
), '?'); ), '?');
$expires = Arr::get($request->query(), 'expires'); $expires = $request->query('expires');
$signature = hash_hmac('sha256', $original, call_user_func($this->keyResolver)); $signature = hash_hmac('sha256', $original, call_user_func($this->keyResolver));

View File

@@ -154,7 +154,10 @@ class StartSession
*/ */
protected function storeCurrentUrl(Request $request, $session) protected function storeCurrentUrl(Request $request, $session)
{ {
if ($request->method() === 'GET' && $request->route() && ! $request->ajax()) { if ($request->method() === 'GET' &&
$request->route() &&
! $request->ajax() &&
! $request->prefetch()) {
$session->setPreviousUrl($request->fullUrl()); $session->setPreviousUrl($request->fullUrl());
} }
} }

View File

@@ -679,7 +679,7 @@ class Collection implements ArrayAccess, Arrayable, Countable, IteratorAggregate
} }
/** /**
* Filter items where the given key between values. * Filter items such that the value of the given key is between the given values.
* *
* @param string $key * @param string $key
* @param array $values * @param array $values
@@ -690,6 +690,20 @@ class Collection implements ArrayAccess, Arrayable, Countable, IteratorAggregate
return $this->where($key, '>=', reset($values))->where($key, '<=', end($values)); return $this->where($key, '>=', reset($values))->where($key, '<=', end($values));
} }
/**
* Filter items such that the value of the given key is not between the given values.
*
* @param string $key
* @param array $values
* @return static
*/
public function whereNotBetween($key, $values)
{
return $this->filter(function ($item) use ($key, $values) {
return data_get($item, $key) < reset($values) || data_get($item, $key) > end($values);
});
}
/** /**
* Filter items by the given key value pair. * Filter items by the given key value pair.
* *

View File

@@ -428,7 +428,7 @@ class Str
$title = str_replace('@', $separator.'at'.$separator, $title); $title = str_replace('@', $separator.'at'.$separator, $title);
// Remove all characters that are not the separator, letters, numbers, or whitespace. // Remove all characters that are not the separator, letters, numbers, or whitespace.
$title = preg_replace('![^'.preg_quote($separator).'\pL\pN\s]+!u', '', mb_strtolower($title)); $title = preg_replace('![^'.preg_quote($separator).'\pL\pN\s]+!u', '', static::lower($title));
// Replace all separator characters and whitespace by a single separator // Replace all separator characters and whitespace by a single separator
$title = preg_replace('!['.preg_quote($separator).'\s]+!u', $separator, $title); $title = preg_replace('!['.preg_quote($separator).'\s]+!u', $separator, $title);

View File

@@ -327,6 +327,16 @@ class QueueFake extends QueueManager implements Queue
} }
} }
/**
* Get the jobs that have been pushed.
*
* @return array
*/
public function pushedJobs()
{
return $this->jobs;
}
/** /**
* Get the connection name for the queue. * Get the connection name for the queue.
* *

View File

@@ -3798,7 +3798,7 @@ class Carbon extends DateTime implements JsonSerializable
$diff->i += 60; $diff->i += 60;
$diff->h--; $diff->h--;
if ($diff->h < 0) { if ($diff->h < 0) {
$diff->i += 24; $diff->h += 24;
$diff->d--; $diff->d--;
if ($diff->d < 0) { if ($diff->d < 0) {
$diff->d += 30; $diff->d += 30;

View File

@@ -1,5 +1,5 @@
language: php language: php
dist: trusty dist: xenial
sudo: false sudo: false
cache: cache:
@@ -10,6 +10,7 @@ php:
- 7.0 - 7.0
- 7.1 - 7.1
- 7.2 - 7.2
- 7.3
- nightly - nightly
install: install:

View File

@@ -1,8 +1,20 @@
Version 4.1.1-dev Version 4.1.2-dev
----------------- -----------------
Nothing yet. Nothing yet.
Version 4.1.1 (2018-12-26)
--------------------------
### Fixed
* Fix "undefined offset" notice when parsing specific malformed code (#551).
* Remove assertion when pretty printing anonymous class with a name (#554).
### Added
* Support error recovery for missing return type (`function foo() : {}`) (#544).
Version 4.1.0 (2018-10-10) Version 4.1.0 (2018-10-10)
-------------------------- --------------------------
@@ -17,7 +29,7 @@ Version 4.1.0 (2018-10-10)
and some cases which we do not expect to occur in practice (such as flexible doc strings being and some cases which we do not expect to occur in practice (such as flexible doc strings being
nested within each other through abuse of variable-variable interpolation syntax) may not be nested within each other through abuse of variable-variable interpolation syntax) may not be
recognized correctly. recognized correctly.
* Added `DONT_TRAVERSER_CURRENT_AND_CHILDREN` to `NodeTraverser` to skip both traversal of child * Added `DONT_TRAVERSE_CURRENT_AND_CHILDREN` to `NodeTraverser` to skip both traversal of child
nodes, and prevent subsequent visitors from visiting the current node. nodes, and prevent subsequent visitors from visiting the current node.
Version 4.0.4 (2018-09-18) Version 4.0.4 (2018-09-18)

View File

@@ -3,7 +3,7 @@ PHP Parser
[![Build Status](https://travis-ci.org/nikic/PHP-Parser.svg?branch=master)](https://travis-ci.org/nikic/PHP-Parser) [![Coverage Status](https://coveralls.io/repos/github/nikic/PHP-Parser/badge.svg?branch=master)](https://coveralls.io/github/nikic/PHP-Parser?branch=master) [![Build Status](https://travis-ci.org/nikic/PHP-Parser.svg?branch=master)](https://travis-ci.org/nikic/PHP-Parser) [![Coverage Status](https://coveralls.io/repos/github/nikic/PHP-Parser/badge.svg?branch=master)](https://coveralls.io/github/nikic/PHP-Parser?branch=master)
This is a PHP 5.2 to PHP 7.2 parser written in PHP. Its purpose is to simplify static code analysis and This is a PHP 5.2 to PHP 7.3 parser written in PHP. Its purpose is to simplify static code analysis and
manipulation. manipulation.
[**Documentation for version 4.x**][doc_master] (stable; for running on PHP >= 7.0; for parsing PHP 5.2 to PHP 7.3). [**Documentation for version 4.x**][doc_master] (stable; for running on PHP >= 7.0; for parsing PHP 5.2 to PHP 7.3).

View File

@@ -1,7 +1,7 @@
Introduction Introduction
============ ============
This project is a PHP 5.2 to PHP 7.2 parser **written in PHP itself**. This project is a PHP 5.2 to PHP 7.3 parser **written in PHP itself**.
What is this for? What is this for?
----------------- -----------------
@@ -26,11 +26,11 @@ programmatic PHP code analysis are incidentally PHP developers, not C developers
What can it parse? What can it parse?
------------------ ------------------
The parser supports parsing PHP 5.2-7.2. The parser supports parsing PHP 5.2-7.3.
As the parser is based on the tokens returned by `token_get_all` (which is only able to lex the PHP As the parser is based on the tokens returned by `token_get_all` (which is only able to lex the PHP
version it runs on), additionally a wrapper for emulating tokens from newer versions is provided. version it runs on), additionally a wrapper for emulating tokens from newer versions is provided.
This allows to parse PHP 7.2 source code running on PHP 5.5, for example. This emulation is somewhat This allows to parse PHP 7.3 source code running on PHP 7.0, for example. This emulation is somewhat
hacky and not perfect, but it should work well on any sane code. hacky and not perfect, but it should work well on any sane code.
What output does it produce? What output does it produce?

View File

@@ -339,7 +339,8 @@ All four methods can either return the changed node or not return at all (i.e. `
case the current node is not changed. case the current node is not changed.
The `enterNode()` method can additionally return the value `NodeTraverser::DONT_TRAVERSE_CHILDREN`, The `enterNode()` method can additionally return the value `NodeTraverser::DONT_TRAVERSE_CHILDREN`,
which instructs the traverser to skip all children of the current node. which instructs the traverser to skip all children of the current node. To furthermore prevent subsequent
visitors from visiting the current node, `NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN` can be used instead.
The `leaveNode()` method can additionally return the value `NodeTraverser::REMOVE_NODE`, in which The `leaveNode()` method can additionally return the value `NodeTraverser::REMOVE_NODE`, in which
case the current node will be removed from the parent array. Furthermore it is possible to return case the current node will be removed from the parent array. Furthermore it is possible to return

View File

@@ -116,8 +116,8 @@ The JSON representation may be converted back into an AST using the `JsonDecoder
```php ```php
<?php <?php
$nodeDecoder = new PhpParser\NodeDecoder(); $jsonDecoder = new PhpParser\JsonDecoder();
$ast = $nodeDecoder->decode($json); $ast = $jsonDecoder->decode($json);
``` ```
Note that not all ASTs can be represented using JSON. In particular: Note that not all ASTs can be represented using JSON. In particular:
@@ -128,4 +128,4 @@ Note that not all ASTs can be represented using JSON. In particular:
If the node tree is not representable in JSON, the initial `json_encode()` call will fail. If the node tree is not representable in JSON, the initial `json_encode()` call will fail.
From the command line, a JSON dump can be obtained using `vendor/bin/php-parse -j file.php`. From the command line, a JSON dump can be obtained using `vendor/bin/php-parse -j file.php`.

View File

@@ -215,7 +215,7 @@ once you found it:
private $class = null; private $class = null;
public function enterNode(Node $node) { public function enterNode(Node $node) {
if ($node instanceof Node\Stmt\Class_ && if ($node instanceof Node\Stmt\Class_ &&
$node->namespaceName->toString() === 'Foo\Bar\Baz' $node->namespacedName->toString() === 'Foo\Bar\Baz'
) { ) {
$this->class = $node; $this->class = $node;
return NodeTraverser::STOP_TRAVERSAL; return NodeTraverser::STOP_TRAVERSAL;
@@ -235,7 +235,7 @@ A single traverser can be used with multiple visitors:
$traverser = new NodeTraverser; $traverser = new NodeTraverser;
$traverser->addVisitor($visitorA); $traverser->addVisitor($visitorA);
$traverser->addVisitor($visitorB); $traverser->addVisitor($visitorB);
$stmts = $traverser->traverser($stmts); $stmts = $traverser->traverse($stmts);
``` ```
It is important to understand that if a traverser is run with multiple visitors, the visitors will It is important to understand that if a traverser is run with multiple visitors, the visitors will
@@ -281,6 +281,8 @@ special enterNode/leaveNode return values:
* If *any* visitor returns `DONT_TRAVERSE_CHILDREN`, the children will be skipped for *all* * If *any* visitor returns `DONT_TRAVERSE_CHILDREN`, the children will be skipped for *all*
visitors. visitors.
* If *any* visitor returns `DONT_TRAVERSE_CURRENT_AND_CHILDREN`, the children will be skipped for *all*
visitors, and all *subsequent* visitors will not visit the current node.
* If *any* visitor returns `STOP_TRAVERSAL`, traversal is stopped for *all* visitors. * If *any* visitor returns `STOP_TRAVERSAL`, traversal is stopped for *all* visitors.
* If a visitor returns a replacement node, subsequent visitors will be passed the replacement node, * If a visitor returns a replacement node, subsequent visitors will be passed the replacement node,
not the original one. not the original one.
@@ -305,7 +307,7 @@ $nodeFinder = new NodeFinder;
$classes = $nodeFinder->findInstanceOf($stmts, Node\Stmt\Class_::class); $classes = $nodeFinder->findInstanceOf($stmts, Node\Stmt\Class_::class);
// Find all classes that extend another class // Find all classes that extend another class
$extendingClasses = $nodeFinder->findInstanceOf($stmts, function(Node $node) { $extendingClasses = $nodeFinder->find($stmts, function(Node $node) {
return $node instanceof Node\Stmt\Class_ return $node instanceof Node\Stmt\Class_
&& $node->extends !== null; && $node->extends !== null;
}); });
@@ -332,4 +334,4 @@ reverse direction: When working on a node, you might want to check if the parent
certain property. certain property.
PHP-Parser does not add parent (or sibling) references to nodes by itself, but you can easily PHP-Parser does not add parent (or sibling) references to nodes by itself, but you can easily
emulate this with a visitor. See the [FAQ](FAQ.markdown) for more information. emulate this with a visitor. See the [FAQ](FAQ.markdown) for more information.

View File

@@ -477,6 +477,7 @@ optional_param_type:
optional_return_type: optional_return_type:
/* empty */ { $$ = null; } /* empty */ { $$ = null; }
| ':' type_expr { $$ = $2; } | ':' type_expr { $$ = $2; }
| ':' error { $$ = null; }
; ;
argument_list: argument_list:
@@ -958,6 +959,7 @@ array_pair_list:
comma_or_error: comma_or_error:
',' ','
| error | error
{ /* do nothing -- prevent default action of $$=$1. See #551. */ }
; ;
inner_array_pair_list: inner_array_pair_list:

View File

@@ -39,6 +39,8 @@ class PrintableNewAnonClassNode extends Expr
public static function fromNewNode(Expr\New_ $newNode) { public static function fromNewNode(Expr\New_ $newNode) {
$class = $newNode->class; $class = $newNode->class;
assert($class instanceof Node\Stmt\Class_); assert($class instanceof Node\Stmt\Class_);
// We don't assert that $class->name is null here, to allow consumers to assign unique names
// to anonymous classes for their own purposes. We simplify ignore the name here.
assert($class->name === null); assert($class->name === null);
return new self( return new self(
$newNode->args, $class->extends, $class->implements, $newNode->args, $class->extends, $class->implements,

View File

@@ -6,7 +6,7 @@ use PhpParser\Node;
class Case_ extends Node\Stmt class Case_ extends Node\Stmt
{ {
/** @var null|Node\Expr $cond Condition (null for default) */ /** @var null|Node\Expr Condition (null for default) */
public $cond; public $cond;
/** @var Node\Stmt[] Statements */ /** @var Node\Stmt[] Statements */
public $stmts; public $stmts;

File diff suppressed because it is too large Load Diff

View File

@@ -1373,4 +1373,37 @@ array(
) )
) )
) )
) )
-----
<?php
function foo() :
{
return $a;
}
-----
!!php7
Syntax error, unexpected '{' from 3:1 to 3:1
array(
0: Stmt_Function(
byRef: false
name: Identifier(
name: foo
)
params: array(
)
returnType: null
stmts: array(
0: Stmt_Return(
expr: Expr_Variable(
name: a
)
)
)
)
)
-----
<?php
$a = ["a "thing"];
-----
!!php7
Syntax error, unexpected T_STRING, expecting ',' or ')' or ']' from 2:11 to 2:15

View File

@@ -1,6 +1,12 @@
CHANGELOG CHANGELOG
--------- ---------
### v3.1.3, 2019.01.07
- Fixed a bug that prevented traits to be correctly resolved when used by an
anonymous class
- Fixed a bug that occurred when `$this` keyword was used inside an anonymous class
### v3.1.2, 2018.12.16 ### v3.1.2, 2018.12.16
* Fixed a bug regarding comma trail in group-use statements. See [issue 23](https://github.com/opis/closure/issues/23) * Fixed a bug regarding comma trail in group-use statements. See [issue 23](https://github.com/opis/closure/issues/23)

View File

@@ -1,6 +1,6 @@
The MIT License (MIT) The MIT License (MIT)
Copyright (c) 2014-2017 The Opis Project Copyright (c) 2018 Zindex Software
Permission is hereby granted, free of charge, to any person obtaining a copy of Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in this software and associated documentation files (the "Software"), to deal in

View File

@@ -1,5 +1,5 @@
Opis Closure Opis Closure
Copyright 2018 Zindex Software Copyright 2018-2019 Zindex Software
This product includes software developed at This product includes software developed at
Zindex Software (http://zindex.software). Zindex Software (http://zindex.software).

View File

@@ -34,7 +34,7 @@
}, },
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.0.x-dev" "dev-master": "3.1.x-dev"
} }
} }
} }

View File

@@ -107,6 +107,8 @@ class ReflectionClosure extends ReflectionFunction
$hasTraitSupport = defined('T_TRAIT_C'); $hasTraitSupport = defined('T_TRAIT_C');
$tokens = $this->getTokens(); $tokens = $this->getTokens();
$state = $lastState = 'start'; $state = $lastState = 'start';
$inside_anonymous = false;
$anonymous_mark = 0;
$open = 0; $open = 0;
$code = ''; $code = '';
$id_start = $id_start_ci = $id_name = $context = ''; $id_start = $id_start_ci = $id_name = $context = '';
@@ -248,6 +250,8 @@ class ReflectionClosure extends ReflectionFunction
$code .= '}'; $code .= '}';
if(--$open === 0){ if(--$open === 0){
break 3; break 3;
} elseif ($inside_anonymous) {
$inside_anonymous = !($open === $anonymous_mark);
} }
break; break;
case T_LINE: case T_LINE:
@@ -285,7 +289,7 @@ class ReflectionClosure extends ReflectionFunction
} }
break; break;
case T_VARIABLE: case T_VARIABLE:
if($token[1] == '$this'){ if($token[1] == '$this' && !$inside_anonymous){
$isUsingThisObject = true; $isUsingThisObject = true;
} }
$code .= $token[1]; $code .= $token[1];
@@ -309,6 +313,12 @@ class ReflectionClosure extends ReflectionFunction
$state = 'id_start'; $state = 'id_start';
$lastState = 'closure'; $lastState = 'closure';
break 2; break 2;
case T_USE:
$code .= $token[1];
$context = 'use';
$state = 'id_start';
$lastState = 'closure';
break;
case T_INSTANCEOF: case T_INSTANCEOF:
$code .= $token[1]; $code .= $token[1];
$context = 'instanceof'; $context = 'instanceof';
@@ -453,7 +463,12 @@ class ReflectionClosure extends ReflectionFunction
break; break;
default: default:
if($id_start !== '\\'){ if($id_start !== '\\'){
if($context === 'instanceof' || $context === 'args' || $context === 'return_type' || $context === 'extends'){ if($context === 'use' ||
$context === 'instanceof' ||
$context === 'args' ||
$context === 'return_type' ||
$context === 'extends'
){
if($id_start_ci === 'self' || $id_start_ci === 'static' || $id_start_ci === 'parent'){ if($id_start_ci === 'self' || $id_start_ci === 'static' || $id_start_ci === 'parent'){
$isUsingScope = true; $isUsingScope = true;
} elseif (!($php7 && in_array($id_start_ci, $php7_types))){ } elseif (!($php7 && in_array($id_start_ci, $php7_types))){
@@ -494,6 +509,10 @@ class ReflectionClosure extends ReflectionFunction
break; break;
case '{': case '{':
$state = 'closure'; $state = 'closure';
if (!$inside_anonymous) {
$inside_anonymous = true;
$anonymous_mark = $open;
}
$i--; $i--;
break; break;
default: default:

View File

@@ -75,7 +75,7 @@ class Application
private $dispatcher; private $dispatcher;
private $terminal; private $terminal;
private $defaultCommand; private $defaultCommand;
private $singleCommand; private $singleCommand = false;
private $initialized; private $initialized;
/** /**
@@ -1098,6 +1098,14 @@ class Application
return $this; return $this;
} }
/**
* @internal
*/
public function isSingleCommand()
{
return $this->singleCommand;
}
private function splitStringByWidth($string, $width) private function splitStringByWidth($string, $width)
{ {
// str_split is not suitable for multi-byte characters, we should use preg_split to get char array properly. // str_split is not suitable for multi-byte characters, we should use preg_split to get char array properly.

View File

@@ -250,7 +250,7 @@ class Command
$input->validate(); $input->validate();
if ($this->code) { if ($this->code) {
$statusCode = \call_user_func($this->code, $input, $output); $statusCode = ($this->code)($input, $output);
} else { } else {
$statusCode = $this->execute($input, $output); $statusCode = $this->execute($input, $output);
} }
@@ -361,9 +361,9 @@ class Command
* Adds an argument. * Adds an argument.
* *
* @param string $name The argument name * @param string $name The argument name
* @param int|null $mode The argument mode: self::REQUIRED or self::OPTIONAL * @param int|null $mode The argument mode: InputArgument::REQUIRED or InputArgument::OPTIONAL
* @param string $description A description text * @param string $description A description text
* @param string|string[]|null $default The default value (for self::OPTIONAL mode only) * @param string|string[]|null $default The default value (for InputArgument::OPTIONAL mode only)
* *
* @throws InvalidArgumentException When argument mode is not valid * @throws InvalidArgumentException When argument mode is not valid
* *
@@ -381,9 +381,9 @@ class Command
* *
* @param string $name The option name * @param string $name The option name
* @param string|array $shortcut The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts * @param string|array $shortcut The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts
* @param int|null $mode The option mode: One of the VALUE_* constants * @param int|null $mode The option mode: One of the InputOption::VALUE_* constants
* @param string $description A description text * @param string $description A description text
* @param string|string[]|int|bool|null $default The default value (must be null for self::VALUE_NONE) * @param string|string[]|int|bool|null $default The default value (must be null for InputOption::VALUE_NONE)
* *
* @throws InvalidArgumentException If option mode is invalid or incompatible * @throws InvalidArgumentException If option mode is invalid or incompatible
* *
@@ -525,6 +525,7 @@ class Command
public function getProcessedHelp() public function getProcessedHelp()
{ {
$name = $this->name; $name = $this->name;
$isSingleCommand = $this->application && $this->application->isSingleCommand();
$placeholders = array( $placeholders = array(
'%command.name%', '%command.name%',
@@ -532,7 +533,7 @@ class Command
); );
$replacements = array( $replacements = array(
$name, $name,
$_SERVER['PHP_SELF'].' '.$name, $isSingleCommand ? $_SERVER['PHP_SELF'] : $_SERVER['PHP_SELF'].' '.$name,
); );
return str_replace($placeholders, $replacements, $this->getHelp() ?: $this->getDescription()); return str_replace($placeholders, $replacements, $this->getHelp() ?: $this->getDescription());

View File

@@ -166,7 +166,7 @@ class OutputFormatter implements WrappableOutputFormatterInterface
if (!$open && !$tag) { if (!$open && !$tag) {
// </> // </>
$this->styleStack->pop(); $this->styleStack->pop();
} elseif (false === $style = $this->createStyleFromString(strtolower($tag))) { } elseif (false === $style = $this->createStyleFromString($tag)) {
$output .= $this->applyCurrentStyle($text, $output, $width, $currentLineLength); $output .= $this->applyCurrentStyle($text, $output, $width, $currentLineLength);
} elseif ($open) { } elseif ($open) {
$this->styleStack->push($style); $this->styleStack->push($style);
@@ -210,13 +210,14 @@ class OutputFormatter implements WrappableOutputFormatterInterface
$style = new OutputFormatterStyle(); $style = new OutputFormatterStyle();
foreach ($matches as $match) { foreach ($matches as $match) {
array_shift($match); array_shift($match);
$match[0] = strtolower($match[0]);
if ('fg' == $match[0]) { if ('fg' == $match[0]) {
$style->setForeground($match[1]); $style->setForeground(strtolower($match[1]));
} elseif ('bg' == $match[0]) { } elseif ('bg' == $match[0]) {
$style->setBackground($match[1]); $style->setBackground(strtolower($match[1]));
} elseif ('options' === $match[0]) { } elseif ('options' === $match[0]) {
preg_match_all('([^,;]+)', $match[1], $options); preg_match_all('([^,;]+)', strtolower($match[1]), $options);
$options = array_shift($options); $options = array_shift($options);
foreach ($options as $option) { foreach ($options as $option) {
$style->setOption($option); $style->setOption($option);

View File

@@ -61,7 +61,7 @@ class ProcessHelper extends Helper
$process = $cmd[0]; $process = $cmd[0];
unset($cmd[0]); unset($cmd[0]);
} else { } else {
throw new \InvalidArgumentException(sprintf('Invalid command provided to "%s()": the command should an array whose first is element is either the path to the binary to run of a "Process" object.', __METHOD__)); throw new \InvalidArgumentException(sprintf('Invalid command provided to "%s()": the command should be an array whose first element is either the path to the binary to run or a "Process" object.', __METHOD__));
} }
if ($verbosity <= $output->getVerbosity()) { if ($verbosity <= $output->getVerbosity()) {
@@ -136,7 +136,7 @@ class ProcessHelper extends Helper
$output->write($formatter->progress(spl_object_hash($process), $this->escapeString($buffer), Process::ERR === $type)); $output->write($formatter->progress(spl_object_hash($process), $this->escapeString($buffer), Process::ERR === $type));
if (null !== $callback) { if (null !== $callback) {
\call_user_func($callback, $type, $buffer); $callback($type, $buffer);
} }
}; };
} }

View File

@@ -496,7 +496,7 @@ final class ProgressBar
$regex = "{%([a-z\-_]+)(?:\:([^%]+))?%}i"; $regex = "{%([a-z\-_]+)(?:\:([^%]+))?%}i";
$callback = function ($matches) { $callback = function ($matches) {
if ($formatter = $this::getPlaceholderFormatterDefinition($matches[1])) { if ($formatter = $this::getPlaceholderFormatterDefinition($matches[1])) {
$text = \call_user_func($formatter, $this, $this->output); $text = $formatter($this, $this->output);
} elseif (isset($this->messages[$matches[1]])) { } elseif (isset($this->messages[$matches[1]])) {
$text = $this->messages[$matches[1]]; $text = $this->messages[$matches[1]];
} else { } else {

View File

@@ -196,7 +196,7 @@ class ProgressIndicator
$this->overwrite(preg_replace_callback("{%([a-z\-_]+)(?:\:([^%]+))?%}i", function ($matches) use ($self) { $this->overwrite(preg_replace_callback("{%([a-z\-_]+)(?:\:([^%]+))?%}i", function ($matches) use ($self) {
if ($formatter = $self::getPlaceholderFormatterDefinition($matches[1])) { if ($formatter = $self::getPlaceholderFormatterDefinition($matches[1])) {
return \call_user_func($formatter, $self); return $formatter($self);
} }
return $matches[0]; return $matches[0];

View File

@@ -381,7 +381,7 @@ class QuestionHelper extends Helper
} }
try { try {
return \call_user_func($question->getValidator(), $interviewer()); return $question->getValidator()($interviewer());
} catch (RuntimeException $e) { } catch (RuntimeException $e) {
throw $e; throw $e;
} catch (\Exception $error) { } catch (\Exception $error) {

View File

@@ -1,4 +1,4 @@
Copyright (c) 2004-2018 Fabien Potencier Copyright (c) 2004-2019 Fabien Potencier
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@@ -162,7 +162,10 @@ trait TesterTrait
{ {
$stream = fopen('php://memory', 'r+', false); $stream = fopen('php://memory', 'r+', false);
fwrite($stream, implode(PHP_EOL, $inputs)); foreach ($inputs as $input) {
fwrite($stream, $input.PHP_EOL);
}
rewind($stream); rewind($stream);
return $stream; return $stream;

View File

@@ -1003,7 +1003,7 @@ class ApplicationTest extends TestCase
$application->setAutoExit(false); $application->setAutoExit(false);
$application->expects($this->once()) $application->expects($this->once())
->method('doRun') ->method('doRun')
->will($this->throwException($exception)); ->willThrowException($exception);
$exitCode = $application->run(new ArrayInput(array()), new NullOutput()); $exitCode = $application->run(new ArrayInput(array()), new NullOutput());
@@ -1042,7 +1042,7 @@ class ApplicationTest extends TestCase
$application->setAutoExit(false); $application->setAutoExit(false);
$application->expects($this->once()) $application->expects($this->once())
->method('doRun') ->method('doRun')
->will($this->throwException($exception)); ->willThrowException($exception);
$exitCode = $application->run(new ArrayInput(array()), new NullOutput()); $exitCode = $application->run(new ArrayInput(array()), new NullOutput());

View File

@@ -166,6 +166,14 @@ class CommandTest extends TestCase
$command = new \TestCommand(); $command = new \TestCommand();
$command->setHelp(''); $command->setHelp('');
$this->assertContains('description', $command->getProcessedHelp(), '->getProcessedHelp() falls back to the description'); $this->assertContains('description', $command->getProcessedHelp(), '->getProcessedHelp() falls back to the description');
$command = new \TestCommand();
$command->setHelp('The %command.name% command does... Example: php %command.full_name%.');
$application = new Application();
$application->add($command);
$application->setDefaultCommand('namespace:name', true);
$this->assertContains('The namespace:name command does...', $command->getProcessedHelp(), '->getProcessedHelp() replaces %command.name% correctly in single command applications');
$this->assertNotContains('%command.full_name%', $command->getProcessedHelp(), '->getProcessedHelp() replaces %command.full_name% in single command applications');
} }
public function testGetSetAliases() public function testGetSetAliases()

View File

@@ -112,6 +112,31 @@ class CommandTesterTest extends TestCase
$this->assertEquals(implode('', $questions), $tester->getDisplay(true)); $this->assertEquals(implode('', $questions), $tester->getDisplay(true));
} }
public function testCommandWithDefaultInputs()
{
$questions = array(
'What\'s your name?',
'How are you?',
'Where do you come from?',
);
$command = new Command('foo');
$command->setHelperSet(new HelperSet(array(new QuestionHelper())));
$command->setCode(function ($input, $output) use ($questions, $command) {
$helper = $command->getHelper('question');
$helper->ask($input, $output, new Question($questions[0], 'Bobby'));
$helper->ask($input, $output, new Question($questions[1], 'Fine'));
$helper->ask($input, $output, new Question($questions[2], 'France'));
});
$tester = new CommandTester($command);
$tester->setInputs(array('', '', ''));
$tester->execute(array());
$this->assertEquals(0, $tester->getStatusCode());
$this->assertEquals(implode('', $questions), $tester->getDisplay(true));
}
/** /**
* @expectedException \RuntimeException * @expectedException \RuntimeException
* @expectedMessage Aborted * @expectedMessage Aborted

View File

@@ -1,4 +1,4 @@
Copyright (c) 2004-2018 Fabien Potencier Copyright (c) 2004-2019 Fabien Potencier
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@@ -120,6 +120,9 @@ class ParserTest extends TestCase
array('a[name]', array('Attribute[Element[a][name]]')), array('a[name]', array('Attribute[Element[a][name]]')),
array("a[ name\t]", array('Attribute[Element[a][name]]')), array("a[ name\t]", array('Attribute[Element[a][name]]')),
array('a [name]', array('CombinedSelector[Element[a] <followed> Attribute[Element[*][name]]]')), array('a [name]', array('CombinedSelector[Element[a] <followed> Attribute[Element[*][name]]]')),
array('[name="foo"]', array("Attribute[Element[*][name = 'foo']]")),
array("[name='foo[1]']", array("Attribute[Element[*][name = 'foo[1]']]")),
array("[name='foo[0][bar]']", array("Attribute[Element[*][name = 'foo[0][bar]']]")),
array('a[rel="include"]', array("Attribute[Element[a][rel = 'include']]")), array('a[rel="include"]', array("Attribute[Element[a][rel = 'include']]")),
array('a[rel = include]', array("Attribute[Element[a][rel = 'include']]")), array('a[rel = include]', array("Attribute[Element[a][rel = 'include']]")),
array("a[hreflang |= 'en']", array("Attribute[Element[a][hreflang |= 'en']]")), array("a[hreflang |= 'en']", array("Attribute[Element[a][hreflang |= 'en']]")),

View File

@@ -155,7 +155,7 @@ class Translator implements TranslatorInterface
throw new ExpressionErrorException(sprintf('Node "%s" not supported.', $node->getNodeName())); throw new ExpressionErrorException(sprintf('Node "%s" not supported.', $node->getNodeName()));
} }
return \call_user_func($this->nodeTranslators[$node->getNodeName()], $node, $this); return $this->nodeTranslators[$node->getNodeName()]($node, $this);
} }
/** /**
@@ -167,7 +167,7 @@ class Translator implements TranslatorInterface
throw new ExpressionErrorException(sprintf('Combiner "%s" not supported.', $combiner)); throw new ExpressionErrorException(sprintf('Combiner "%s" not supported.', $combiner));
} }
return \call_user_func($this->combinationTranslators[$combiner], $this->nodeToXPath($xpath), $this->nodeToXPath($combinedXpath)); return $this->combinationTranslators[$combiner]($this->nodeToXPath($xpath), $this->nodeToXPath($combinedXpath));
} }
/** /**
@@ -179,7 +179,7 @@ class Translator implements TranslatorInterface
throw new ExpressionErrorException(sprintf('Function "%s" not supported.', $function->getName())); throw new ExpressionErrorException(sprintf('Function "%s" not supported.', $function->getName()));
} }
return \call_user_func($this->functionTranslators[$function->getName()], $xpath, $function); return $this->functionTranslators[$function->getName()]($xpath, $function);
} }
/** /**
@@ -191,7 +191,7 @@ class Translator implements TranslatorInterface
throw new ExpressionErrorException(sprintf('Pseudo-class "%s" not supported.', $pseudoClass)); throw new ExpressionErrorException(sprintf('Pseudo-class "%s" not supported.', $pseudoClass));
} }
return \call_user_func($this->pseudoClassTranslators[$pseudoClass], $xpath); return $this->pseudoClassTranslators[$pseudoClass]($xpath);
} }
/** /**
@@ -203,7 +203,7 @@ class Translator implements TranslatorInterface
throw new ExpressionErrorException(sprintf('Attribute matcher operator "%s" not supported.', $operator)); throw new ExpressionErrorException(sprintf('Attribute matcher operator "%s" not supported.', $operator));
} }
return \call_user_func($this->attributeMatchingTranslators[$operator], $xpath, $attribute, $value); return $this->attributeMatchingTranslators[$operator]($xpath, $attribute, $value);
} }
/** /**

View File

@@ -151,7 +151,7 @@ class DebugClassLoader
require $file; require $file;
} }
} else { } else {
\call_user_func($this->classLoader, $class); ($this->classLoader)($class);
$file = false; $file = false;
} }
} finally { } finally {
@@ -218,7 +218,7 @@ class DebugClassLoader
$len = 0; $len = 0;
$ns = ''; $ns = '';
} else { } else {
$ns = \substr($class, 0, $len); $ns = \str_replace('_', '\\', \substr($class, 0, $len));
} }
// Detect annotations on the class // Detect annotations on the class
@@ -249,13 +249,13 @@ class DebugClassLoader
if (!isset(self::$checkedClasses[$use])) { if (!isset(self::$checkedClasses[$use])) {
$this->checkClass($use); $this->checkClass($use);
} }
if (isset(self::$deprecated[$use]) && \strncmp($ns, $use, $len)) { if (isset(self::$deprecated[$use]) && \strncmp($ns, \str_replace('_', '\\', $use), $len)) {
$type = class_exists($class, false) ? 'class' : (interface_exists($class, false) ? 'interface' : 'trait'); $type = class_exists($class, false) ? 'class' : (interface_exists($class, false) ? 'interface' : 'trait');
$verb = class_exists($use, false) || interface_exists($class, false) ? 'extends' : (interface_exists($use, false) ? 'implements' : 'uses'); $verb = class_exists($use, false) || interface_exists($class, false) ? 'extends' : (interface_exists($use, false) ? 'implements' : 'uses');
$deprecations[] = sprintf('The "%s" %s %s "%s" that is deprecated%s.', $class, $type, $verb, $use, self::$deprecated[$use]); $deprecations[] = sprintf('The "%s" %s %s "%s" that is deprecated%s.', $class, $type, $verb, $use, self::$deprecated[$use]);
} }
if (isset(self::$internal[$use]) && \strncmp($ns, $use, $len)) { if (isset(self::$internal[$use]) && \strncmp($ns, \str_replace('_', '\\', $use), $len)) {
$deprecations[] = sprintf('The "%s" %s is considered internal%s. It may change without further notice. You should not use it from "%s".', $use, class_exists($use, false) ? 'class' : (interface_exists($use, false) ? 'interface' : 'trait'), self::$internal[$use], $class); $deprecations[] = sprintf('The "%s" %s is considered internal%s. It may change without further notice. You should not use it from "%s".', $use, class_exists($use, false) ? 'class' : (interface_exists($use, false) ? 'interface' : 'trait'), self::$internal[$use], $class);
} }
} }

View File

@@ -560,7 +560,7 @@ class ErrorHandler
$this->exceptionHandler = null; $this->exceptionHandler = null;
try { try {
if (null !== $exceptionHandler) { if (null !== $exceptionHandler) {
return \call_user_func($exceptionHandler, $exception); return $exceptionHandler($exception);
} }
$handlerException = $handlerException ?: $exception; $handlerException = $handlerException ?: $exception;
} catch (\Throwable $handlerException) { } catch (\Throwable $handlerException) {

View File

@@ -142,7 +142,7 @@ class ExceptionHandler
$this->caughtBuffer = null; $this->caughtBuffer = null;
try { try {
\call_user_func($this->handler, $exception); ($this->handler)($exception);
$this->caughtLength = $caughtLength; $this->caughtLength = $caughtLength;
} catch (\Exception $e) { } catch (\Exception $e) {
if (!$caughtLength) { if (!$caughtLength) {

View File

@@ -1,4 +1,4 @@
Copyright (c) 2004-2018 Fabien Potencier Copyright (c) 2004-2019 Fabien Potencier
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@@ -29,7 +29,7 @@ class TraceableEventDispatcher implements TraceableEventDispatcherInterface
protected $logger; protected $logger;
protected $stopwatch; protected $stopwatch;
private $called; private $callStack;
private $dispatcher; private $dispatcher;
private $wrappedListeners; private $wrappedListeners;
private $orphanedEvents; private $orphanedEvents;
@@ -39,7 +39,6 @@ class TraceableEventDispatcher implements TraceableEventDispatcherInterface
$this->dispatcher = $dispatcher; $this->dispatcher = $dispatcher;
$this->stopwatch = $stopwatch; $this->stopwatch = $stopwatch;
$this->logger = $logger; $this->logger = $logger;
$this->called = array();
$this->wrappedListeners = array(); $this->wrappedListeners = array();
$this->orphanedEvents = array(); $this->orphanedEvents = array();
} }
@@ -125,6 +124,10 @@ class TraceableEventDispatcher implements TraceableEventDispatcherInterface
*/ */
public function dispatch($eventName, Event $event = null) public function dispatch($eventName, Event $event = null)
{ {
if (null === $this->callStack) {
$this->callStack = new \SplObjectStorage();
}
if (null === $event) { if (null === $event) {
$event = new Event(); $event = new Event();
} }
@@ -160,11 +163,15 @@ class TraceableEventDispatcher implements TraceableEventDispatcherInterface
*/ */
public function getCalledListeners() public function getCalledListeners()
{ {
if (null === $this->callStack) {
return array();
}
$called = array(); $called = array();
foreach ($this->called as $eventName => $listeners) { foreach ($this->callStack as $listener) {
foreach ($listeners as $listener) { list($eventName) = $this->callStack->getInfo();
$called[$eventName.'.'.$listener->getPretty()] = $listener->getInfo($eventName);
} $called[] = $listener->getInfo($eventName);
} }
return $called; return $called;
@@ -190,9 +197,9 @@ class TraceableEventDispatcher implements TraceableEventDispatcherInterface
foreach ($allListeners as $eventName => $listeners) { foreach ($allListeners as $eventName => $listeners) {
foreach ($listeners as $listener) { foreach ($listeners as $listener) {
$called = false; $called = false;
if (isset($this->called[$eventName])) { if (null !== $this->callStack) {
foreach ($this->called[$eventName] as $l) { foreach ($this->callStack as $calledListener) {
if ($l->getWrappedListener() === $listener) { if ($calledListener->getWrappedListener() === $listener) {
$called = true; $called = true;
break; break;
@@ -204,12 +211,12 @@ class TraceableEventDispatcher implements TraceableEventDispatcherInterface
if (!$listener instanceof WrappedListener) { if (!$listener instanceof WrappedListener) {
$listener = new WrappedListener($listener, null, $this->stopwatch, $this); $listener = new WrappedListener($listener, null, $this->stopwatch, $this);
} }
$notCalled[$eventName.'.'.$listener->getPretty()] = $listener->getInfo($eventName); $notCalled[] = $listener->getInfo($eventName);
} }
} }
} }
uasort($notCalled, array($this, 'sortListenersByPriority')); uasort($notCalled, array($this, 'sortNotCalledListeners'));
return $notCalled; return $notCalled;
} }
@@ -221,7 +228,7 @@ class TraceableEventDispatcher implements TraceableEventDispatcherInterface
public function reset() public function reset()
{ {
$this->called = array(); $this->callStack = null;
$this->orphanedEvents = array(); $this->orphanedEvents = array();
} }
@@ -272,6 +279,7 @@ class TraceableEventDispatcher implements TraceableEventDispatcherInterface
$this->wrappedListeners[$eventName][] = $wrappedListener; $this->wrappedListeners[$eventName][] = $wrappedListener;
$this->dispatcher->removeListener($eventName, $listener); $this->dispatcher->removeListener($eventName, $listener);
$this->dispatcher->addListener($eventName, $wrappedListener, $priority); $this->dispatcher->addListener($eventName, $wrappedListener, $priority);
$this->callStack->attach($wrappedListener, array($eventName));
} }
} }
@@ -300,8 +308,8 @@ class TraceableEventDispatcher implements TraceableEventDispatcherInterface
if (!isset($this->called[$eventName])) { if (!isset($this->called[$eventName])) {
$this->called[$eventName] = new \SplObjectStorage(); $this->called[$eventName] = new \SplObjectStorage();
} }
} else {
$this->called[$eventName]->attach($listener); $this->callStack->detach($listener);
} }
if (null !== $this->logger && $skipped) { if (null !== $this->logger && $skipped) {
@@ -318,8 +326,12 @@ class TraceableEventDispatcher implements TraceableEventDispatcherInterface
} }
} }
private function sortListenersByPriority($a, $b) private function sortNotCalledListeners(array $a, array $b)
{ {
if (0 !== $cmp = strcmp($a['event'], $b['event'])) {
return $cmp;
}
if (\is_int($a['priority']) && !\is_int($b['priority'])) { if (\is_int($a['priority']) && !\is_int($b['priority'])) {
return 1; return 1;
} }

View File

@@ -108,7 +108,7 @@ class WrappedListener
$e = $this->stopwatch->start($this->name, 'event_listener'); $e = $this->stopwatch->start($this->name, 'event_listener');
\call_user_func($this->listener, $event, $eventName, $this->dispatcher ?: $dispatcher); ($this->listener)($event, $eventName, $this->dispatcher ?: $dispatcher);
if ($e->isStarted()) { if ($e->isStarted()) {
$e->stop(); $e->stop();

View File

@@ -209,7 +209,7 @@ class EventDispatcher implements EventDispatcherInterface
if ($event->isPropagationStopped()) { if ($event->isPropagationStopped()) {
break; break;
} }
\call_user_func($listener, $event, $eventName, $this); $listener($event, $eventName, $this);
} }
} }

View File

@@ -23,11 +23,11 @@ interface EventDispatcherInterface
/** /**
* Dispatches an event to all registered listeners. * Dispatches an event to all registered listeners.
* *
* @param string $eventName The name of the event to dispatch. The name of * @param string $eventName The name of the event to dispatch. The name of
* the event is the name of the method that is * the event is the name of the method that is
* invoked on listeners. * invoked on listeners.
* @param Event $event The event to pass to the event handlers/listeners * @param Event|null $event The event to pass to the event handlers/listeners
* If not supplied, an empty Event instance is created * If not supplied, an empty Event instance is created
* *
* @return Event * @return Event
*/ */
@@ -46,7 +46,7 @@ interface EventDispatcherInterface
/** /**
* Adds an event subscriber. * Adds an event subscriber.
* *
* The subscriber is asked for all the events he is * The subscriber is asked for all the events it is
* interested in and added as a listener for these events. * interested in and added as a listener for these events.
*/ */
public function addSubscriber(EventSubscriberInterface $subscriber); public function addSubscriber(EventSubscriberInterface $subscriber);
@@ -64,7 +64,7 @@ interface EventDispatcherInterface
/** /**
* Gets the listeners of a specific event or all listeners sorted by descending priority. * Gets the listeners of a specific event or all listeners sorted by descending priority.
* *
* @param string $eventName The name of the event * @param string|null $eventName The name of the event
* *
* @return array The event listeners for the specified event, or all event listeners by event name * @return array The event listeners for the specified event, or all event listeners by event name
*/ */
@@ -85,7 +85,7 @@ interface EventDispatcherInterface
/** /**
* Checks whether an event has any registered listeners. * Checks whether an event has any registered listeners.
* *
* @param string $eventName The name of the event * @param string|null $eventName The name of the event
* *
* @return bool true if the specified event has any listeners, false otherwise * @return bool true if the specified event has any listeners, false otherwise
*/ */

View File

@@ -12,7 +12,7 @@
namespace Symfony\Component\EventDispatcher; namespace Symfony\Component\EventDispatcher;
/** /**
* An EventSubscriber knows himself what events he is interested in. * An EventSubscriber knows itself what events it is interested in.
* If an EventSubscriber is added to an EventDispatcherInterface, the manager invokes * If an EventSubscriber is added to an EventDispatcherInterface, the manager invokes
* {@link getSubscribedEvents} and registers the subscriber as a listener for all * {@link getSubscribedEvents} and registers the subscriber as a listener for all
* returned events. * returned events.

View File

@@ -1,4 +1,4 @@
Copyright (c) 2004-2018 Fabien Potencier Copyright (c) 2004-2019 Fabien Potencier
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@@ -110,17 +110,17 @@ class TraceableEventDispatcherTest extends TestCase
$tdispatcher->addListener('foo', function () {}, 5); $tdispatcher->addListener('foo', function () {}, 5);
$listeners = $tdispatcher->getNotCalledListeners(); $listeners = $tdispatcher->getNotCalledListeners();
$this->assertArrayHasKey('stub', $listeners['foo.closure']); $this->assertArrayHasKey('stub', $listeners[0]);
unset($listeners['foo.closure']['stub']); unset($listeners[0]['stub']);
$this->assertEquals(array(), $tdispatcher->getCalledListeners()); $this->assertEquals(array(), $tdispatcher->getCalledListeners());
$this->assertEquals(array('foo.closure' => array('event' => 'foo', 'pretty' => 'closure', 'priority' => 5)), $listeners); $this->assertEquals(array(array('event' => 'foo', 'pretty' => 'closure', 'priority' => 5)), $listeners);
$tdispatcher->dispatch('foo'); $tdispatcher->dispatch('foo');
$listeners = $tdispatcher->getCalledListeners(); $listeners = $tdispatcher->getCalledListeners();
$this->assertArrayHasKey('stub', $listeners['foo.closure']); $this->assertArrayHasKey('stub', $listeners[0]);
unset($listeners['foo.closure']['stub']); unset($listeners[0]['stub']);
$this->assertEquals(array('foo.closure' => array('event' => 'foo', 'pretty' => 'closure', 'priority' => 5)), $listeners); $this->assertEquals(array(array('event' => 'foo', 'pretty' => 'closure', 'priority' => 5)), $listeners);
$this->assertEquals(array(), $tdispatcher->getNotCalledListeners()); $this->assertEquals(array(), $tdispatcher->getNotCalledListeners());
} }
@@ -133,10 +133,22 @@ class TraceableEventDispatcherTest extends TestCase
$tdispatcher->reset(); $tdispatcher->reset();
$listeners = $tdispatcher->getNotCalledListeners(); $listeners = $tdispatcher->getNotCalledListeners();
$this->assertArrayHasKey('stub', $listeners['foo.closure']); $this->assertArrayHasKey('stub', $listeners[0]);
unset($listeners['foo.closure']['stub']); unset($listeners[0]['stub']);
$this->assertEquals(array(), $tdispatcher->getCalledListeners()); $this->assertEquals(array(), $tdispatcher->getCalledListeners());
$this->assertEquals(array('foo.closure' => array('event' => 'foo', 'pretty' => 'closure', 'priority' => 5)), $listeners); $this->assertEquals(array(array('event' => 'foo', 'pretty' => 'closure', 'priority' => 5)), $listeners);
}
public function testDispatchAfterReset()
{
$tdispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
$tdispatcher->addListener('foo', function () {}, 5);
$tdispatcher->reset();
$tdispatcher->dispatch('foo');
$listeners = $tdispatcher->getCalledListeners();
$this->assertArrayHasKey('stub', $listeners[0]);
} }
public function testGetCalledListenersNested() public function testGetCalledListenersNested()

View File

@@ -30,21 +30,16 @@ class WrappedListenerTest extends TestCase
public function provideListenersToDescribe() public function provideListenersToDescribe()
{ {
$listeners = array( return array(
array(new FooListener(), 'Symfony\Component\EventDispatcher\Tests\Debug\FooListener::__invoke'), array(new FooListener(), 'Symfony\Component\EventDispatcher\Tests\Debug\FooListener::__invoke'),
array(array(new FooListener(), 'listen'), 'Symfony\Component\EventDispatcher\Tests\Debug\FooListener::listen'), array(array(new FooListener(), 'listen'), 'Symfony\Component\EventDispatcher\Tests\Debug\FooListener::listen'),
array(array('Symfony\Component\EventDispatcher\Tests\Debug\FooListener', 'listenStatic'), 'Symfony\Component\EventDispatcher\Tests\Debug\FooListener::listenStatic'), array(array('Symfony\Component\EventDispatcher\Tests\Debug\FooListener', 'listenStatic'), 'Symfony\Component\EventDispatcher\Tests\Debug\FooListener::listenStatic'),
array('var_dump', 'var_dump'), array('var_dump', 'var_dump'),
array(function () {}, 'closure'), array(function () {}, 'closure'),
array(\Closure::fromCallable(array(new FooListener(), 'listen')), 'Symfony\Component\EventDispatcher\Tests\Debug\FooListener::listen'),
array(\Closure::fromCallable(array('Symfony\Component\EventDispatcher\Tests\Debug\FooListener', 'listenStatic')), 'Symfony\Component\EventDispatcher\Tests\Debug\FooListener::listenStatic'),
array(\Closure::fromCallable(function () {}), 'closure'),
); );
if (\PHP_VERSION_ID >= 70100) {
$listeners[] = array(\Closure::fromCallable(array(new FooListener(), 'listen')), 'Symfony\Component\EventDispatcher\Tests\Debug\FooListener::listen');
$listeners[] = array(\Closure::fromCallable(array('Symfony\Component\EventDispatcher\Tests\Debug\FooListener', 'listenStatic')), 'Symfony\Component\EventDispatcher\Tests\Debug\FooListener::listenStatic');
$listeners[] = array(\Closure::fromCallable(function () {}), 'closure');
}
return $listeners;
} }
} }

View File

@@ -51,7 +51,7 @@ class CustomFilterIterator extends \FilterIterator
$fileinfo = $this->current(); $fileinfo = $this->current();
foreach ($this->filters as $filter) { foreach ($this->filters as $filter) {
if (false === \call_user_func($filter, $fileinfo)) { if (false === $filter($fileinfo)) {
return false; return false;
} }
} }

View File

@@ -73,7 +73,7 @@ class SortableIterator implements \IteratorAggregate
} elseif (self::SORT_BY_NONE === $sort) { } elseif (self::SORT_BY_NONE === $sort) {
$this->sort = $order; $this->sort = $order;
} elseif (\is_callable($sort)) { } elseif (\is_callable($sort)) {
$this->sort = $reverseOrder ? function ($a, $b) use ($sort) { return -\call_user_func($sort, $a, $b); } : $sort; $this->sort = $reverseOrder ? function ($a, $b) use ($sort) { return -$sort($a, $b); } : $sort;
} else { } else {
throw new \InvalidArgumentException('The SortableIterator takes a PHP callable or a valid built-in sort algorithm as an argument.'); throw new \InvalidArgumentException('The SortableIterator takes a PHP callable or a valid built-in sort algorithm as an argument.');
} }

View File

@@ -1,4 +1,4 @@
Copyright (c) 2004-2018 Fabien Potencier Copyright (c) 2004-2019 Fabien Potencier
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@@ -1209,7 +1209,7 @@ class FinderTest extends Iterator\RealIteratorTestCase
// restore original permissions // restore original permissions
chmod($testDir, 0777); chmod($testDir, 0777);
clearstatcache($testDir); clearstatcache(true, $testDir);
if ($couldRead) { if ($couldRead) {
$this->markTestSkipped('could read test files while test requires unreadable'); $this->markTestSkipped('could read test files while test requires unreadable');
@@ -1248,7 +1248,7 @@ class FinderTest extends Iterator\RealIteratorTestCase
// restore original permissions // restore original permissions
chmod($testDir, 0777); chmod($testDir, 0777);
clearstatcache($testDir); clearstatcache(true, $testDir);
if ($couldRead) { if ($couldRead) {
$this->markTestSkipped('could read test files while test requires unreadable'); $this->markTestSkipped('could read test files while test requires unreadable');

View File

@@ -101,9 +101,9 @@ class HeaderBag implements \IteratorAggregate, \Countable
/** /**
* Returns a header value by name. * Returns a header value by name.
* *
* @param string $key The header name * @param string $key The header name
* @param string|string[]|null $default The default value * @param string|null $default The default value
* @param bool $first Whether to return the first value or all header values * @param bool $first Whether to return the first value or all header values
* *
* @return string|string[]|null The first header value or default value if $first is true, an array of values otherwise * @return string|string[]|null The first header value or default value if $first is true, an array of values otherwise
*/ */

View File

@@ -1,4 +1,4 @@
Copyright (c) 2004-2018 Fabien Potencier Copyright (c) 2004-2019 Fabien Potencier
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@@ -1699,15 +1699,23 @@ class Request
} elseif ($this->server->has('REQUEST_URI')) { } elseif ($this->server->has('REQUEST_URI')) {
$requestUri = $this->server->get('REQUEST_URI'); $requestUri = $this->server->get('REQUEST_URI');
// HTTP proxy reqs setup request URI with scheme and host [and port] + the URL path, only use URL path if ('' !== $requestUri && '/' === $requestUri[0]) {
$uriComponents = parse_url($requestUri); // To only use path and query remove the fragment.
if (false !== $pos = strpos($requestUri, '#')) {
$requestUri = substr($requestUri, 0, $pos);
}
} else {
// HTTP proxy reqs setup request URI with scheme and host [and port] + the URL path,
// only use URL path.
$uriComponents = parse_url($requestUri);
if (isset($uriComponents['path'])) { if (isset($uriComponents['path'])) {
$requestUri = $uriComponents['path']; $requestUri = $uriComponents['path'];
} }
if (isset($uriComponents['query'])) { if (isset($uriComponents['query'])) {
$requestUri .= '?'.$uriComponents['query']; $requestUri .= '?'.$uriComponents['query'];
}
} }
} elseif ($this->server->has('ORIG_PATH_INFO')) { } elseif ($this->server->has('ORIG_PATH_INFO')) {
// IIS 5.0, PHP as CGI // IIS 5.0, PHP as CGI
@@ -1908,7 +1916,7 @@ class Request
private static function createRequestFromFactory(array $query = array(), array $request = array(), array $attributes = array(), array $cookies = array(), array $files = array(), array $server = array(), $content = null) private static function createRequestFromFactory(array $query = array(), array $request = array(), array $attributes = array(), array $cookies = array(), array $files = array(), array $server = array(), $content = null)
{ {
if (self::$requestFactory) { if (self::$requestFactory) {
$request = \call_user_func(self::$requestFactory, $query, $request, $attributes, $cookies, $files, $server, $content); $request = (self::$requestFactory)($query, $request, $attributes, $cookies, $files, $server, $content);
if (!$request instanceof self) { if (!$request instanceof self) {
throw new \LogicException('The Request factory must return an instance of Symfony\Component\HttpFoundation\Request.'); throw new \LogicException('The Request factory must return an instance of Symfony\Component\HttpFoundation\Request.');

View File

@@ -153,7 +153,7 @@ class NativeSessionStorage implements SessionStorageInterface
if (null !== $this->emulateSameSite) { if (null !== $this->emulateSameSite) {
$originalCookie = SessionUtils::popSessionCookie(session_name(), session_id()); $originalCookie = SessionUtils::popSessionCookie(session_name(), session_id());
if (null !== $originalCookie) { if (null !== $originalCookie) {
header(sprintf('%s; SameSite=%s', $originalCookie, $this->emulateSameSite)); header(sprintf('%s; SameSite=%s', $originalCookie, $this->emulateSameSite), false);
} }
} }
@@ -225,7 +225,7 @@ class NativeSessionStorage implements SessionStorageInterface
if (null !== $this->emulateSameSite) { if (null !== $this->emulateSameSite) {
$originalCookie = SessionUtils::popSessionCookie(session_name(), session_id()); $originalCookie = SessionUtils::popSessionCookie(session_name(), session_id());
if (null !== $originalCookie) { if (null !== $originalCookie) {
header(sprintf('%s; SameSite=%s', $originalCookie, $this->emulateSameSite)); header(sprintf('%s; SameSite=%s', $originalCookie, $this->emulateSameSite), false);
} }
} }

View File

@@ -111,7 +111,7 @@ class StreamedResponse extends Response
throw new \LogicException('The Response callback must not be null.'); throw new \LogicException('The Response callback must not be null.');
} }
\call_user_func($this->callback); ($this->callback)();
return $this; return $this;
} }

View File

@@ -283,6 +283,55 @@ class RequestTest extends TestCase
$this->assertEquals('http://test.com/foo', $request->getUri()); $this->assertEquals('http://test.com/foo', $request->getUri());
} }
/**
* @dataProvider getRequestUriData
*/
public function testGetRequestUri($serverRequestUri, $expected, $message)
{
$request = new Request();
$request->server->add(array(
'REQUEST_URI' => $serverRequestUri,
// For having http://test.com
'SERVER_NAME' => 'test.com',
'SERVER_PORT' => 80,
));
$this->assertSame($expected, $request->getRequestUri(), $message);
$this->assertSame($expected, $request->server->get('REQUEST_URI'), 'Normalize the request URI.');
}
public function getRequestUriData()
{
$message = 'Do not modify the path.';
yield array('/foo', '/foo', $message);
yield array('//bar/foo', '//bar/foo', $message);
yield array('///bar/foo', '///bar/foo', $message);
$message = 'Handle when the scheme, host are on REQUEST_URI.';
yield array('http://test.com/foo?bar=baz', '/foo?bar=baz', $message);
$message = 'Handle when the scheme, host and port are on REQUEST_URI.';
yield array('http://test.com:80/foo', '/foo', $message);
yield array('https://test.com:8080/foo', '/foo', $message);
yield array('https://test.com:443/foo', '/foo', $message);
$message = 'Fragment should not be included in the URI';
yield array('http://test.com/foo#bar', '/foo', $message);
yield array('/foo#bar', '/foo', $message);
}
public function testGetRequestUriWithoutRequiredHeader()
{
$expected = '';
$request = new Request();
$message = 'Fallback to empty URI when headers are missing.';
$this->assertSame($expected, $request->getRequestUri(), $message);
$this->assertSame($expected, $request->server->get('REQUEST_URI'), 'Normalize the request URI.');
}
public function testCreateCheckPrecedence() public function testCreateCheckPrecedence()
{ {
// server is used by default // server is used by default

View File

@@ -390,7 +390,7 @@ class MockPdo extends \PDO
public function prepare($statement, $driverOptions = array()) public function prepare($statement, $driverOptions = array())
{ {
return \is_callable($this->prepareResult) return \is_callable($this->prepareResult)
? \call_user_func($this->prepareResult, $statement, $driverOptions) ? ($this->prepareResult)($statement, $driverOptions)
: $this->prepareResult; : $this->prepareResult;
} }

View File

@@ -91,7 +91,7 @@ class FileLinkFormatter implements \Serializable
if ($this->requestStack && $this->baseDir && $this->urlFormat) { if ($this->requestStack && $this->baseDir && $this->urlFormat) {
$request = $this->requestStack->getMasterRequest(); $request = $this->requestStack->getMasterRequest();
if ($request instanceof Request) { if ($request instanceof Request) {
if ($this->urlFormat instanceof \Closure && !$this->urlFormat = \call_user_func($this->urlFormat)) { if ($this->urlFormat instanceof \Closure && !$this->urlFormat = ($this->urlFormat)()) {
return; return;
} }

View File

@@ -55,7 +55,7 @@ class AddAnnotatedClassesToCachePass implements CompilerPassInterface
* @param array $patterns The class patterns to expand * @param array $patterns The class patterns to expand
* @param array $classes The existing classes to match against the patterns * @param array $classes The existing classes to match against the patterns
* *
* @return array A list of classes derivated from the patterns * @return array A list of classes derived from the patterns
*/ */
private function expandClasses(array $patterns, array $classes) private function expandClasses(array $patterns, array $classes)
{ {

Some files were not shown because too many files have changed in this diff Show More