Composer deps update

This commit is contained in:
Kode 2019-01-18 18:33:28 +00:00
parent 6dcbcb452e
commit 04d34017c1
1010 changed files with 49147 additions and 10845 deletions

790
composer.lock generated

File diff suppressed because it is too large Load diff

View file

@ -379,9 +379,9 @@ class ClassLoader
$subPath = substr($subPath, 0, $lastPos); $subPath = substr($subPath, 0, $lastPos);
$search = $subPath.'\\'; $search = $subPath.'\\';
if (isset($this->prefixDirsPsr4[$search])) { if (isset($this->prefixDirsPsr4[$search])) {
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
foreach ($this->prefixDirsPsr4[$search] as $dir) { foreach ($this->prefixDirsPsr4[$search] as $dir) {
if (file_exists($file = $dir . $pathEnd)) { $length = $this->prefixLengthsPsr4[$first][$search];
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
return $file; return $file;
} }
} }

View file

@ -1,56 +1,21 @@
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: Composer
Upstream-Contact: Jordi Boggiano <j.boggiano@seld.be>
Source: https://github.com/composer/composer
Files: * Copyright (c) Nils Adermann, Jordi Boggiano
Copyright: 2016, Nils Adermann <naderman@naderman.de>
2016, Jordi Boggiano <j.boggiano@seld.be>
License: Expat
Files: src/Composer/Util/TlsHelper.php Permission is hereby granted, free of charge, to any person obtaining a copy
Copyright: 2016, Nils Adermann <naderman@naderman.de> of this software and associated documentation files (the "Software"), to deal
2016, Jordi Boggiano <j.boggiano@seld.be> in the Software without restriction, including without limitation the rights
2013, Evan Coury <me@evancoury.com> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
License: Expat and BSD-2-Clause copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:
License: BSD-2-Clause The above copyright notice and this permission notice shall be included in all
Redistribution and use in source and binary forms, with or without modification, copies or substantial portions of the Software.
are permitted provided that the following conditions are met:
. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* Redistributions of source code must retain the above copyright notice, IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
this list of conditions and the following disclaimer. FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
. AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* Redistributions in binary form must reproduce the above copyright notice, LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
this list of conditions and the following disclaimer in the documentation OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
and/or other materials provided with the distribution. THE SOFTWARE.
.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
License: Expat
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 the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:
.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View file

@ -18,6 +18,7 @@ return array(
'App\\Http\\Controllers\\Controller' => $baseDir . '/app/Http/Controllers/Controller.php', 'App\\Http\\Controllers\\Controller' => $baseDir . '/app/Http/Controllers/Controller.php',
'App\\Http\\Controllers\\HomeController' => $baseDir . '/app/Http/Controllers/HomeController.php', 'App\\Http\\Controllers\\HomeController' => $baseDir . '/app/Http/Controllers/HomeController.php',
'App\\Http\\Controllers\\ItemController' => $baseDir . '/app/Http/Controllers/ItemController.php', 'App\\Http\\Controllers\\ItemController' => $baseDir . '/app/Http/Controllers/ItemController.php',
'App\\Http\\Controllers\\SearchController' => $baseDir . '/app/Http/Controllers/SearchController.php',
'App\\Http\\Controllers\\SettingsController' => $baseDir . '/app/Http/Controllers/SettingsController.php', 'App\\Http\\Controllers\\SettingsController' => $baseDir . '/app/Http/Controllers/SettingsController.php',
'App\\Http\\Controllers\\TagController' => $baseDir . '/app/Http/Controllers/TagController.php', 'App\\Http\\Controllers\\TagController' => $baseDir . '/app/Http/Controllers/TagController.php',
'App\\Http\\Controllers\\UserController' => $baseDir . '/app/Http/Controllers/UserController.php', 'App\\Http\\Controllers\\UserController' => $baseDir . '/app/Http/Controllers/UserController.php',
@ -35,6 +36,8 @@ return array(
'App\\Providers\\BroadcastServiceProvider' => $baseDir . '/app/Providers/BroadcastServiceProvider.php', 'App\\Providers\\BroadcastServiceProvider' => $baseDir . '/app/Providers/BroadcastServiceProvider.php',
'App\\Providers\\EventServiceProvider' => $baseDir . '/app/Providers/EventServiceProvider.php', 'App\\Providers\\EventServiceProvider' => $baseDir . '/app/Providers/EventServiceProvider.php',
'App\\Providers\\RouteServiceProvider' => $baseDir . '/app/Providers/RouteServiceProvider.php', 'App\\Providers\\RouteServiceProvider' => $baseDir . '/app/Providers/RouteServiceProvider.php',
'App\\Search' => $baseDir . '/app/Search.php',
'App\\SearchInterface' => $baseDir . '/app/SearchInterface.php',
'App\\Setting' => $baseDir . '/app/Setting.php', 'App\\Setting' => $baseDir . '/app/Setting.php',
'App\\SettingGroup' => $baseDir . '/app/SettingGroup.php', 'App\\SettingGroup' => $baseDir . '/app/SettingGroup.php',
'App\\SettingUser' => $baseDir . '/app/SettingUser.php', 'App\\SettingUser' => $baseDir . '/app/SettingUser.php',
@ -72,8 +75,8 @@ return array(
'App\\SupportedApps\\Nextcloud\\Nextcloud' => $baseDir . '/app/SupportedApps/Nextcloud/Nextcloud.php', 'App\\SupportedApps\\Nextcloud\\Nextcloud' => $baseDir . '/app/SupportedApps/Nextcloud/Nextcloud.php',
'App\\SupportedApps\\NodeRed\\NodeRed' => $baseDir . '/app/SupportedApps/NodeRed/NodeRed.php', 'App\\SupportedApps\\NodeRed\\NodeRed' => $baseDir . '/app/SupportedApps/NodeRed/NodeRed.php',
'App\\SupportedApps\\NowShowing\\NowShowing' => $baseDir . '/app/SupportedApps/NowShowing/NowShowing.php', 'App\\SupportedApps\\NowShowing\\NowShowing' => $baseDir . '/app/SupportedApps/NowShowing/NowShowing.php',
'App\\SupportedApps\\Nzbget\\Nzbget' => $baseDir . '/app/SupportedApps/Nzbget/Nzbget.php',
'App\\SupportedApps\\OPNsense\\OPNsense' => $baseDir . '/app/SupportedApps/OPNsense/OPNsense.php', 'App\\SupportedApps\\OPNsense\\OPNsense' => $baseDir . '/app/SupportedApps/OPNsense/OPNsense.php',
'App\\SupportedApps\\Octoprint\\Octoprint' => $baseDir . '/app/SupportedApps/Octoprint/Octoprint.php',
'App\\SupportedApps\\Ombi\\Ombi' => $baseDir . '/app/SupportedApps/Ombi/Ombi.php', 'App\\SupportedApps\\Ombi\\Ombi' => $baseDir . '/app/SupportedApps/Ombi/Ombi.php',
'App\\SupportedApps\\Pihole\\Pihole' => $baseDir . '/app/SupportedApps/Pihole/Pihole.php', 'App\\SupportedApps\\Pihole\\Pihole' => $baseDir . '/app/SupportedApps/Pihole/Pihole.php',
'App\\SupportedApps\\PlexRequests\\PlexRequests' => $baseDir . '/app/SupportedApps/PlexRequests/PlexRequests.php', 'App\\SupportedApps\\PlexRequests\\PlexRequests' => $baseDir . '/app/SupportedApps/PlexRequests/PlexRequests.php',
@ -845,6 +848,7 @@ return array(
'GuzzleHttp\\Psr7\\PumpStream' => $vendorDir . '/guzzlehttp/psr7/src/PumpStream.php', 'GuzzleHttp\\Psr7\\PumpStream' => $vendorDir . '/guzzlehttp/psr7/src/PumpStream.php',
'GuzzleHttp\\Psr7\\Request' => $vendorDir . '/guzzlehttp/psr7/src/Request.php', 'GuzzleHttp\\Psr7\\Request' => $vendorDir . '/guzzlehttp/psr7/src/Request.php',
'GuzzleHttp\\Psr7\\Response' => $vendorDir . '/guzzlehttp/psr7/src/Response.php', 'GuzzleHttp\\Psr7\\Response' => $vendorDir . '/guzzlehttp/psr7/src/Response.php',
'GuzzleHttp\\Psr7\\Rfc7230' => $vendorDir . '/guzzlehttp/psr7/src/Rfc7230.php',
'GuzzleHttp\\Psr7\\ServerRequest' => $vendorDir . '/guzzlehttp/psr7/src/ServerRequest.php', 'GuzzleHttp\\Psr7\\ServerRequest' => $vendorDir . '/guzzlehttp/psr7/src/ServerRequest.php',
'GuzzleHttp\\Psr7\\Stream' => $vendorDir . '/guzzlehttp/psr7/src/Stream.php', 'GuzzleHttp\\Psr7\\Stream' => $vendorDir . '/guzzlehttp/psr7/src/Stream.php',
'GuzzleHttp\\Psr7\\StreamDecoratorTrait' => $vendorDir . '/guzzlehttp/psr7/src/StreamDecoratorTrait.php', 'GuzzleHttp\\Psr7\\StreamDecoratorTrait' => $vendorDir . '/guzzlehttp/psr7/src/StreamDecoratorTrait.php',
@ -979,6 +983,8 @@ return array(
'Http\\Client\\Common\\Plugin\\RedirectPlugin' => $vendorDir . '/php-http/client-common/src/Plugin/RedirectPlugin.php', 'Http\\Client\\Common\\Plugin\\RedirectPlugin' => $vendorDir . '/php-http/client-common/src/Plugin/RedirectPlugin.php',
'Http\\Client\\Common\\Plugin\\RequestMatcherPlugin' => $vendorDir . '/php-http/client-common/src/Plugin/RequestMatcherPlugin.php', 'Http\\Client\\Common\\Plugin\\RequestMatcherPlugin' => $vendorDir . '/php-http/client-common/src/Plugin/RequestMatcherPlugin.php',
'Http\\Client\\Common\\Plugin\\RetryPlugin' => $vendorDir . '/php-http/client-common/src/Plugin/RetryPlugin.php', 'Http\\Client\\Common\\Plugin\\RetryPlugin' => $vendorDir . '/php-http/client-common/src/Plugin/RetryPlugin.php',
'Http\\Client\\Common\\Plugin\\VersionBridgePlugin' => $vendorDir . '/php-http/client-common/src/Plugin/VersionBridgePlugin.php',
'Http\\Client\\Common\\VersionBridgeClient' => $vendorDir . '/php-http/client-common/src/VersionBridgeClient.php',
'Http\\Client\\Exception' => $vendorDir . '/php-http/httplug/src/Exception.php', 'Http\\Client\\Exception' => $vendorDir . '/php-http/httplug/src/Exception.php',
'Http\\Client\\Exception\\HttpException' => $vendorDir . '/php-http/httplug/src/Exception/HttpException.php', 'Http\\Client\\Exception\\HttpException' => $vendorDir . '/php-http/httplug/src/Exception/HttpException.php',
'Http\\Client\\Exception\\NetworkException' => $vendorDir . '/php-http/httplug/src/Exception/NetworkException.php', 'Http\\Client\\Exception\\NetworkException' => $vendorDir . '/php-http/httplug/src/Exception/NetworkException.php',
@ -992,6 +998,7 @@ return array(
'Http\\Discovery\\Exception' => $vendorDir . '/php-http/discovery/src/Exception.php', 'Http\\Discovery\\Exception' => $vendorDir . '/php-http/discovery/src/Exception.php',
'Http\\Discovery\\Exception\\ClassInstantiationFailedException' => $vendorDir . '/php-http/discovery/src/Exception/ClassInstantiationFailedException.php', 'Http\\Discovery\\Exception\\ClassInstantiationFailedException' => $vendorDir . '/php-http/discovery/src/Exception/ClassInstantiationFailedException.php',
'Http\\Discovery\\Exception\\DiscoveryFailedException' => $vendorDir . '/php-http/discovery/src/Exception/DiscoveryFailedException.php', 'Http\\Discovery\\Exception\\DiscoveryFailedException' => $vendorDir . '/php-http/discovery/src/Exception/DiscoveryFailedException.php',
'Http\\Discovery\\Exception\\NoCandidateFoundException' => $vendorDir . '/php-http/discovery/src/Exception/NoCandidateFoundException.php',
'Http\\Discovery\\Exception\\NotFoundException' => $vendorDir . '/php-http/discovery/src/Exception/NotFoundException.php', 'Http\\Discovery\\Exception\\NotFoundException' => $vendorDir . '/php-http/discovery/src/Exception/NotFoundException.php',
'Http\\Discovery\\Exception\\PuliUnavailableException' => $vendorDir . '/php-http/discovery/src/Exception/PuliUnavailableException.php', 'Http\\Discovery\\Exception\\PuliUnavailableException' => $vendorDir . '/php-http/discovery/src/Exception/PuliUnavailableException.php',
'Http\\Discovery\\Exception\\StrategyUnavailableException' => $vendorDir . '/php-http/discovery/src/Exception/StrategyUnavailableException.php', 'Http\\Discovery\\Exception\\StrategyUnavailableException' => $vendorDir . '/php-http/discovery/src/Exception/StrategyUnavailableException.php',
@ -1581,8 +1588,8 @@ return array(
'Illuminate\\Notifications\\Channels\\BroadcastChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Channels/BroadcastChannel.php', 'Illuminate\\Notifications\\Channels\\BroadcastChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Channels/BroadcastChannel.php',
'Illuminate\\Notifications\\Channels\\DatabaseChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Channels/DatabaseChannel.php', 'Illuminate\\Notifications\\Channels\\DatabaseChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Channels/DatabaseChannel.php',
'Illuminate\\Notifications\\Channels\\MailChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Channels/MailChannel.php', 'Illuminate\\Notifications\\Channels\\MailChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Channels/MailChannel.php',
'Illuminate\\Notifications\\Channels\\NexmoSmsChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Channels/NexmoSmsChannel.php', 'Illuminate\\Notifications\\Channels\\NexmoSmsChannel' => $vendorDir . '/laravel/nexmo-notification-channel/src/Channels/NexmoSmsChannel.php',
'Illuminate\\Notifications\\Channels\\SlackWebhookChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Channels/SlackWebhookChannel.php', 'Illuminate\\Notifications\\Channels\\SlackWebhookChannel' => $vendorDir . '/laravel/slack-notification-channel/src/Channels/SlackWebhookChannel.php',
'Illuminate\\Notifications\\Console\\NotificationTableCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Console/NotificationTableCommand.php', 'Illuminate\\Notifications\\Console\\NotificationTableCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Console/NotificationTableCommand.php',
'Illuminate\\Notifications\\DatabaseNotification' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/DatabaseNotification.php', 'Illuminate\\Notifications\\DatabaseNotification' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/DatabaseNotification.php',
'Illuminate\\Notifications\\DatabaseNotificationCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/DatabaseNotificationCollection.php', 'Illuminate\\Notifications\\DatabaseNotificationCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/DatabaseNotificationCollection.php',
@ -1594,17 +1601,19 @@ return array(
'Illuminate\\Notifications\\Messages\\BroadcastMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/BroadcastMessage.php', 'Illuminate\\Notifications\\Messages\\BroadcastMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/BroadcastMessage.php',
'Illuminate\\Notifications\\Messages\\DatabaseMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/DatabaseMessage.php', 'Illuminate\\Notifications\\Messages\\DatabaseMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/DatabaseMessage.php',
'Illuminate\\Notifications\\Messages\\MailMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/MailMessage.php', 'Illuminate\\Notifications\\Messages\\MailMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/MailMessage.php',
'Illuminate\\Notifications\\Messages\\NexmoMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/NexmoMessage.php', 'Illuminate\\Notifications\\Messages\\NexmoMessage' => $vendorDir . '/laravel/nexmo-notification-channel/src/Messages/NexmoMessage.php',
'Illuminate\\Notifications\\Messages\\SimpleMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/SimpleMessage.php', 'Illuminate\\Notifications\\Messages\\SimpleMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/SimpleMessage.php',
'Illuminate\\Notifications\\Messages\\SlackAttachment' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachment.php', 'Illuminate\\Notifications\\Messages\\SlackAttachment' => $vendorDir . '/laravel/slack-notification-channel/src/Messages/SlackAttachment.php',
'Illuminate\\Notifications\\Messages\\SlackAttachmentField' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachmentField.php', 'Illuminate\\Notifications\\Messages\\SlackAttachmentField' => $vendorDir . '/laravel/slack-notification-channel/src/Messages/SlackAttachmentField.php',
'Illuminate\\Notifications\\Messages\\SlackMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/SlackMessage.php', 'Illuminate\\Notifications\\Messages\\SlackMessage' => $vendorDir . '/laravel/slack-notification-channel/src/Messages/SlackMessage.php',
'Illuminate\\Notifications\\NexmoChannelServiceProvider' => $vendorDir . '/laravel/nexmo-notification-channel/src/NexmoChannelServiceProvider.php',
'Illuminate\\Notifications\\Notifiable' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Notifiable.php', 'Illuminate\\Notifications\\Notifiable' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Notifiable.php',
'Illuminate\\Notifications\\Notification' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Notification.php', 'Illuminate\\Notifications\\Notification' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Notification.php',
'Illuminate\\Notifications\\NotificationSender' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/NotificationSender.php', 'Illuminate\\Notifications\\NotificationSender' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/NotificationSender.php',
'Illuminate\\Notifications\\NotificationServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/NotificationServiceProvider.php', 'Illuminate\\Notifications\\NotificationServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/NotificationServiceProvider.php',
'Illuminate\\Notifications\\RoutesNotifications' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/RoutesNotifications.php', 'Illuminate\\Notifications\\RoutesNotifications' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/RoutesNotifications.php',
'Illuminate\\Notifications\\SendQueuedNotifications' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/SendQueuedNotifications.php', 'Illuminate\\Notifications\\SendQueuedNotifications' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/SendQueuedNotifications.php',
'Illuminate\\Notifications\\SlackChannelServiceProvider' => $vendorDir . '/laravel/slack-notification-channel/src/SlackChannelServiceProvider.php',
'Illuminate\\Pagination\\AbstractPaginator' => $vendorDir . '/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php', 'Illuminate\\Pagination\\AbstractPaginator' => $vendorDir . '/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php',
'Illuminate\\Pagination\\LengthAwarePaginator' => $vendorDir . '/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php', 'Illuminate\\Pagination\\LengthAwarePaginator' => $vendorDir . '/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php',
'Illuminate\\Pagination\\PaginationServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php', 'Illuminate\\Pagination\\PaginationServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php',
@ -1874,6 +1883,37 @@ return array(
'Laravel\\Tinker\\Console\\TinkerCommand' => $vendorDir . '/laravel/tinker/src/Console/TinkerCommand.php', 'Laravel\\Tinker\\Console\\TinkerCommand' => $vendorDir . '/laravel/tinker/src/Console/TinkerCommand.php',
'Laravel\\Tinker\\TinkerCaster' => $vendorDir . '/laravel/tinker/src/TinkerCaster.php', 'Laravel\\Tinker\\TinkerCaster' => $vendorDir . '/laravel/tinker/src/TinkerCaster.php',
'Laravel\\Tinker\\TinkerServiceProvider' => $vendorDir . '/laravel/tinker/src/TinkerServiceProvider.php', 'Laravel\\Tinker\\TinkerServiceProvider' => $vendorDir . '/laravel/tinker/src/TinkerServiceProvider.php',
'Lcobucci\\JWT\\Builder' => $vendorDir . '/lcobucci/jwt/src/Builder.php',
'Lcobucci\\JWT\\Claim' => $vendorDir . '/lcobucci/jwt/src/Claim.php',
'Lcobucci\\JWT\\Claim\\Basic' => $vendorDir . '/lcobucci/jwt/src/Claim/Basic.php',
'Lcobucci\\JWT\\Claim\\EqualsTo' => $vendorDir . '/lcobucci/jwt/src/Claim/EqualsTo.php',
'Lcobucci\\JWT\\Claim\\Factory' => $vendorDir . '/lcobucci/jwt/src/Claim/Factory.php',
'Lcobucci\\JWT\\Claim\\GreaterOrEqualsTo' => $vendorDir . '/lcobucci/jwt/src/Claim/GreaterOrEqualsTo.php',
'Lcobucci\\JWT\\Claim\\LesserOrEqualsTo' => $vendorDir . '/lcobucci/jwt/src/Claim/LesserOrEqualsTo.php',
'Lcobucci\\JWT\\Claim\\Validatable' => $vendorDir . '/lcobucci/jwt/src/Claim/Validatable.php',
'Lcobucci\\JWT\\Parser' => $vendorDir . '/lcobucci/jwt/src/Parser.php',
'Lcobucci\\JWT\\Parsing\\Decoder' => $vendorDir . '/lcobucci/jwt/src/Parsing/Decoder.php',
'Lcobucci\\JWT\\Parsing\\Encoder' => $vendorDir . '/lcobucci/jwt/src/Parsing/Encoder.php',
'Lcobucci\\JWT\\Signature' => $vendorDir . '/lcobucci/jwt/src/Signature.php',
'Lcobucci\\JWT\\Signer' => $vendorDir . '/lcobucci/jwt/src/Signer.php',
'Lcobucci\\JWT\\Signer\\BaseSigner' => $vendorDir . '/lcobucci/jwt/src/Signer/BaseSigner.php',
'Lcobucci\\JWT\\Signer\\Ecdsa' => $vendorDir . '/lcobucci/jwt/src/Signer/Ecdsa.php',
'Lcobucci\\JWT\\Signer\\Ecdsa\\KeyParser' => $vendorDir . '/lcobucci/jwt/src/Signer/Ecdsa/KeyParser.php',
'Lcobucci\\JWT\\Signer\\Ecdsa\\Sha256' => $vendorDir . '/lcobucci/jwt/src/Signer/Ecdsa/Sha256.php',
'Lcobucci\\JWT\\Signer\\Ecdsa\\Sha384' => $vendorDir . '/lcobucci/jwt/src/Signer/Ecdsa/Sha384.php',
'Lcobucci\\JWT\\Signer\\Ecdsa\\Sha512' => $vendorDir . '/lcobucci/jwt/src/Signer/Ecdsa/Sha512.php',
'Lcobucci\\JWT\\Signer\\Hmac' => $vendorDir . '/lcobucci/jwt/src/Signer/Hmac.php',
'Lcobucci\\JWT\\Signer\\Hmac\\Sha256' => $vendorDir . '/lcobucci/jwt/src/Signer/Hmac/Sha256.php',
'Lcobucci\\JWT\\Signer\\Hmac\\Sha384' => $vendorDir . '/lcobucci/jwt/src/Signer/Hmac/Sha384.php',
'Lcobucci\\JWT\\Signer\\Hmac\\Sha512' => $vendorDir . '/lcobucci/jwt/src/Signer/Hmac/Sha512.php',
'Lcobucci\\JWT\\Signer\\Key' => $vendorDir . '/lcobucci/jwt/src/Signer/Key.php',
'Lcobucci\\JWT\\Signer\\Keychain' => $vendorDir . '/lcobucci/jwt/src/Signer/Keychain.php',
'Lcobucci\\JWT\\Signer\\Rsa' => $vendorDir . '/lcobucci/jwt/src/Signer/Rsa.php',
'Lcobucci\\JWT\\Signer\\Rsa\\Sha256' => $vendorDir . '/lcobucci/jwt/src/Signer/Rsa/Sha256.php',
'Lcobucci\\JWT\\Signer\\Rsa\\Sha384' => $vendorDir . '/lcobucci/jwt/src/Signer/Rsa/Sha384.php',
'Lcobucci\\JWT\\Signer\\Rsa\\Sha512' => $vendorDir . '/lcobucci/jwt/src/Signer/Rsa/Sha512.php',
'Lcobucci\\JWT\\Token' => $vendorDir . '/lcobucci/jwt/src/Token.php',
'Lcobucci\\JWT\\ValidationData' => $vendorDir . '/lcobucci/jwt/src/ValidationData.php',
'League\\Flysystem\\AdapterInterface' => $vendorDir . '/league/flysystem/src/AdapterInterface.php', 'League\\Flysystem\\AdapterInterface' => $vendorDir . '/league/flysystem/src/AdapterInterface.php',
'League\\Flysystem\\Adapter\\AbstractAdapter' => $vendorDir . '/league/flysystem/src/Adapter/AbstractAdapter.php', 'League\\Flysystem\\Adapter\\AbstractAdapter' => $vendorDir . '/league/flysystem/src/Adapter/AbstractAdapter.php',
'League\\Flysystem\\Adapter\\AbstractFtpAdapter' => $vendorDir . '/league/flysystem/src/Adapter/AbstractFtpAdapter.php', 'League\\Flysystem\\Adapter\\AbstractFtpAdapter' => $vendorDir . '/league/flysystem/src/Adapter/AbstractFtpAdapter.php',
@ -2049,6 +2089,7 @@ return array(
'Monolog\\Handler\\HandlerWrapper' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php', 'Monolog\\Handler\\HandlerWrapper' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php',
'Monolog\\Handler\\HipChatHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/HipChatHandler.php', 'Monolog\\Handler\\HipChatHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/HipChatHandler.php',
'Monolog\\Handler\\IFTTTHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php', 'Monolog\\Handler\\IFTTTHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php',
'Monolog\\Handler\\InsightOpsHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php',
'Monolog\\Handler\\LogEntriesHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php', 'Monolog\\Handler\\LogEntriesHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php',
'Monolog\\Handler\\LogglyHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/LogglyHandler.php', 'Monolog\\Handler\\LogglyHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/LogglyHandler.php',
'Monolog\\Handler\\MailHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/MailHandler.php', 'Monolog\\Handler\\MailHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/MailHandler.php',
@ -2087,11 +2128,135 @@ return array(
'Monolog\\Processor\\MemoryUsageProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php', 'Monolog\\Processor\\MemoryUsageProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php',
'Monolog\\Processor\\MercurialProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php', 'Monolog\\Processor\\MercurialProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php',
'Monolog\\Processor\\ProcessIdProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php', 'Monolog\\Processor\\ProcessIdProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php',
'Monolog\\Processor\\ProcessorInterface' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php',
'Monolog\\Processor\\PsrLogMessageProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php', 'Monolog\\Processor\\PsrLogMessageProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php',
'Monolog\\Processor\\TagProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/TagProcessor.php', 'Monolog\\Processor\\TagProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/TagProcessor.php',
'Monolog\\Processor\\UidProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/UidProcessor.php', 'Monolog\\Processor\\UidProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/UidProcessor.php',
'Monolog\\Processor\\WebProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/WebProcessor.php', 'Monolog\\Processor\\WebProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/WebProcessor.php',
'Monolog\\Registry' => $vendorDir . '/monolog/monolog/src/Monolog/Registry.php', 'Monolog\\Registry' => $vendorDir . '/monolog/monolog/src/Monolog/Registry.php',
'Monolog\\ResettableInterface' => $vendorDir . '/monolog/monolog/src/Monolog/ResettableInterface.php',
'Monolog\\SignalHandler' => $vendorDir . '/monolog/monolog/src/Monolog/SignalHandler.php',
'Monolog\\Utils' => $vendorDir . '/monolog/monolog/src/Monolog/Utils.php',
'Nexmo\\Account\\Balance' => $vendorDir . '/nexmo/client/src/Account/Balance.php',
'Nexmo\\Account\\Client' => $vendorDir . '/nexmo/client/src/Account/Client.php',
'Nexmo\\Account\\PrefixPrice' => $vendorDir . '/nexmo/client/src/Account/PrefixPrice.php',
'Nexmo\\Account\\Price' => $vendorDir . '/nexmo/client/src/Account/Price.php',
'Nexmo\\Account\\Secret' => $vendorDir . '/nexmo/client/src/Account/Secret.php',
'Nexmo\\Account\\SecretCollection' => $vendorDir . '/nexmo/client/src/Account/SecretCollection.php',
'Nexmo\\Account\\SmsPrice' => $vendorDir . '/nexmo/client/src/Account/SmsPrice.php',
'Nexmo\\Account\\VoicePrice' => $vendorDir . '/nexmo/client/src/Account/VoicePrice.php',
'Nexmo\\ApiErrorHandler' => $vendorDir . '/nexmo/client/src/ApiErrorHandler.php',
'Nexmo\\Application\\Application' => $vendorDir . '/nexmo/client/src/Application/Application.php',
'Nexmo\\Application\\ApplicationInterface' => $vendorDir . '/nexmo/client/src/Application/ApplicationInterface.php',
'Nexmo\\Application\\Client' => $vendorDir . '/nexmo/client/src/Application/Client.php',
'Nexmo\\Application\\Filter' => $vendorDir . '/nexmo/client/src/Application/Filter.php',
'Nexmo\\Application\\VoiceConfig' => $vendorDir . '/nexmo/client/src/Application/VoiceConfig.php',
'Nexmo\\Application\\Webhook' => $vendorDir . '/nexmo/client/src/Application/Webhook.php',
'Nexmo\\Call\\Call' => $vendorDir . '/nexmo/client/src/Call/Call.php',
'Nexmo\\Call\\Collection' => $vendorDir . '/nexmo/client/src/Call/Collection.php',
'Nexmo\\Call\\Dtmf' => $vendorDir . '/nexmo/client/src/Call/Dtmf.php',
'Nexmo\\Call\\Earmuff' => $vendorDir . '/nexmo/client/src/Call/Earmuff.php',
'Nexmo\\Call\\Endpoint' => $vendorDir . '/nexmo/client/src/Call/Endpoint.php',
'Nexmo\\Call\\Event' => $vendorDir . '/nexmo/client/src/Call/Event.php',
'Nexmo\\Call\\Filter' => $vendorDir . '/nexmo/client/src/Call/Filter.php',
'Nexmo\\Call\\Hangup' => $vendorDir . '/nexmo/client/src/Call/Hangup.php',
'Nexmo\\Call\\Mute' => $vendorDir . '/nexmo/client/src/Call/Mute.php',
'Nexmo\\Call\\Stream' => $vendorDir . '/nexmo/client/src/Call/Stream.php',
'Nexmo\\Call\\Talk' => $vendorDir . '/nexmo/client/src/Call/Talk.php',
'Nexmo\\Call\\Transfer' => $vendorDir . '/nexmo/client/src/Call/Transfer.php',
'Nexmo\\Call\\Unearmuff' => $vendorDir . '/nexmo/client/src/Call/Unearmuff.php',
'Nexmo\\Call\\Unmute' => $vendorDir . '/nexmo/client/src/Call/Unmute.php',
'Nexmo\\Call\\Webhook' => $vendorDir . '/nexmo/client/src/Call/Webhook.php',
'Nexmo\\Client' => $vendorDir . '/nexmo/client/src/Client.php',
'Nexmo\\Client\\Callback\\Callback' => $vendorDir . '/nexmo/client/src/Client/Callback/Callback.php',
'Nexmo\\Client\\Callback\\CallbackInterface' => $vendorDir . '/nexmo/client/src/Client/Callback/CallbackInterface.php',
'Nexmo\\Client\\ClientAwareInterface' => $vendorDir . '/nexmo/client/src/Client/ClientAwareInterface.php',
'Nexmo\\Client\\ClientAwareTrait' => $vendorDir . '/nexmo/client/src/Client/ClientAwareTrait.php',
'Nexmo\\Client\\Credentials\\AbstractCredentials' => $vendorDir . '/nexmo/client/src/Client/Credentials/AbstractCredentials.php',
'Nexmo\\Client\\Credentials\\Basic' => $vendorDir . '/nexmo/client/src/Client/Credentials/Basic.php',
'Nexmo\\Client\\Credentials\\Container' => $vendorDir . '/nexmo/client/src/Client/Credentials/Container.php',
'Nexmo\\Client\\Credentials\\CredentialsInterface' => $vendorDir . '/nexmo/client/src/Client/Credentials/CredentialsInterface.php',
'Nexmo\\Client\\Credentials\\Keypair' => $vendorDir . '/nexmo/client/src/Client/Credentials/Keypair.php',
'Nexmo\\Client\\Credentials\\OAuth' => $vendorDir . '/nexmo/client/src/Client/Credentials/OAuth.php',
'Nexmo\\Client\\Credentials\\SignatureSecret' => $vendorDir . '/nexmo/client/src/Client/Credentials/SignatureSecret.php',
'Nexmo\\Client\\Exception\\Exception' => $vendorDir . '/nexmo/client/src/Client/Exception/Exception.php',
'Nexmo\\Client\\Exception\\Request' => $vendorDir . '/nexmo/client/src/Client/Exception/Request.php',
'Nexmo\\Client\\Exception\\Server' => $vendorDir . '/nexmo/client/src/Client/Exception/Server.php',
'Nexmo\\Client\\Exception\\Transport' => $vendorDir . '/nexmo/client/src/Client/Exception/Transport.php',
'Nexmo\\Client\\Exception\\Validation' => $vendorDir . '/nexmo/client/src/Client/Exception/Validation.php',
'Nexmo\\Client\\Factory\\FactoryInterface' => $vendorDir . '/nexmo/client/src/Client/Factory/FactoryInterface.php',
'Nexmo\\Client\\Factory\\MapFactory' => $vendorDir . '/nexmo/client/src/Client/Factory/MapFactory.php',
'Nexmo\\Client\\Request\\AbstractRequest' => $vendorDir . '/nexmo/client/src/Client/Request/AbstractRequest.php',
'Nexmo\\Client\\Request\\RequestInterface' => $vendorDir . '/nexmo/client/src/Client/Request/RequestInterface.php',
'Nexmo\\Client\\Request\\WrapResponseInterface' => $vendorDir . '/nexmo/client/src/Client/Request/WrapResponseInterface.php',
'Nexmo\\Client\\Response\\AbstractResponse' => $vendorDir . '/nexmo/client/src/Client/Response/AbstractResponse.php',
'Nexmo\\Client\\Response\\Error' => $vendorDir . '/nexmo/client/src/Client/Response/Error.php',
'Nexmo\\Client\\Response\\Response' => $vendorDir . '/nexmo/client/src/Client/Response/Response.php',
'Nexmo\\Client\\Response\\ResponseInterface' => $vendorDir . '/nexmo/client/src/Client/Response/ResponseInterface.php',
'Nexmo\\Client\\Signature' => $vendorDir . '/nexmo/client/src/Client/Signature.php',
'Nexmo\\Conversations\\Collection' => $vendorDir . '/nexmo/client/src/Conversations/Collection.php',
'Nexmo\\Conversations\\Conversation' => $vendorDir . '/nexmo/client/src/Conversations/Conversation.php',
'Nexmo\\Conversion\\Client' => $vendorDir . '/nexmo/client/src/Conversion/Client.php',
'Nexmo\\Entity\\ArrayAccessTrait' => $vendorDir . '/nexmo/client/src/Entity/ArrayAccessTrait.php',
'Nexmo\\Entity\\CollectionAwareInterface' => $vendorDir . '/nexmo/client/src/Entity/CollectionAwareInterface.php',
'Nexmo\\Entity\\CollectionAwareTrait' => $vendorDir . '/nexmo/client/src/Entity/CollectionAwareTrait.php',
'Nexmo\\Entity\\CollectionInterface' => $vendorDir . '/nexmo/client/src/Entity/CollectionInterface.php',
'Nexmo\\Entity\\CollectionTrait' => $vendorDir . '/nexmo/client/src/Entity/CollectionTrait.php',
'Nexmo\\Entity\\EmptyFilter' => $vendorDir . '/nexmo/client/src/Entity/EmptyFilter.php',
'Nexmo\\Entity\\EntityInterface' => $vendorDir . '/nexmo/client/src/Entity/EntityInterface.php',
'Nexmo\\Entity\\FilterInterface' => $vendorDir . '/nexmo/client/src/Entity/FilterInterface.php',
'Nexmo\\Entity\\HasEntityTrait' => $vendorDir . '/nexmo/client/src/Entity/HasEntityTrait.php',
'Nexmo\\Entity\\JsonResponseTrait' => $vendorDir . '/nexmo/client/src/Entity/JsonResponseTrait.php',
'Nexmo\\Entity\\JsonSerializableInterface' => $vendorDir . '/nexmo/client/src/Entity/JsonSerializableInterface.php',
'Nexmo\\Entity\\JsonSerializableTrait' => $vendorDir . '/nexmo/client/src/Entity/JsonSerializableTrait.php',
'Nexmo\\Entity\\JsonUnserializableInterface' => $vendorDir . '/nexmo/client/src/Entity/JsonUnserializableInterface.php',
'Nexmo\\Entity\\NoRequestResponseTrait' => $vendorDir . '/nexmo/client/src/Entity/NoRequestResponseTrait.php',
'Nexmo\\Entity\\Psr7Trait' => $vendorDir . '/nexmo/client/src/Entity/Psr7Trait.php',
'Nexmo\\Entity\\RequestArrayTrait' => $vendorDir . '/nexmo/client/src/Entity/RequestArrayTrait.php',
'Nexmo\\Insights\\Advanced' => $vendorDir . '/nexmo/client/src/Insights/Advanced.php',
'Nexmo\\Insights\\AdvancedCnam' => $vendorDir . '/nexmo/client/src/Insights/AdvancedCnam.php',
'Nexmo\\Insights\\Basic' => $vendorDir . '/nexmo/client/src/Insights/Basic.php',
'Nexmo\\Insights\\Client' => $vendorDir . '/nexmo/client/src/Insights/Client.php',
'Nexmo\\Insights\\CnamTrait' => $vendorDir . '/nexmo/client/src/Insights/CnamTrait.php',
'Nexmo\\Insights\\Standard' => $vendorDir . '/nexmo/client/src/Insights/Standard.php',
'Nexmo\\Insights\\StandardCnam' => $vendorDir . '/nexmo/client/src/Insights/StandardCnam.php',
'Nexmo\\InvalidResponseException' => $vendorDir . '/nexmo/client/src/InvalidResponseException.php',
'Nexmo\\Message\\AutoDetect' => $vendorDir . '/nexmo/client/src/Message/AutoDetect.php',
'Nexmo\\Message\\Binary' => $vendorDir . '/nexmo/client/src/Message/Binary.php',
'Nexmo\\Message\\Callback\\Receipt' => $vendorDir . '/nexmo/client/src/Message/Callback/Receipt.php',
'Nexmo\\Message\\Client' => $vendorDir . '/nexmo/client/src/Message/Client.php',
'Nexmo\\Message\\CollectionTrait' => $vendorDir . '/nexmo/client/src/Message/CollectionTrait.php',
'Nexmo\\Message\\EncodingDetector' => $vendorDir . '/nexmo/client/src/Message/EncodingDetector.php',
'Nexmo\\Message\\InboundMessage' => $vendorDir . '/nexmo/client/src/Message/InboundMessage.php',
'Nexmo\\Message\\Message' => $vendorDir . '/nexmo/client/src/Message/Message.php',
'Nexmo\\Message\\MessageInterface' => $vendorDir . '/nexmo/client/src/Message/MessageInterface.php',
'Nexmo\\Message\\Query' => $vendorDir . '/nexmo/client/src/Message/Query.php',
'Nexmo\\Message\\Response\\Collection' => $vendorDir . '/nexmo/client/src/Message/Response/Collection.php',
'Nexmo\\Message\\Response\\Message' => $vendorDir . '/nexmo/client/src/Message/Response/Message.php',
'Nexmo\\Message\\Text' => $vendorDir . '/nexmo/client/src/Message/Text.php',
'Nexmo\\Message\\Unicode' => $vendorDir . '/nexmo/client/src/Message/Unicode.php',
'Nexmo\\Message\\Vcal' => $vendorDir . '/nexmo/client/src/Message/Vcal.php',
'Nexmo\\Message\\Vcard' => $vendorDir . '/nexmo/client/src/Message/Vcard.php',
'Nexmo\\Message\\Wap' => $vendorDir . '/nexmo/client/src/Message/Wap.php',
'Nexmo\\Network' => $vendorDir . '/nexmo/client/src/Network.php',
'Nexmo\\Network\\Number\\Callback' => $vendorDir . '/nexmo/client/src/Network/Number/Callback.php',
'Nexmo\\Network\\Number\\Request' => $vendorDir . '/nexmo/client/src/Network/Number/Request.php',
'Nexmo\\Network\\Number\\Response' => $vendorDir . '/nexmo/client/src/Network/Number/Response.php',
'Nexmo\\Numbers\\Client' => $vendorDir . '/nexmo/client/src/Numbers/Client.php',
'Nexmo\\Numbers\\Number' => $vendorDir . '/nexmo/client/src/Numbers/Number.php',
'Nexmo\\Redact\\Client' => $vendorDir . '/nexmo/client/src/Redact/Client.php',
'Nexmo\\Response' => $vendorDir . '/nexmo/client/src/Response.php',
'Nexmo\\Response\\Message' => $vendorDir . '/nexmo/client/src/Response/Message.php',
'Nexmo\\User\\Collection' => $vendorDir . '/nexmo/client/src/User/Collection.php',
'Nexmo\\User\\User' => $vendorDir . '/nexmo/client/src/User/User.php',
'Nexmo\\Verify\\Check' => $vendorDir . '/nexmo/client/src/Verify/Check.php',
'Nexmo\\Verify\\Client' => $vendorDir . '/nexmo/client/src/Verify/Client.php',
'Nexmo\\Verify\\Verification' => $vendorDir . '/nexmo/client/src/Verify/Verification.php',
'Nexmo\\Verify\\VerificationInterface' => $vendorDir . '/nexmo/client/src/Verify/VerificationInterface.php',
'Nexmo\\Voice\\Call\\Call' => $vendorDir . '/nexmo/client/src/Voice/Call/Call.php',
'Nexmo\\Voice\\Call\\Inbound' => $vendorDir . '/nexmo/client/src/Voice/Call/Inbound.php',
'Nexmo\\Voice\\Message\\Callback' => $vendorDir . '/nexmo/client/src/Voice/Message/Callback.php',
'Nexmo\\Voice\\Message\\Message' => $vendorDir . '/nexmo/client/src/Voice/Message/Message.php',
'Opis\\Closure\\Analyzer' => $vendorDir . '/opis/closure/src/Analyzer.php', 'Opis\\Closure\\Analyzer' => $vendorDir . '/opis/closure/src/Analyzer.php',
'Opis\\Closure\\ClosureContext' => $vendorDir . '/opis/closure/src/ClosureContext.php', 'Opis\\Closure\\ClosureContext' => $vendorDir . '/opis/closure/src/ClosureContext.php',
'Opis\\Closure\\ClosureScope' => $vendorDir . '/opis/closure/src/ClosureScope.php', 'Opis\\Closure\\ClosureScope' => $vendorDir . '/opis/closure/src/ClosureScope.php',
@ -2869,6 +3034,7 @@ return array(
'Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/Psr/Log/NullLogger.php', 'Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/Psr/Log/NullLogger.php',
'Psr\\Log\\Test\\DummyTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', 'Psr\\Log\\Test\\DummyTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
'Psr\\Log\\Test\\LoggerInterfaceTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', 'Psr\\Log\\Test\\LoggerInterfaceTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
'Psr\\Log\\Test\\TestLogger' => $vendorDir . '/psr/log/Psr/Log/Test/TestLogger.php',
'Psr\\SimpleCache\\CacheException' => $vendorDir . '/psr/simple-cache/src/CacheException.php', 'Psr\\SimpleCache\\CacheException' => $vendorDir . '/psr/simple-cache/src/CacheException.php',
'Psr\\SimpleCache\\CacheInterface' => $vendorDir . '/psr/simple-cache/src/CacheInterface.php', 'Psr\\SimpleCache\\CacheInterface' => $vendorDir . '/psr/simple-cache/src/CacheInterface.php',
'Psr\\SimpleCache\\InvalidArgumentException' => $vendorDir . '/psr/simple-cache/src/InvalidArgumentException.php', 'Psr\\SimpleCache\\InvalidArgumentException' => $vendorDir . '/psr/simple-cache/src/InvalidArgumentException.php',
@ -3183,6 +3349,7 @@ return array(
'Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyle.php', 'Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyle.php',
'Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleInterface.php', 'Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleInterface.php',
'Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleStack.php', 'Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleStack.php',
'Symfony\\Component\\Console\\Formatter\\WrappableOutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/WrappableOutputFormatterInterface.php',
'Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => $vendorDir . '/symfony/console/Helper/DebugFormatterHelper.php', 'Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => $vendorDir . '/symfony/console/Helper/DebugFormatterHelper.php',
'Symfony\\Component\\Console\\Helper\\DescriptorHelper' => $vendorDir . '/symfony/console/Helper/DescriptorHelper.php', 'Symfony\\Component\\Console\\Helper\\DescriptorHelper' => $vendorDir . '/symfony/console/Helper/DescriptorHelper.php',
'Symfony\\Component\\Console\\Helper\\FormatterHelper' => $vendorDir . '/symfony/console/Helper/FormatterHelper.php', 'Symfony\\Component\\Console\\Helper\\FormatterHelper' => $vendorDir . '/symfony/console/Helper/FormatterHelper.php',
@ -3379,6 +3546,7 @@ return array(
'Symfony\\Component\\HttpFoundation\\Session\\SessionBagInterface' => $vendorDir . '/symfony/http-foundation/Session/SessionBagInterface.php', 'Symfony\\Component\\HttpFoundation\\Session\\SessionBagInterface' => $vendorDir . '/symfony/http-foundation/Session/SessionBagInterface.php',
'Symfony\\Component\\HttpFoundation\\Session\\SessionBagProxy' => $vendorDir . '/symfony/http-foundation/Session/SessionBagProxy.php', 'Symfony\\Component\\HttpFoundation\\Session\\SessionBagProxy' => $vendorDir . '/symfony/http-foundation/Session/SessionBagProxy.php',
'Symfony\\Component\\HttpFoundation\\Session\\SessionInterface' => $vendorDir . '/symfony/http-foundation/Session/SessionInterface.php', 'Symfony\\Component\\HttpFoundation\\Session\\SessionInterface' => $vendorDir . '/symfony/http-foundation/Session/SessionInterface.php',
'Symfony\\Component\\HttpFoundation\\Session\\SessionUtils' => $vendorDir . '/symfony/http-foundation/Session/SessionUtils.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\AbstractSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\AbstractSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MemcachedSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MemcachedSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MigratingSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/MigratingSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MigratingSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/MigratingSessionHandler.php',
@ -3484,6 +3652,7 @@ return array(
'Symfony\\Component\\HttpKernel\\Exception\\AccessDeniedHttpException' => $vendorDir . '/symfony/http-kernel/Exception/AccessDeniedHttpException.php', 'Symfony\\Component\\HttpKernel\\Exception\\AccessDeniedHttpException' => $vendorDir . '/symfony/http-kernel/Exception/AccessDeniedHttpException.php',
'Symfony\\Component\\HttpKernel\\Exception\\BadRequestHttpException' => $vendorDir . '/symfony/http-kernel/Exception/BadRequestHttpException.php', 'Symfony\\Component\\HttpKernel\\Exception\\BadRequestHttpException' => $vendorDir . '/symfony/http-kernel/Exception/BadRequestHttpException.php',
'Symfony\\Component\\HttpKernel\\Exception\\ConflictHttpException' => $vendorDir . '/symfony/http-kernel/Exception/ConflictHttpException.php', 'Symfony\\Component\\HttpKernel\\Exception\\ConflictHttpException' => $vendorDir . '/symfony/http-kernel/Exception/ConflictHttpException.php',
'Symfony\\Component\\HttpKernel\\Exception\\ControllerDoesNotReturnResponseException' => $vendorDir . '/symfony/http-kernel/Exception/ControllerDoesNotReturnResponseException.php',
'Symfony\\Component\\HttpKernel\\Exception\\GoneHttpException' => $vendorDir . '/symfony/http-kernel/Exception/GoneHttpException.php', 'Symfony\\Component\\HttpKernel\\Exception\\GoneHttpException' => $vendorDir . '/symfony/http-kernel/Exception/GoneHttpException.php',
'Symfony\\Component\\HttpKernel\\Exception\\HttpException' => $vendorDir . '/symfony/http-kernel/Exception/HttpException.php', 'Symfony\\Component\\HttpKernel\\Exception\\HttpException' => $vendorDir . '/symfony/http-kernel/Exception/HttpException.php',
'Symfony\\Component\\HttpKernel\\Exception\\HttpExceptionInterface' => $vendorDir . '/symfony/http-kernel/Exception/HttpExceptionInterface.php', 'Symfony\\Component\\HttpKernel\\Exception\\HttpExceptionInterface' => $vendorDir . '/symfony/http-kernel/Exception/HttpExceptionInterface.php',
@ -3596,6 +3765,7 @@ return array(
'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumper' => $vendorDir . '/symfony/routing/Matcher/Dumper/MatcherDumper.php', 'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumper' => $vendorDir . '/symfony/routing/Matcher/Dumper/MatcherDumper.php',
'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumperInterface' => $vendorDir . '/symfony/routing/Matcher/Dumper/MatcherDumperInterface.php', 'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumperInterface' => $vendorDir . '/symfony/routing/Matcher/Dumper/MatcherDumperInterface.php',
'Symfony\\Component\\Routing\\Matcher\\Dumper\\PhpMatcherDumper' => $vendorDir . '/symfony/routing/Matcher/Dumper/PhpMatcherDumper.php', 'Symfony\\Component\\Routing\\Matcher\\Dumper\\PhpMatcherDumper' => $vendorDir . '/symfony/routing/Matcher/Dumper/PhpMatcherDumper.php',
'Symfony\\Component\\Routing\\Matcher\\Dumper\\PhpMatcherTrait' => $vendorDir . '/symfony/routing/Matcher/Dumper/PhpMatcherTrait.php',
'Symfony\\Component\\Routing\\Matcher\\Dumper\\StaticPrefixCollection' => $vendorDir . '/symfony/routing/Matcher/Dumper/StaticPrefixCollection.php', 'Symfony\\Component\\Routing\\Matcher\\Dumper\\StaticPrefixCollection' => $vendorDir . '/symfony/routing/Matcher/Dumper/StaticPrefixCollection.php',
'Symfony\\Component\\Routing\\Matcher\\RedirectableUrlMatcher' => $vendorDir . '/symfony/routing/Matcher/RedirectableUrlMatcher.php', 'Symfony\\Component\\Routing\\Matcher\\RedirectableUrlMatcher' => $vendorDir . '/symfony/routing/Matcher/RedirectableUrlMatcher.php',
'Symfony\\Component\\Routing\\Matcher\\RedirectableUrlMatcherInterface' => $vendorDir . '/symfony/routing/Matcher/RedirectableUrlMatcherInterface.php', 'Symfony\\Component\\Routing\\Matcher\\RedirectableUrlMatcherInterface' => $vendorDir . '/symfony/routing/Matcher/RedirectableUrlMatcherInterface.php',
@ -3646,6 +3816,8 @@ return array(
'Symfony\\Component\\Translation\\Extractor\\PhpExtractor' => $vendorDir . '/symfony/translation/Extractor/PhpExtractor.php', 'Symfony\\Component\\Translation\\Extractor\\PhpExtractor' => $vendorDir . '/symfony/translation/Extractor/PhpExtractor.php',
'Symfony\\Component\\Translation\\Extractor\\PhpStringTokenParser' => $vendorDir . '/symfony/translation/Extractor/PhpStringTokenParser.php', 'Symfony\\Component\\Translation\\Extractor\\PhpStringTokenParser' => $vendorDir . '/symfony/translation/Extractor/PhpStringTokenParser.php',
'Symfony\\Component\\Translation\\Formatter\\ChoiceMessageFormatterInterface' => $vendorDir . '/symfony/translation/Formatter/ChoiceMessageFormatterInterface.php', 'Symfony\\Component\\Translation\\Formatter\\ChoiceMessageFormatterInterface' => $vendorDir . '/symfony/translation/Formatter/ChoiceMessageFormatterInterface.php',
'Symfony\\Component\\Translation\\Formatter\\IntlFormatter' => $vendorDir . '/symfony/translation/Formatter/IntlFormatter.php',
'Symfony\\Component\\Translation\\Formatter\\IntlFormatterInterface' => $vendorDir . '/symfony/translation/Formatter/IntlFormatterInterface.php',
'Symfony\\Component\\Translation\\Formatter\\MessageFormatter' => $vendorDir . '/symfony/translation/Formatter/MessageFormatter.php', 'Symfony\\Component\\Translation\\Formatter\\MessageFormatter' => $vendorDir . '/symfony/translation/Formatter/MessageFormatter.php',
'Symfony\\Component\\Translation\\Formatter\\MessageFormatterInterface' => $vendorDir . '/symfony/translation/Formatter/MessageFormatterInterface.php', 'Symfony\\Component\\Translation\\Formatter\\MessageFormatterInterface' => $vendorDir . '/symfony/translation/Formatter/MessageFormatterInterface.php',
'Symfony\\Component\\Translation\\IdentityTranslator' => $vendorDir . '/symfony/translation/IdentityTranslator.php', 'Symfony\\Component\\Translation\\IdentityTranslator' => $vendorDir . '/symfony/translation/IdentityTranslator.php',
@ -3676,6 +3848,7 @@ return array(
'Symfony\\Component\\Translation\\TranslatorBagInterface' => $vendorDir . '/symfony/translation/TranslatorBagInterface.php', 'Symfony\\Component\\Translation\\TranslatorBagInterface' => $vendorDir . '/symfony/translation/TranslatorBagInterface.php',
'Symfony\\Component\\Translation\\TranslatorInterface' => $vendorDir . '/symfony/translation/TranslatorInterface.php', 'Symfony\\Component\\Translation\\TranslatorInterface' => $vendorDir . '/symfony/translation/TranslatorInterface.php',
'Symfony\\Component\\Translation\\Util\\ArrayConverter' => $vendorDir . '/symfony/translation/Util/ArrayConverter.php', 'Symfony\\Component\\Translation\\Util\\ArrayConverter' => $vendorDir . '/symfony/translation/Util/ArrayConverter.php',
'Symfony\\Component\\Translation\\Util\\XliffUtils' => $vendorDir . '/symfony/translation/Util/XliffUtils.php',
'Symfony\\Component\\Translation\\Writer\\TranslationWriter' => $vendorDir . '/symfony/translation/Writer/TranslationWriter.php', 'Symfony\\Component\\Translation\\Writer\\TranslationWriter' => $vendorDir . '/symfony/translation/Writer/TranslationWriter.php',
'Symfony\\Component\\Translation\\Writer\\TranslationWriterInterface' => $vendorDir . '/symfony/translation/Writer/TranslationWriterInterface.php', 'Symfony\\Component\\Translation\\Writer\\TranslationWriterInterface' => $vendorDir . '/symfony/translation/Writer/TranslationWriterInterface.php',
'Symfony\\Component\\VarDumper\\Caster\\AmqpCaster' => $vendorDir . '/symfony/var-dumper/Caster/AmqpCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\AmqpCaster' => $vendorDir . '/symfony/var-dumper/Caster/AmqpCaster.php',
@ -3692,9 +3865,12 @@ return array(
'Symfony\\Component\\VarDumper\\Caster\\ExceptionCaster' => $vendorDir . '/symfony/var-dumper/Caster/ExceptionCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\ExceptionCaster' => $vendorDir . '/symfony/var-dumper/Caster/ExceptionCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\FrameStub' => $vendorDir . '/symfony/var-dumper/Caster/FrameStub.php', 'Symfony\\Component\\VarDumper\\Caster\\FrameStub' => $vendorDir . '/symfony/var-dumper/Caster/FrameStub.php',
'Symfony\\Component\\VarDumper\\Caster\\GmpCaster' => $vendorDir . '/symfony/var-dumper/Caster/GmpCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\GmpCaster' => $vendorDir . '/symfony/var-dumper/Caster/GmpCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\IntlCaster' => $vendorDir . '/symfony/var-dumper/Caster/IntlCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\LinkStub' => $vendorDir . '/symfony/var-dumper/Caster/LinkStub.php', 'Symfony\\Component\\VarDumper\\Caster\\LinkStub' => $vendorDir . '/symfony/var-dumper/Caster/LinkStub.php',
'Symfony\\Component\\VarDumper\\Caster\\MemcachedCaster' => $vendorDir . '/symfony/var-dumper/Caster/MemcachedCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\PdoCaster' => $vendorDir . '/symfony/var-dumper/Caster/PdoCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\PdoCaster' => $vendorDir . '/symfony/var-dumper/Caster/PdoCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\PgSqlCaster' => $vendorDir . '/symfony/var-dumper/Caster/PgSqlCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\PgSqlCaster' => $vendorDir . '/symfony/var-dumper/Caster/PgSqlCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\ProxyManagerCaster' => $vendorDir . '/symfony/var-dumper/Caster/ProxyManagerCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\RedisCaster' => $vendorDir . '/symfony/var-dumper/Caster/RedisCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\RedisCaster' => $vendorDir . '/symfony/var-dumper/Caster/RedisCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\ReflectionCaster' => $vendorDir . '/symfony/var-dumper/Caster/ReflectionCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\ReflectionCaster' => $vendorDir . '/symfony/var-dumper/Caster/ReflectionCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\ResourceCaster' => $vendorDir . '/symfony/var-dumper/Caster/ResourceCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\ResourceCaster' => $vendorDir . '/symfony/var-dumper/Caster/ResourceCaster.php',
@ -3729,6 +3905,26 @@ return array(
'Symfony\\Component\\VarDumper\\Server\\DumpServer' => $vendorDir . '/symfony/var-dumper/Server/DumpServer.php', 'Symfony\\Component\\VarDumper\\Server\\DumpServer' => $vendorDir . '/symfony/var-dumper/Server/DumpServer.php',
'Symfony\\Component\\VarDumper\\Test\\VarDumperTestTrait' => $vendorDir . '/symfony/var-dumper/Test/VarDumperTestTrait.php', 'Symfony\\Component\\VarDumper\\Test\\VarDumperTestTrait' => $vendorDir . '/symfony/var-dumper/Test/VarDumperTestTrait.php',
'Symfony\\Component\\VarDumper\\VarDumper' => $vendorDir . '/symfony/var-dumper/VarDumper.php', 'Symfony\\Component\\VarDumper\\VarDumper' => $vendorDir . '/symfony/var-dumper/VarDumper.php',
'Symfony\\Contracts\\Cache\\CacheInterface' => $vendorDir . '/symfony/contracts/Cache/CacheInterface.php',
'Symfony\\Contracts\\Cache\\CacheTrait' => $vendorDir . '/symfony/contracts/Cache/CacheTrait.php',
'Symfony\\Contracts\\Cache\\CallbackInterface' => $vendorDir . '/symfony/contracts/Cache/CallbackInterface.php',
'Symfony\\Contracts\\Cache\\ItemInterface' => $vendorDir . '/symfony/contracts/Cache/ItemInterface.php',
'Symfony\\Contracts\\Cache\\TagAwareCacheInterface' => $vendorDir . '/symfony/contracts/Cache/TagAwareCacheInterface.php',
'Symfony\\Contracts\\Service\\ResetInterface' => $vendorDir . '/symfony/contracts/Service/ResetInterface.php',
'Symfony\\Contracts\\Service\\ServiceLocatorTrait' => $vendorDir . '/symfony/contracts/Service/ServiceLocatorTrait.php',
'Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => $vendorDir . '/symfony/contracts/Service/ServiceSubscriberInterface.php',
'Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => $vendorDir . '/symfony/contracts/Service/ServiceSubscriberTrait.php',
'Symfony\\Contracts\\Tests\\Cache\\CacheTraitTest' => $vendorDir . '/symfony/contracts/Tests/Cache/CacheTraitTest.php',
'Symfony\\Contracts\\Tests\\Cache\\TestPool' => $vendorDir . '/symfony/contracts/Tests/Cache/CacheTraitTest.php',
'Symfony\\Contracts\\Tests\\Service\\ChildTestService' => $vendorDir . '/symfony/contracts/Tests/Service/ServiceSubscriberTraitTest.php',
'Symfony\\Contracts\\Tests\\Service\\ParentTestService' => $vendorDir . '/symfony/contracts/Tests/Service/ServiceSubscriberTraitTest.php',
'Symfony\\Contracts\\Tests\\Service\\ServiceLocatorTest' => $vendorDir . '/symfony/contracts/Tests/Service/ServiceLocatorTest.php',
'Symfony\\Contracts\\Tests\\Service\\ServiceSubscriberTraitTest' => $vendorDir . '/symfony/contracts/Tests/Service/ServiceSubscriberTraitTest.php',
'Symfony\\Contracts\\Tests\\Service\\TestService' => $vendorDir . '/symfony/contracts/Tests/Service/ServiceSubscriberTraitTest.php',
'Symfony\\Contracts\\Tests\\Translation\\TranslatorTest' => $vendorDir . '/symfony/contracts/Tests/Translation/TranslatorTest.php',
'Symfony\\Contracts\\Translation\\LocaleAwareInterface' => $vendorDir . '/symfony/contracts/Translation/LocaleAwareInterface.php',
'Symfony\\Contracts\\Translation\\TranslatorInterface' => $vendorDir . '/symfony/contracts/Translation/TranslatorInterface.php',
'Symfony\\Contracts\\Translation\\TranslatorTrait' => $vendorDir . '/symfony/contracts/Translation/TranslatorTrait.php',
'Symfony\\Polyfill\\Ctype\\Ctype' => $vendorDir . '/symfony/polyfill-ctype/Ctype.php', 'Symfony\\Polyfill\\Ctype\\Ctype' => $vendorDir . '/symfony/polyfill-ctype/Ctype.php',
'Symfony\\Polyfill\\Mbstring\\Mbstring' => $vendorDir . '/symfony/polyfill-mbstring/Mbstring.php', 'Symfony\\Polyfill\\Mbstring\\Mbstring' => $vendorDir . '/symfony/polyfill-mbstring/Mbstring.php',
'Symfony\\Polyfill\\Php72\\Php72' => $vendorDir . '/symfony/polyfill-php72/Php72.php', 'Symfony\\Polyfill\\Php72\\Php72' => $vendorDir . '/symfony/polyfill-php72/Php72.php',
@ -3775,6 +3971,38 @@ return array(
'Whoops\\Util\\SystemFacade' => $vendorDir . '/filp/whoops/src/Whoops/Util/SystemFacade.php', 'Whoops\\Util\\SystemFacade' => $vendorDir . '/filp/whoops/src/Whoops/Util/SystemFacade.php',
'Whoops\\Util\\TemplateHelper' => $vendorDir . '/filp/whoops/src/Whoops/Util/TemplateHelper.php', 'Whoops\\Util\\TemplateHelper' => $vendorDir . '/filp/whoops/src/Whoops/Util/TemplateHelper.php',
'XdgBaseDir\\Xdg' => $vendorDir . '/dnoegel/php-xdg-base-dir/src/Xdg.php', 'XdgBaseDir\\Xdg' => $vendorDir . '/dnoegel/php-xdg-base-dir/src/Xdg.php',
'Zend\\Diactoros\\AbstractSerializer' => $vendorDir . '/zendframework/zend-diactoros/src/AbstractSerializer.php',
'Zend\\Diactoros\\CallbackStream' => $vendorDir . '/zendframework/zend-diactoros/src/CallbackStream.php',
'Zend\\Diactoros\\Exception\\DeprecatedMethodException' => $vendorDir . '/zendframework/zend-diactoros/src/Exception/DeprecatedMethodException.php',
'Zend\\Diactoros\\Exception\\ExceptionInterface' => $vendorDir . '/zendframework/zend-diactoros/src/Exception/ExceptionInterface.php',
'Zend\\Diactoros\\HeaderSecurity' => $vendorDir . '/zendframework/zend-diactoros/src/HeaderSecurity.php',
'Zend\\Diactoros\\MessageTrait' => $vendorDir . '/zendframework/zend-diactoros/src/MessageTrait.php',
'Zend\\Diactoros\\PhpInputStream' => $vendorDir . '/zendframework/zend-diactoros/src/PhpInputStream.php',
'Zend\\Diactoros\\RelativeStream' => $vendorDir . '/zendframework/zend-diactoros/src/RelativeStream.php',
'Zend\\Diactoros\\Request' => $vendorDir . '/zendframework/zend-diactoros/src/Request.php',
'Zend\\Diactoros\\RequestTrait' => $vendorDir . '/zendframework/zend-diactoros/src/RequestTrait.php',
'Zend\\Diactoros\\Request\\ArraySerializer' => $vendorDir . '/zendframework/zend-diactoros/src/Request/ArraySerializer.php',
'Zend\\Diactoros\\Request\\Serializer' => $vendorDir . '/zendframework/zend-diactoros/src/Request/Serializer.php',
'Zend\\Diactoros\\Response' => $vendorDir . '/zendframework/zend-diactoros/src/Response.php',
'Zend\\Diactoros\\Response\\ArraySerializer' => $vendorDir . '/zendframework/zend-diactoros/src/Response/ArraySerializer.php',
'Zend\\Diactoros\\Response\\EmitterInterface' => $vendorDir . '/zendframework/zend-diactoros/src/Response/EmitterInterface.php',
'Zend\\Diactoros\\Response\\EmptyResponse' => $vendorDir . '/zendframework/zend-diactoros/src/Response/EmptyResponse.php',
'Zend\\Diactoros\\Response\\HtmlResponse' => $vendorDir . '/zendframework/zend-diactoros/src/Response/HtmlResponse.php',
'Zend\\Diactoros\\Response\\InjectContentTypeTrait' => $vendorDir . '/zendframework/zend-diactoros/src/Response/InjectContentTypeTrait.php',
'Zend\\Diactoros\\Response\\JsonResponse' => $vendorDir . '/zendframework/zend-diactoros/src/Response/JsonResponse.php',
'Zend\\Diactoros\\Response\\RedirectResponse' => $vendorDir . '/zendframework/zend-diactoros/src/Response/RedirectResponse.php',
'Zend\\Diactoros\\Response\\SapiEmitter' => $vendorDir . '/zendframework/zend-diactoros/src/Response/SapiEmitter.php',
'Zend\\Diactoros\\Response\\SapiEmitterTrait' => $vendorDir . '/zendframework/zend-diactoros/src/Response/SapiEmitterTrait.php',
'Zend\\Diactoros\\Response\\SapiStreamEmitter' => $vendorDir . '/zendframework/zend-diactoros/src/Response/SapiStreamEmitter.php',
'Zend\\Diactoros\\Response\\Serializer' => $vendorDir . '/zendframework/zend-diactoros/src/Response/Serializer.php',
'Zend\\Diactoros\\Response\\TextResponse' => $vendorDir . '/zendframework/zend-diactoros/src/Response/TextResponse.php',
'Zend\\Diactoros\\Response\\XmlResponse' => $vendorDir . '/zendframework/zend-diactoros/src/Response/XmlResponse.php',
'Zend\\Diactoros\\Server' => $vendorDir . '/zendframework/zend-diactoros/src/Server.php',
'Zend\\Diactoros\\ServerRequest' => $vendorDir . '/zendframework/zend-diactoros/src/ServerRequest.php',
'Zend\\Diactoros\\ServerRequestFactory' => $vendorDir . '/zendframework/zend-diactoros/src/ServerRequestFactory.php',
'Zend\\Diactoros\\Stream' => $vendorDir . '/zendframework/zend-diactoros/src/Stream.php',
'Zend\\Diactoros\\UploadedFile' => $vendorDir . '/zendframework/zend-diactoros/src/UploadedFile.php',
'Zend\\Diactoros\\Uri' => $vendorDir . '/zendframework/zend-diactoros/src/Uri.php',
'phpDocumentor\\Reflection\\DocBlock' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock.php', 'phpDocumentor\\Reflection\\DocBlock' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock.php',
'phpDocumentor\\Reflection\\DocBlockFactory' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlockFactory.php', 'phpDocumentor\\Reflection\\DocBlockFactory' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlockFactory.php',
'phpDocumentor\\Reflection\\DocBlockFactoryInterface' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php', 'phpDocumentor\\Reflection\\DocBlockFactoryInterface' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php',

View file

@ -7,20 +7,29 @@ $baseDir = dirname($vendorDir);
return array( return array(
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php', '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
'7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php',
'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php', 'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php',
'cf97c57bfe0f23854afd2f3818abb7a0' => $vendorDir . '/zendframework/zend-diactoros/src/functions/create_uploaded_file.php',
'9bf37a3d0dad93e29cb4e1b1bfab04e9' => $vendorDir . '/zendframework/zend-diactoros/src/functions/marshal_headers_from_sapi.php',
'ce70dccb4bcc2efc6e94d2ee526e6972' => $vendorDir . '/zendframework/zend-diactoros/src/functions/marshal_method_from_sapi.php',
'f86420df471f14d568bfcb71e271b523' => $vendorDir . '/zendframework/zend-diactoros/src/functions/marshal_protocol_version_from_sapi.php',
'b87481e008a3700344428ae089e7f9e5' => $vendorDir . '/zendframework/zend-diactoros/src/functions/marshal_uri_from_sapi.php',
'0b0974a5566a1077e4f2e111341112c1' => $vendorDir . '/zendframework/zend-diactoros/src/functions/normalize_server.php',
'1ca3bc274755662169f9629d5412a1da' => $vendorDir . '/zendframework/zend-diactoros/src/functions/normalize_uploaded_files.php',
'40360c0b9b437e69bcbb7f1349ce029e' => $vendorDir . '/zendframework/zend-diactoros/src/functions/parse_cookie_header.php',
'25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php', '25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
'ddc0a4d7e61c0286f0f8593b1903e894' => $vendorDir . '/clue/stream-filter/src/functions.php', 'ddc0a4d7e61c0286f0f8593b1903e894' => $vendorDir . '/clue/stream-filter/src/functions.php',
'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php',
'667aeda72477189d0494fecd327c3641' => $vendorDir . '/symfony/var-dumper/Resources/functions/dump.php', '667aeda72477189d0494fecd327c3641' => $vendorDir . '/symfony/var-dumper/Resources/functions/dump.php',
'37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php',
'8cff32064859f4559445b89279f3199c' => $vendorDir . '/php-http/message/src/filters.php', '8cff32064859f4559445b89279f3199c' => $vendorDir . '/php-http/message/src/filters.php',
'320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php', '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php',
'37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php',
'2c102faa651ef8ea5874edb585946bce' => $vendorDir . '/swiftmailer/swiftmailer/lib/swift_required.php', '2c102faa651ef8ea5874edb585946bce' => $vendorDir . '/swiftmailer/swiftmailer/lib/swift_required.php',
'6124b4c8570aa390c21fafd04a26c69f' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php', '6124b4c8570aa390c21fafd04a26c69f' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',
'538ca81a9a966a6716601ecf48f4eaef' => $vendorDir . '/opis/closure/functions.php',
'801c31d8ed748cfa537fa45402288c95' => $vendorDir . '/psy/psysh/src/functions.php', '801c31d8ed748cfa537fa45402288c95' => $vendorDir . '/psy/psysh/src/functions.php',
'538ca81a9a966a6716601ecf48f4eaef' => $vendorDir . '/opis/closure/functions.php',
'f18cc91337d49233e5754e93f3ed9ec3' => $vendorDir . '/laravelcollective/html/src/helpers.php',
'f0906e6318348a765ffb6eb24e0d0938' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/helpers.php', 'f0906e6318348a765ffb6eb24e0d0938' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/helpers.php',
'58571171fd5812e6e447dce228f52f4d' => $vendorDir . '/laravel/framework/src/Illuminate/Support/helpers.php', '58571171fd5812e6e447dce228f52f4d' => $vendorDir . '/laravel/framework/src/Illuminate/Support/helpers.php',
'f18cc91337d49233e5754e93f3ed9ec3' => $vendorDir . '/laravelcollective/html/src/helpers.php',
'e617b14322a074392076a2f38eaf6115' => $baseDir . '/app/Helper.php', 'e617b14322a074392076a2f38eaf6115' => $baseDir . '/app/Helper.php',
); );

View file

@ -7,6 +7,7 @@ $baseDir = dirname($vendorDir);
return array( return array(
'phpDocumentor\\Reflection\\' => array($vendorDir . '/phpdocumentor/reflection-common/src', $vendorDir . '/phpdocumentor/reflection-docblock/src', $vendorDir . '/phpdocumentor/type-resolver/src'), 'phpDocumentor\\Reflection\\' => array($vendorDir . '/phpdocumentor/reflection-common/src', $vendorDir . '/phpdocumentor/reflection-docblock/src', $vendorDir . '/phpdocumentor/type-resolver/src'),
'Zend\\Diactoros\\' => array($vendorDir . '/zendframework/zend-diactoros/src'),
'XdgBaseDir\\' => array($vendorDir . '/dnoegel/php-xdg-base-dir/src'), 'XdgBaseDir\\' => array($vendorDir . '/dnoegel/php-xdg-base-dir/src'),
'Whoops\\' => array($vendorDir . '/filp/whoops/src/Whoops'), 'Whoops\\' => array($vendorDir . '/filp/whoops/src/Whoops'),
'Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'), 'Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'),
@ -16,6 +17,7 @@ return array(
'Symfony\\Polyfill\\Php72\\' => array($vendorDir . '/symfony/polyfill-php72'), 'Symfony\\Polyfill\\Php72\\' => array($vendorDir . '/symfony/polyfill-php72'),
'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'), 'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'), 'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'),
'Symfony\\Contracts\\' => array($vendorDir . '/symfony/contracts'),
'Symfony\\Component\\VarDumper\\' => array($vendorDir . '/symfony/var-dumper'), 'Symfony\\Component\\VarDumper\\' => array($vendorDir . '/symfony/var-dumper'),
'Symfony\\Component\\Translation\\' => array($vendorDir . '/symfony/translation'), 'Symfony\\Component\\Translation\\' => array($vendorDir . '/symfony/translation'),
'Symfony\\Component\\Routing\\' => array($vendorDir . '/symfony/routing'), 'Symfony\\Component\\Routing\\' => array($vendorDir . '/symfony/routing'),
@ -37,14 +39,17 @@ return array(
'Psr\\Cache\\' => array($vendorDir . '/psr/cache/src'), 'Psr\\Cache\\' => array($vendorDir . '/psr/cache/src'),
'PhpParser\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'), 'PhpParser\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'),
'Opis\\Closure\\' => array($vendorDir . '/opis/closure/src'), 'Opis\\Closure\\' => array($vendorDir . '/opis/closure/src'),
'Nexmo\\' => array($vendorDir . '/nexmo/client/src'),
'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'), 'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'),
'League\\Flysystem\\' => array($vendorDir . '/league/flysystem/src'), 'League\\Flysystem\\' => array($vendorDir . '/league/flysystem/src'),
'Lcobucci\\JWT\\' => array($vendorDir . '/lcobucci/jwt/src'),
'Laravel\\Tinker\\' => array($vendorDir . '/laravel/tinker/src'), 'Laravel\\Tinker\\' => array($vendorDir . '/laravel/tinker/src'),
'JakubOnderka\\PhpConsoleHighlighter\\' => array($vendorDir . '/jakub-onderka/php-console-highlighter/src'), 'JakubOnderka\\PhpConsoleHighlighter\\' => array($vendorDir . '/jakub-onderka/php-console-highlighter/src'),
'JakubOnderka\\PhpConsoleColor\\' => array($vendorDir . '/jakub-onderka/php-console-color/src'), 'JakubOnderka\\PhpConsoleColor\\' => array($vendorDir . '/jakub-onderka/php-console-color/src'),
'Illuminate\\Notifications\\' => array($vendorDir . '/laravel/slack-notification-channel/src', $vendorDir . '/laravel/nexmo-notification-channel/src'),
'Illuminate\\' => array($vendorDir . '/laravel/framework/src/Illuminate'), 'Illuminate\\' => array($vendorDir . '/laravel/framework/src/Illuminate'),
'Http\\Promise\\' => array($vendorDir . '/php-http/promise/src'), 'Http\\Promise\\' => array($vendorDir . '/php-http/promise/src'),
'Http\\Message\\' => array($vendorDir . '/php-http/message/src', $vendorDir . '/php-http/message-factory/src'), 'Http\\Message\\' => array($vendorDir . '/php-http/message-factory/src', $vendorDir . '/php-http/message/src'),
'Http\\Discovery\\' => array($vendorDir . '/php-http/discovery/src'), 'Http\\Discovery\\' => array($vendorDir . '/php-http/discovery/src'),
'Http\\Client\\Common\\Plugin\\' => array($vendorDir . '/php-http/cache-plugin/src'), 'Http\\Client\\Common\\Plugin\\' => array($vendorDir . '/php-http/cache-plugin/src'),
'Http\\Client\\Common\\' => array($vendorDir . '/php-http/client-common/src'), 'Http\\Client\\Common\\' => array($vendorDir . '/php-http/client-common/src'),

View file

@ -8,21 +8,30 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
{ {
public static $files = array ( public static $files = array (
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
'7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php',
'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php', 'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php',
'cf97c57bfe0f23854afd2f3818abb7a0' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/functions/create_uploaded_file.php',
'9bf37a3d0dad93e29cb4e1b1bfab04e9' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/functions/marshal_headers_from_sapi.php',
'ce70dccb4bcc2efc6e94d2ee526e6972' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/functions/marshal_method_from_sapi.php',
'f86420df471f14d568bfcb71e271b523' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/functions/marshal_protocol_version_from_sapi.php',
'b87481e008a3700344428ae089e7f9e5' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/functions/marshal_uri_from_sapi.php',
'0b0974a5566a1077e4f2e111341112c1' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/functions/normalize_server.php',
'1ca3bc274755662169f9629d5412a1da' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/functions/normalize_uploaded_files.php',
'40360c0b9b437e69bcbb7f1349ce029e' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/functions/parse_cookie_header.php',
'25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php', '25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
'ddc0a4d7e61c0286f0f8593b1903e894' => __DIR__ . '/..' . '/clue/stream-filter/src/functions.php', 'ddc0a4d7e61c0286f0f8593b1903e894' => __DIR__ . '/..' . '/clue/stream-filter/src/functions.php',
'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php',
'667aeda72477189d0494fecd327c3641' => __DIR__ . '/..' . '/symfony/var-dumper/Resources/functions/dump.php', '667aeda72477189d0494fecd327c3641' => __DIR__ . '/..' . '/symfony/var-dumper/Resources/functions/dump.php',
'37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php',
'8cff32064859f4559445b89279f3199c' => __DIR__ . '/..' . '/php-http/message/src/filters.php', '8cff32064859f4559445b89279f3199c' => __DIR__ . '/..' . '/php-http/message/src/filters.php',
'320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php', '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php',
'37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php',
'2c102faa651ef8ea5874edb585946bce' => __DIR__ . '/..' . '/swiftmailer/swiftmailer/lib/swift_required.php', '2c102faa651ef8ea5874edb585946bce' => __DIR__ . '/..' . '/swiftmailer/swiftmailer/lib/swift_required.php',
'6124b4c8570aa390c21fafd04a26c69f' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php', '6124b4c8570aa390c21fafd04a26c69f' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',
'538ca81a9a966a6716601ecf48f4eaef' => __DIR__ . '/..' . '/opis/closure/functions.php',
'801c31d8ed748cfa537fa45402288c95' => __DIR__ . '/..' . '/psy/psysh/src/functions.php', '801c31d8ed748cfa537fa45402288c95' => __DIR__ . '/..' . '/psy/psysh/src/functions.php',
'538ca81a9a966a6716601ecf48f4eaef' => __DIR__ . '/..' . '/opis/closure/functions.php',
'f18cc91337d49233e5754e93f3ed9ec3' => __DIR__ . '/..' . '/laravelcollective/html/src/helpers.php',
'f0906e6318348a765ffb6eb24e0d0938' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/helpers.php', 'f0906e6318348a765ffb6eb24e0d0938' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/helpers.php',
'58571171fd5812e6e447dce228f52f4d' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/helpers.php', '58571171fd5812e6e447dce228f52f4d' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/helpers.php',
'f18cc91337d49233e5754e93f3ed9ec3' => __DIR__ . '/..' . '/laravelcollective/html/src/helpers.php',
'e617b14322a074392076a2f38eaf6115' => __DIR__ . '/../..' . '/app/Helper.php', 'e617b14322a074392076a2f38eaf6115' => __DIR__ . '/../..' . '/app/Helper.php',
); );
@ -31,6 +40,10 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
array ( array (
'phpDocumentor\\Reflection\\' => 25, 'phpDocumentor\\Reflection\\' => 25,
), ),
'Z' =>
array (
'Zend\\Diactoros\\' => 15,
),
'X' => 'X' =>
array ( array (
'XdgBaseDir\\' => 11, 'XdgBaseDir\\' => 11,
@ -51,6 +64,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Polyfill\\Php72\\' => 23, 'Symfony\\Polyfill\\Php72\\' => 23,
'Symfony\\Polyfill\\Mbstring\\' => 26, 'Symfony\\Polyfill\\Mbstring\\' => 26,
'Symfony\\Polyfill\\Ctype\\' => 23, 'Symfony\\Polyfill\\Ctype\\' => 23,
'Symfony\\Contracts\\' => 18,
'Symfony\\Component\\VarDumper\\' => 28, 'Symfony\\Component\\VarDumper\\' => 28,
'Symfony\\Component\\Translation\\' => 30, 'Symfony\\Component\\Translation\\' => 30,
'Symfony\\Component\\Routing\\' => 26, 'Symfony\\Component\\Routing\\' => 26,
@ -82,6 +96,10 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
array ( array (
'Opis\\Closure\\' => 13, 'Opis\\Closure\\' => 13,
), ),
'N' =>
array (
'Nexmo\\' => 6,
),
'M' => 'M' =>
array ( array (
'Monolog\\' => 8, 'Monolog\\' => 8,
@ -89,6 +107,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'L' => 'L' =>
array ( array (
'League\\Flysystem\\' => 17, 'League\\Flysystem\\' => 17,
'Lcobucci\\JWT\\' => 13,
'Laravel\\Tinker\\' => 15, 'Laravel\\Tinker\\' => 15,
), ),
'J' => 'J' =>
@ -98,6 +117,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
), ),
'I' => 'I' =>
array ( array (
'Illuminate\\Notifications\\' => 25,
'Illuminate\\' => 11, 'Illuminate\\' => 11,
), ),
'H' => 'H' =>
@ -155,6 +175,10 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
1 => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src', 1 => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src',
2 => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src', 2 => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src',
), ),
'Zend\\Diactoros\\' =>
array (
0 => __DIR__ . '/..' . '/zendframework/zend-diactoros/src',
),
'XdgBaseDir\\' => 'XdgBaseDir\\' =>
array ( array (
0 => __DIR__ . '/..' . '/dnoegel/php-xdg-base-dir/src', 0 => __DIR__ . '/..' . '/dnoegel/php-xdg-base-dir/src',
@ -191,6 +215,10 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
array ( array (
0 => __DIR__ . '/..' . '/symfony/polyfill-ctype', 0 => __DIR__ . '/..' . '/symfony/polyfill-ctype',
), ),
'Symfony\\Contracts\\' =>
array (
0 => __DIR__ . '/..' . '/symfony/contracts',
),
'Symfony\\Component\\VarDumper\\' => 'Symfony\\Component\\VarDumper\\' =>
array ( array (
0 => __DIR__ . '/..' . '/symfony/var-dumper', 0 => __DIR__ . '/..' . '/symfony/var-dumper',
@ -275,6 +303,10 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
array ( array (
0 => __DIR__ . '/..' . '/opis/closure/src', 0 => __DIR__ . '/..' . '/opis/closure/src',
), ),
'Nexmo\\' =>
array (
0 => __DIR__ . '/..' . '/nexmo/client/src',
),
'Monolog\\' => 'Monolog\\' =>
array ( array (
0 => __DIR__ . '/..' . '/monolog/monolog/src/Monolog', 0 => __DIR__ . '/..' . '/monolog/monolog/src/Monolog',
@ -283,6 +315,10 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
array ( array (
0 => __DIR__ . '/..' . '/league/flysystem/src', 0 => __DIR__ . '/..' . '/league/flysystem/src',
), ),
'Lcobucci\\JWT\\' =>
array (
0 => __DIR__ . '/..' . '/lcobucci/jwt/src',
),
'Laravel\\Tinker\\' => 'Laravel\\Tinker\\' =>
array ( array (
0 => __DIR__ . '/..' . '/laravel/tinker/src', 0 => __DIR__ . '/..' . '/laravel/tinker/src',
@ -295,6 +331,11 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
array ( array (
0 => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src', 0 => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src',
), ),
'Illuminate\\Notifications\\' =>
array (
0 => __DIR__ . '/..' . '/laravel/slack-notification-channel/src',
1 => __DIR__ . '/..' . '/laravel/nexmo-notification-channel/src',
),
'Illuminate\\' => 'Illuminate\\' =>
array ( array (
0 => __DIR__ . '/..' . '/laravel/framework/src/Illuminate', 0 => __DIR__ . '/..' . '/laravel/framework/src/Illuminate',
@ -305,8 +346,8 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
), ),
'Http\\Message\\' => 'Http\\Message\\' =>
array ( array (
0 => __DIR__ . '/..' . '/php-http/message/src', 0 => __DIR__ . '/..' . '/php-http/message-factory/src',
1 => __DIR__ . '/..' . '/php-http/message-factory/src', 1 => __DIR__ . '/..' . '/php-http/message/src',
), ),
'Http\\Discovery\\' => 'Http\\Discovery\\' =>
array ( array (
@ -447,6 +488,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'App\\Http\\Controllers\\Controller' => __DIR__ . '/../..' . '/app/Http/Controllers/Controller.php', 'App\\Http\\Controllers\\Controller' => __DIR__ . '/../..' . '/app/Http/Controllers/Controller.php',
'App\\Http\\Controllers\\HomeController' => __DIR__ . '/../..' . '/app/Http/Controllers/HomeController.php', 'App\\Http\\Controllers\\HomeController' => __DIR__ . '/../..' . '/app/Http/Controllers/HomeController.php',
'App\\Http\\Controllers\\ItemController' => __DIR__ . '/../..' . '/app/Http/Controllers/ItemController.php', 'App\\Http\\Controllers\\ItemController' => __DIR__ . '/../..' . '/app/Http/Controllers/ItemController.php',
'App\\Http\\Controllers\\SearchController' => __DIR__ . '/../..' . '/app/Http/Controllers/SearchController.php',
'App\\Http\\Controllers\\SettingsController' => __DIR__ . '/../..' . '/app/Http/Controllers/SettingsController.php', 'App\\Http\\Controllers\\SettingsController' => __DIR__ . '/../..' . '/app/Http/Controllers/SettingsController.php',
'App\\Http\\Controllers\\TagController' => __DIR__ . '/../..' . '/app/Http/Controllers/TagController.php', 'App\\Http\\Controllers\\TagController' => __DIR__ . '/../..' . '/app/Http/Controllers/TagController.php',
'App\\Http\\Controllers\\UserController' => __DIR__ . '/../..' . '/app/Http/Controllers/UserController.php', 'App\\Http\\Controllers\\UserController' => __DIR__ . '/../..' . '/app/Http/Controllers/UserController.php',
@ -464,6 +506,8 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'App\\Providers\\BroadcastServiceProvider' => __DIR__ . '/../..' . '/app/Providers/BroadcastServiceProvider.php', 'App\\Providers\\BroadcastServiceProvider' => __DIR__ . '/../..' . '/app/Providers/BroadcastServiceProvider.php',
'App\\Providers\\EventServiceProvider' => __DIR__ . '/../..' . '/app/Providers/EventServiceProvider.php', 'App\\Providers\\EventServiceProvider' => __DIR__ . '/../..' . '/app/Providers/EventServiceProvider.php',
'App\\Providers\\RouteServiceProvider' => __DIR__ . '/../..' . '/app/Providers/RouteServiceProvider.php', 'App\\Providers\\RouteServiceProvider' => __DIR__ . '/../..' . '/app/Providers/RouteServiceProvider.php',
'App\\Search' => __DIR__ . '/../..' . '/app/Search.php',
'App\\SearchInterface' => __DIR__ . '/../..' . '/app/SearchInterface.php',
'App\\Setting' => __DIR__ . '/../..' . '/app/Setting.php', 'App\\Setting' => __DIR__ . '/../..' . '/app/Setting.php',
'App\\SettingGroup' => __DIR__ . '/../..' . '/app/SettingGroup.php', 'App\\SettingGroup' => __DIR__ . '/../..' . '/app/SettingGroup.php',
'App\\SettingUser' => __DIR__ . '/../..' . '/app/SettingUser.php', 'App\\SettingUser' => __DIR__ . '/../..' . '/app/SettingUser.php',
@ -501,8 +545,8 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'App\\SupportedApps\\Nextcloud\\Nextcloud' => __DIR__ . '/../..' . '/app/SupportedApps/Nextcloud/Nextcloud.php', 'App\\SupportedApps\\Nextcloud\\Nextcloud' => __DIR__ . '/../..' . '/app/SupportedApps/Nextcloud/Nextcloud.php',
'App\\SupportedApps\\NodeRed\\NodeRed' => __DIR__ . '/../..' . '/app/SupportedApps/NodeRed/NodeRed.php', 'App\\SupportedApps\\NodeRed\\NodeRed' => __DIR__ . '/../..' . '/app/SupportedApps/NodeRed/NodeRed.php',
'App\\SupportedApps\\NowShowing\\NowShowing' => __DIR__ . '/../..' . '/app/SupportedApps/NowShowing/NowShowing.php', 'App\\SupportedApps\\NowShowing\\NowShowing' => __DIR__ . '/../..' . '/app/SupportedApps/NowShowing/NowShowing.php',
'App\\SupportedApps\\Nzbget\\Nzbget' => __DIR__ . '/../..' . '/app/SupportedApps/Nzbget/Nzbget.php',
'App\\SupportedApps\\OPNsense\\OPNsense' => __DIR__ . '/../..' . '/app/SupportedApps/OPNsense/OPNsense.php', 'App\\SupportedApps\\OPNsense\\OPNsense' => __DIR__ . '/../..' . '/app/SupportedApps/OPNsense/OPNsense.php',
'App\\SupportedApps\\Octoprint\\Octoprint' => __DIR__ . '/../..' . '/app/SupportedApps/Octoprint/Octoprint.php',
'App\\SupportedApps\\Ombi\\Ombi' => __DIR__ . '/../..' . '/app/SupportedApps/Ombi/Ombi.php', 'App\\SupportedApps\\Ombi\\Ombi' => __DIR__ . '/../..' . '/app/SupportedApps/Ombi/Ombi.php',
'App\\SupportedApps\\Pihole\\Pihole' => __DIR__ . '/../..' . '/app/SupportedApps/Pihole/Pihole.php', 'App\\SupportedApps\\Pihole\\Pihole' => __DIR__ . '/../..' . '/app/SupportedApps/Pihole/Pihole.php',
'App\\SupportedApps\\PlexRequests\\PlexRequests' => __DIR__ . '/../..' . '/app/SupportedApps/PlexRequests/PlexRequests.php', 'App\\SupportedApps\\PlexRequests\\PlexRequests' => __DIR__ . '/../..' . '/app/SupportedApps/PlexRequests/PlexRequests.php',
@ -1274,6 +1318,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'GuzzleHttp\\Psr7\\PumpStream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/PumpStream.php', 'GuzzleHttp\\Psr7\\PumpStream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/PumpStream.php',
'GuzzleHttp\\Psr7\\Request' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/Request.php', 'GuzzleHttp\\Psr7\\Request' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/Request.php',
'GuzzleHttp\\Psr7\\Response' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/Response.php', 'GuzzleHttp\\Psr7\\Response' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/Response.php',
'GuzzleHttp\\Psr7\\Rfc7230' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/Rfc7230.php',
'GuzzleHttp\\Psr7\\ServerRequest' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/ServerRequest.php', 'GuzzleHttp\\Psr7\\ServerRequest' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/ServerRequest.php',
'GuzzleHttp\\Psr7\\Stream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/Stream.php', 'GuzzleHttp\\Psr7\\Stream' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/Stream.php',
'GuzzleHttp\\Psr7\\StreamDecoratorTrait' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/StreamDecoratorTrait.php', 'GuzzleHttp\\Psr7\\StreamDecoratorTrait' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/StreamDecoratorTrait.php',
@ -1408,6 +1453,8 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Http\\Client\\Common\\Plugin\\RedirectPlugin' => __DIR__ . '/..' . '/php-http/client-common/src/Plugin/RedirectPlugin.php', 'Http\\Client\\Common\\Plugin\\RedirectPlugin' => __DIR__ . '/..' . '/php-http/client-common/src/Plugin/RedirectPlugin.php',
'Http\\Client\\Common\\Plugin\\RequestMatcherPlugin' => __DIR__ . '/..' . '/php-http/client-common/src/Plugin/RequestMatcherPlugin.php', 'Http\\Client\\Common\\Plugin\\RequestMatcherPlugin' => __DIR__ . '/..' . '/php-http/client-common/src/Plugin/RequestMatcherPlugin.php',
'Http\\Client\\Common\\Plugin\\RetryPlugin' => __DIR__ . '/..' . '/php-http/client-common/src/Plugin/RetryPlugin.php', 'Http\\Client\\Common\\Plugin\\RetryPlugin' => __DIR__ . '/..' . '/php-http/client-common/src/Plugin/RetryPlugin.php',
'Http\\Client\\Common\\Plugin\\VersionBridgePlugin' => __DIR__ . '/..' . '/php-http/client-common/src/Plugin/VersionBridgePlugin.php',
'Http\\Client\\Common\\VersionBridgeClient' => __DIR__ . '/..' . '/php-http/client-common/src/VersionBridgeClient.php',
'Http\\Client\\Exception' => __DIR__ . '/..' . '/php-http/httplug/src/Exception.php', 'Http\\Client\\Exception' => __DIR__ . '/..' . '/php-http/httplug/src/Exception.php',
'Http\\Client\\Exception\\HttpException' => __DIR__ . '/..' . '/php-http/httplug/src/Exception/HttpException.php', 'Http\\Client\\Exception\\HttpException' => __DIR__ . '/..' . '/php-http/httplug/src/Exception/HttpException.php',
'Http\\Client\\Exception\\NetworkException' => __DIR__ . '/..' . '/php-http/httplug/src/Exception/NetworkException.php', 'Http\\Client\\Exception\\NetworkException' => __DIR__ . '/..' . '/php-http/httplug/src/Exception/NetworkException.php',
@ -1421,6 +1468,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Http\\Discovery\\Exception' => __DIR__ . '/..' . '/php-http/discovery/src/Exception.php', 'Http\\Discovery\\Exception' => __DIR__ . '/..' . '/php-http/discovery/src/Exception.php',
'Http\\Discovery\\Exception\\ClassInstantiationFailedException' => __DIR__ . '/..' . '/php-http/discovery/src/Exception/ClassInstantiationFailedException.php', 'Http\\Discovery\\Exception\\ClassInstantiationFailedException' => __DIR__ . '/..' . '/php-http/discovery/src/Exception/ClassInstantiationFailedException.php',
'Http\\Discovery\\Exception\\DiscoveryFailedException' => __DIR__ . '/..' . '/php-http/discovery/src/Exception/DiscoveryFailedException.php', 'Http\\Discovery\\Exception\\DiscoveryFailedException' => __DIR__ . '/..' . '/php-http/discovery/src/Exception/DiscoveryFailedException.php',
'Http\\Discovery\\Exception\\NoCandidateFoundException' => __DIR__ . '/..' . '/php-http/discovery/src/Exception/NoCandidateFoundException.php',
'Http\\Discovery\\Exception\\NotFoundException' => __DIR__ . '/..' . '/php-http/discovery/src/Exception/NotFoundException.php', 'Http\\Discovery\\Exception\\NotFoundException' => __DIR__ . '/..' . '/php-http/discovery/src/Exception/NotFoundException.php',
'Http\\Discovery\\Exception\\PuliUnavailableException' => __DIR__ . '/..' . '/php-http/discovery/src/Exception/PuliUnavailableException.php', 'Http\\Discovery\\Exception\\PuliUnavailableException' => __DIR__ . '/..' . '/php-http/discovery/src/Exception/PuliUnavailableException.php',
'Http\\Discovery\\Exception\\StrategyUnavailableException' => __DIR__ . '/..' . '/php-http/discovery/src/Exception/StrategyUnavailableException.php', 'Http\\Discovery\\Exception\\StrategyUnavailableException' => __DIR__ . '/..' . '/php-http/discovery/src/Exception/StrategyUnavailableException.php',
@ -2010,8 +2058,8 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Notifications\\Channels\\BroadcastChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Channels/BroadcastChannel.php', 'Illuminate\\Notifications\\Channels\\BroadcastChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Channels/BroadcastChannel.php',
'Illuminate\\Notifications\\Channels\\DatabaseChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Channels/DatabaseChannel.php', 'Illuminate\\Notifications\\Channels\\DatabaseChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Channels/DatabaseChannel.php',
'Illuminate\\Notifications\\Channels\\MailChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Channels/MailChannel.php', 'Illuminate\\Notifications\\Channels\\MailChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Channels/MailChannel.php',
'Illuminate\\Notifications\\Channels\\NexmoSmsChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Channels/NexmoSmsChannel.php', 'Illuminate\\Notifications\\Channels\\NexmoSmsChannel' => __DIR__ . '/..' . '/laravel/nexmo-notification-channel/src/Channels/NexmoSmsChannel.php',
'Illuminate\\Notifications\\Channels\\SlackWebhookChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Channels/SlackWebhookChannel.php', 'Illuminate\\Notifications\\Channels\\SlackWebhookChannel' => __DIR__ . '/..' . '/laravel/slack-notification-channel/src/Channels/SlackWebhookChannel.php',
'Illuminate\\Notifications\\Console\\NotificationTableCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Console/NotificationTableCommand.php', 'Illuminate\\Notifications\\Console\\NotificationTableCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Console/NotificationTableCommand.php',
'Illuminate\\Notifications\\DatabaseNotification' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/DatabaseNotification.php', 'Illuminate\\Notifications\\DatabaseNotification' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/DatabaseNotification.php',
'Illuminate\\Notifications\\DatabaseNotificationCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/DatabaseNotificationCollection.php', 'Illuminate\\Notifications\\DatabaseNotificationCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/DatabaseNotificationCollection.php',
@ -2023,17 +2071,19 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Illuminate\\Notifications\\Messages\\BroadcastMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/BroadcastMessage.php', 'Illuminate\\Notifications\\Messages\\BroadcastMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/BroadcastMessage.php',
'Illuminate\\Notifications\\Messages\\DatabaseMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/DatabaseMessage.php', 'Illuminate\\Notifications\\Messages\\DatabaseMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/DatabaseMessage.php',
'Illuminate\\Notifications\\Messages\\MailMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/MailMessage.php', 'Illuminate\\Notifications\\Messages\\MailMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/MailMessage.php',
'Illuminate\\Notifications\\Messages\\NexmoMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/NexmoMessage.php', 'Illuminate\\Notifications\\Messages\\NexmoMessage' => __DIR__ . '/..' . '/laravel/nexmo-notification-channel/src/Messages/NexmoMessage.php',
'Illuminate\\Notifications\\Messages\\SimpleMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/SimpleMessage.php', 'Illuminate\\Notifications\\Messages\\SimpleMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/SimpleMessage.php',
'Illuminate\\Notifications\\Messages\\SlackAttachment' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachment.php', 'Illuminate\\Notifications\\Messages\\SlackAttachment' => __DIR__ . '/..' . '/laravel/slack-notification-channel/src/Messages/SlackAttachment.php',
'Illuminate\\Notifications\\Messages\\SlackAttachmentField' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/SlackAttachmentField.php', 'Illuminate\\Notifications\\Messages\\SlackAttachmentField' => __DIR__ . '/..' . '/laravel/slack-notification-channel/src/Messages/SlackAttachmentField.php',
'Illuminate\\Notifications\\Messages\\SlackMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/SlackMessage.php', 'Illuminate\\Notifications\\Messages\\SlackMessage' => __DIR__ . '/..' . '/laravel/slack-notification-channel/src/Messages/SlackMessage.php',
'Illuminate\\Notifications\\NexmoChannelServiceProvider' => __DIR__ . '/..' . '/laravel/nexmo-notification-channel/src/NexmoChannelServiceProvider.php',
'Illuminate\\Notifications\\Notifiable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Notifiable.php', 'Illuminate\\Notifications\\Notifiable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Notifiable.php',
'Illuminate\\Notifications\\Notification' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Notification.php', 'Illuminate\\Notifications\\Notification' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Notification.php',
'Illuminate\\Notifications\\NotificationSender' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/NotificationSender.php', 'Illuminate\\Notifications\\NotificationSender' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/NotificationSender.php',
'Illuminate\\Notifications\\NotificationServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/NotificationServiceProvider.php', 'Illuminate\\Notifications\\NotificationServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/NotificationServiceProvider.php',
'Illuminate\\Notifications\\RoutesNotifications' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/RoutesNotifications.php', 'Illuminate\\Notifications\\RoutesNotifications' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/RoutesNotifications.php',
'Illuminate\\Notifications\\SendQueuedNotifications' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/SendQueuedNotifications.php', 'Illuminate\\Notifications\\SendQueuedNotifications' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/SendQueuedNotifications.php',
'Illuminate\\Notifications\\SlackChannelServiceProvider' => __DIR__ . '/..' . '/laravel/slack-notification-channel/src/SlackChannelServiceProvider.php',
'Illuminate\\Pagination\\AbstractPaginator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php', 'Illuminate\\Pagination\\AbstractPaginator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php',
'Illuminate\\Pagination\\LengthAwarePaginator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php', 'Illuminate\\Pagination\\LengthAwarePaginator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php',
'Illuminate\\Pagination\\PaginationServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php', 'Illuminate\\Pagination\\PaginationServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php',
@ -2303,6 +2353,37 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Laravel\\Tinker\\Console\\TinkerCommand' => __DIR__ . '/..' . '/laravel/tinker/src/Console/TinkerCommand.php', 'Laravel\\Tinker\\Console\\TinkerCommand' => __DIR__ . '/..' . '/laravel/tinker/src/Console/TinkerCommand.php',
'Laravel\\Tinker\\TinkerCaster' => __DIR__ . '/..' . '/laravel/tinker/src/TinkerCaster.php', 'Laravel\\Tinker\\TinkerCaster' => __DIR__ . '/..' . '/laravel/tinker/src/TinkerCaster.php',
'Laravel\\Tinker\\TinkerServiceProvider' => __DIR__ . '/..' . '/laravel/tinker/src/TinkerServiceProvider.php', 'Laravel\\Tinker\\TinkerServiceProvider' => __DIR__ . '/..' . '/laravel/tinker/src/TinkerServiceProvider.php',
'Lcobucci\\JWT\\Builder' => __DIR__ . '/..' . '/lcobucci/jwt/src/Builder.php',
'Lcobucci\\JWT\\Claim' => __DIR__ . '/..' . '/lcobucci/jwt/src/Claim.php',
'Lcobucci\\JWT\\Claim\\Basic' => __DIR__ . '/..' . '/lcobucci/jwt/src/Claim/Basic.php',
'Lcobucci\\JWT\\Claim\\EqualsTo' => __DIR__ . '/..' . '/lcobucci/jwt/src/Claim/EqualsTo.php',
'Lcobucci\\JWT\\Claim\\Factory' => __DIR__ . '/..' . '/lcobucci/jwt/src/Claim/Factory.php',
'Lcobucci\\JWT\\Claim\\GreaterOrEqualsTo' => __DIR__ . '/..' . '/lcobucci/jwt/src/Claim/GreaterOrEqualsTo.php',
'Lcobucci\\JWT\\Claim\\LesserOrEqualsTo' => __DIR__ . '/..' . '/lcobucci/jwt/src/Claim/LesserOrEqualsTo.php',
'Lcobucci\\JWT\\Claim\\Validatable' => __DIR__ . '/..' . '/lcobucci/jwt/src/Claim/Validatable.php',
'Lcobucci\\JWT\\Parser' => __DIR__ . '/..' . '/lcobucci/jwt/src/Parser.php',
'Lcobucci\\JWT\\Parsing\\Decoder' => __DIR__ . '/..' . '/lcobucci/jwt/src/Parsing/Decoder.php',
'Lcobucci\\JWT\\Parsing\\Encoder' => __DIR__ . '/..' . '/lcobucci/jwt/src/Parsing/Encoder.php',
'Lcobucci\\JWT\\Signature' => __DIR__ . '/..' . '/lcobucci/jwt/src/Signature.php',
'Lcobucci\\JWT\\Signer' => __DIR__ . '/..' . '/lcobucci/jwt/src/Signer.php',
'Lcobucci\\JWT\\Signer\\BaseSigner' => __DIR__ . '/..' . '/lcobucci/jwt/src/Signer/BaseSigner.php',
'Lcobucci\\JWT\\Signer\\Ecdsa' => __DIR__ . '/..' . '/lcobucci/jwt/src/Signer/Ecdsa.php',
'Lcobucci\\JWT\\Signer\\Ecdsa\\KeyParser' => __DIR__ . '/..' . '/lcobucci/jwt/src/Signer/Ecdsa/KeyParser.php',
'Lcobucci\\JWT\\Signer\\Ecdsa\\Sha256' => __DIR__ . '/..' . '/lcobucci/jwt/src/Signer/Ecdsa/Sha256.php',
'Lcobucci\\JWT\\Signer\\Ecdsa\\Sha384' => __DIR__ . '/..' . '/lcobucci/jwt/src/Signer/Ecdsa/Sha384.php',
'Lcobucci\\JWT\\Signer\\Ecdsa\\Sha512' => __DIR__ . '/..' . '/lcobucci/jwt/src/Signer/Ecdsa/Sha512.php',
'Lcobucci\\JWT\\Signer\\Hmac' => __DIR__ . '/..' . '/lcobucci/jwt/src/Signer/Hmac.php',
'Lcobucci\\JWT\\Signer\\Hmac\\Sha256' => __DIR__ . '/..' . '/lcobucci/jwt/src/Signer/Hmac/Sha256.php',
'Lcobucci\\JWT\\Signer\\Hmac\\Sha384' => __DIR__ . '/..' . '/lcobucci/jwt/src/Signer/Hmac/Sha384.php',
'Lcobucci\\JWT\\Signer\\Hmac\\Sha512' => __DIR__ . '/..' . '/lcobucci/jwt/src/Signer/Hmac/Sha512.php',
'Lcobucci\\JWT\\Signer\\Key' => __DIR__ . '/..' . '/lcobucci/jwt/src/Signer/Key.php',
'Lcobucci\\JWT\\Signer\\Keychain' => __DIR__ . '/..' . '/lcobucci/jwt/src/Signer/Keychain.php',
'Lcobucci\\JWT\\Signer\\Rsa' => __DIR__ . '/..' . '/lcobucci/jwt/src/Signer/Rsa.php',
'Lcobucci\\JWT\\Signer\\Rsa\\Sha256' => __DIR__ . '/..' . '/lcobucci/jwt/src/Signer/Rsa/Sha256.php',
'Lcobucci\\JWT\\Signer\\Rsa\\Sha384' => __DIR__ . '/..' . '/lcobucci/jwt/src/Signer/Rsa/Sha384.php',
'Lcobucci\\JWT\\Signer\\Rsa\\Sha512' => __DIR__ . '/..' . '/lcobucci/jwt/src/Signer/Rsa/Sha512.php',
'Lcobucci\\JWT\\Token' => __DIR__ . '/..' . '/lcobucci/jwt/src/Token.php',
'Lcobucci\\JWT\\ValidationData' => __DIR__ . '/..' . '/lcobucci/jwt/src/ValidationData.php',
'League\\Flysystem\\AdapterInterface' => __DIR__ . '/..' . '/league/flysystem/src/AdapterInterface.php', 'League\\Flysystem\\AdapterInterface' => __DIR__ . '/..' . '/league/flysystem/src/AdapterInterface.php',
'League\\Flysystem\\Adapter\\AbstractAdapter' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/AbstractAdapter.php', 'League\\Flysystem\\Adapter\\AbstractAdapter' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/AbstractAdapter.php',
'League\\Flysystem\\Adapter\\AbstractFtpAdapter' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/AbstractFtpAdapter.php', 'League\\Flysystem\\Adapter\\AbstractFtpAdapter' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/AbstractFtpAdapter.php',
@ -2478,6 +2559,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Monolog\\Handler\\HandlerWrapper' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php', 'Monolog\\Handler\\HandlerWrapper' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php',
'Monolog\\Handler\\HipChatHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/HipChatHandler.php', 'Monolog\\Handler\\HipChatHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/HipChatHandler.php',
'Monolog\\Handler\\IFTTTHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php', 'Monolog\\Handler\\IFTTTHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php',
'Monolog\\Handler\\InsightOpsHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php',
'Monolog\\Handler\\LogEntriesHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php', 'Monolog\\Handler\\LogEntriesHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php',
'Monolog\\Handler\\LogglyHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/LogglyHandler.php', 'Monolog\\Handler\\LogglyHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/LogglyHandler.php',
'Monolog\\Handler\\MailHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/MailHandler.php', 'Monolog\\Handler\\MailHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/MailHandler.php',
@ -2516,11 +2598,135 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Monolog\\Processor\\MemoryUsageProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php', 'Monolog\\Processor\\MemoryUsageProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php',
'Monolog\\Processor\\MercurialProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php', 'Monolog\\Processor\\MercurialProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php',
'Monolog\\Processor\\ProcessIdProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php', 'Monolog\\Processor\\ProcessIdProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php',
'Monolog\\Processor\\ProcessorInterface' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php',
'Monolog\\Processor\\PsrLogMessageProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php', 'Monolog\\Processor\\PsrLogMessageProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php',
'Monolog\\Processor\\TagProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/TagProcessor.php', 'Monolog\\Processor\\TagProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/TagProcessor.php',
'Monolog\\Processor\\UidProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/UidProcessor.php', 'Monolog\\Processor\\UidProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/UidProcessor.php',
'Monolog\\Processor\\WebProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/WebProcessor.php', 'Monolog\\Processor\\WebProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/WebProcessor.php',
'Monolog\\Registry' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Registry.php', 'Monolog\\Registry' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Registry.php',
'Monolog\\ResettableInterface' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/ResettableInterface.php',
'Monolog\\SignalHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/SignalHandler.php',
'Monolog\\Utils' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Utils.php',
'Nexmo\\Account\\Balance' => __DIR__ . '/..' . '/nexmo/client/src/Account/Balance.php',
'Nexmo\\Account\\Client' => __DIR__ . '/..' . '/nexmo/client/src/Account/Client.php',
'Nexmo\\Account\\PrefixPrice' => __DIR__ . '/..' . '/nexmo/client/src/Account/PrefixPrice.php',
'Nexmo\\Account\\Price' => __DIR__ . '/..' . '/nexmo/client/src/Account/Price.php',
'Nexmo\\Account\\Secret' => __DIR__ . '/..' . '/nexmo/client/src/Account/Secret.php',
'Nexmo\\Account\\SecretCollection' => __DIR__ . '/..' . '/nexmo/client/src/Account/SecretCollection.php',
'Nexmo\\Account\\SmsPrice' => __DIR__ . '/..' . '/nexmo/client/src/Account/SmsPrice.php',
'Nexmo\\Account\\VoicePrice' => __DIR__ . '/..' . '/nexmo/client/src/Account/VoicePrice.php',
'Nexmo\\ApiErrorHandler' => __DIR__ . '/..' . '/nexmo/client/src/ApiErrorHandler.php',
'Nexmo\\Application\\Application' => __DIR__ . '/..' . '/nexmo/client/src/Application/Application.php',
'Nexmo\\Application\\ApplicationInterface' => __DIR__ . '/..' . '/nexmo/client/src/Application/ApplicationInterface.php',
'Nexmo\\Application\\Client' => __DIR__ . '/..' . '/nexmo/client/src/Application/Client.php',
'Nexmo\\Application\\Filter' => __DIR__ . '/..' . '/nexmo/client/src/Application/Filter.php',
'Nexmo\\Application\\VoiceConfig' => __DIR__ . '/..' . '/nexmo/client/src/Application/VoiceConfig.php',
'Nexmo\\Application\\Webhook' => __DIR__ . '/..' . '/nexmo/client/src/Application/Webhook.php',
'Nexmo\\Call\\Call' => __DIR__ . '/..' . '/nexmo/client/src/Call/Call.php',
'Nexmo\\Call\\Collection' => __DIR__ . '/..' . '/nexmo/client/src/Call/Collection.php',
'Nexmo\\Call\\Dtmf' => __DIR__ . '/..' . '/nexmo/client/src/Call/Dtmf.php',
'Nexmo\\Call\\Earmuff' => __DIR__ . '/..' . '/nexmo/client/src/Call/Earmuff.php',
'Nexmo\\Call\\Endpoint' => __DIR__ . '/..' . '/nexmo/client/src/Call/Endpoint.php',
'Nexmo\\Call\\Event' => __DIR__ . '/..' . '/nexmo/client/src/Call/Event.php',
'Nexmo\\Call\\Filter' => __DIR__ . '/..' . '/nexmo/client/src/Call/Filter.php',
'Nexmo\\Call\\Hangup' => __DIR__ . '/..' . '/nexmo/client/src/Call/Hangup.php',
'Nexmo\\Call\\Mute' => __DIR__ . '/..' . '/nexmo/client/src/Call/Mute.php',
'Nexmo\\Call\\Stream' => __DIR__ . '/..' . '/nexmo/client/src/Call/Stream.php',
'Nexmo\\Call\\Talk' => __DIR__ . '/..' . '/nexmo/client/src/Call/Talk.php',
'Nexmo\\Call\\Transfer' => __DIR__ . '/..' . '/nexmo/client/src/Call/Transfer.php',
'Nexmo\\Call\\Unearmuff' => __DIR__ . '/..' . '/nexmo/client/src/Call/Unearmuff.php',
'Nexmo\\Call\\Unmute' => __DIR__ . '/..' . '/nexmo/client/src/Call/Unmute.php',
'Nexmo\\Call\\Webhook' => __DIR__ . '/..' . '/nexmo/client/src/Call/Webhook.php',
'Nexmo\\Client' => __DIR__ . '/..' . '/nexmo/client/src/Client.php',
'Nexmo\\Client\\Callback\\Callback' => __DIR__ . '/..' . '/nexmo/client/src/Client/Callback/Callback.php',
'Nexmo\\Client\\Callback\\CallbackInterface' => __DIR__ . '/..' . '/nexmo/client/src/Client/Callback/CallbackInterface.php',
'Nexmo\\Client\\ClientAwareInterface' => __DIR__ . '/..' . '/nexmo/client/src/Client/ClientAwareInterface.php',
'Nexmo\\Client\\ClientAwareTrait' => __DIR__ . '/..' . '/nexmo/client/src/Client/ClientAwareTrait.php',
'Nexmo\\Client\\Credentials\\AbstractCredentials' => __DIR__ . '/..' . '/nexmo/client/src/Client/Credentials/AbstractCredentials.php',
'Nexmo\\Client\\Credentials\\Basic' => __DIR__ . '/..' . '/nexmo/client/src/Client/Credentials/Basic.php',
'Nexmo\\Client\\Credentials\\Container' => __DIR__ . '/..' . '/nexmo/client/src/Client/Credentials/Container.php',
'Nexmo\\Client\\Credentials\\CredentialsInterface' => __DIR__ . '/..' . '/nexmo/client/src/Client/Credentials/CredentialsInterface.php',
'Nexmo\\Client\\Credentials\\Keypair' => __DIR__ . '/..' . '/nexmo/client/src/Client/Credentials/Keypair.php',
'Nexmo\\Client\\Credentials\\OAuth' => __DIR__ . '/..' . '/nexmo/client/src/Client/Credentials/OAuth.php',
'Nexmo\\Client\\Credentials\\SignatureSecret' => __DIR__ . '/..' . '/nexmo/client/src/Client/Credentials/SignatureSecret.php',
'Nexmo\\Client\\Exception\\Exception' => __DIR__ . '/..' . '/nexmo/client/src/Client/Exception/Exception.php',
'Nexmo\\Client\\Exception\\Request' => __DIR__ . '/..' . '/nexmo/client/src/Client/Exception/Request.php',
'Nexmo\\Client\\Exception\\Server' => __DIR__ . '/..' . '/nexmo/client/src/Client/Exception/Server.php',
'Nexmo\\Client\\Exception\\Transport' => __DIR__ . '/..' . '/nexmo/client/src/Client/Exception/Transport.php',
'Nexmo\\Client\\Exception\\Validation' => __DIR__ . '/..' . '/nexmo/client/src/Client/Exception/Validation.php',
'Nexmo\\Client\\Factory\\FactoryInterface' => __DIR__ . '/..' . '/nexmo/client/src/Client/Factory/FactoryInterface.php',
'Nexmo\\Client\\Factory\\MapFactory' => __DIR__ . '/..' . '/nexmo/client/src/Client/Factory/MapFactory.php',
'Nexmo\\Client\\Request\\AbstractRequest' => __DIR__ . '/..' . '/nexmo/client/src/Client/Request/AbstractRequest.php',
'Nexmo\\Client\\Request\\RequestInterface' => __DIR__ . '/..' . '/nexmo/client/src/Client/Request/RequestInterface.php',
'Nexmo\\Client\\Request\\WrapResponseInterface' => __DIR__ . '/..' . '/nexmo/client/src/Client/Request/WrapResponseInterface.php',
'Nexmo\\Client\\Response\\AbstractResponse' => __DIR__ . '/..' . '/nexmo/client/src/Client/Response/AbstractResponse.php',
'Nexmo\\Client\\Response\\Error' => __DIR__ . '/..' . '/nexmo/client/src/Client/Response/Error.php',
'Nexmo\\Client\\Response\\Response' => __DIR__ . '/..' . '/nexmo/client/src/Client/Response/Response.php',
'Nexmo\\Client\\Response\\ResponseInterface' => __DIR__ . '/..' . '/nexmo/client/src/Client/Response/ResponseInterface.php',
'Nexmo\\Client\\Signature' => __DIR__ . '/..' . '/nexmo/client/src/Client/Signature.php',
'Nexmo\\Conversations\\Collection' => __DIR__ . '/..' . '/nexmo/client/src/Conversations/Collection.php',
'Nexmo\\Conversations\\Conversation' => __DIR__ . '/..' . '/nexmo/client/src/Conversations/Conversation.php',
'Nexmo\\Conversion\\Client' => __DIR__ . '/..' . '/nexmo/client/src/Conversion/Client.php',
'Nexmo\\Entity\\ArrayAccessTrait' => __DIR__ . '/..' . '/nexmo/client/src/Entity/ArrayAccessTrait.php',
'Nexmo\\Entity\\CollectionAwareInterface' => __DIR__ . '/..' . '/nexmo/client/src/Entity/CollectionAwareInterface.php',
'Nexmo\\Entity\\CollectionAwareTrait' => __DIR__ . '/..' . '/nexmo/client/src/Entity/CollectionAwareTrait.php',
'Nexmo\\Entity\\CollectionInterface' => __DIR__ . '/..' . '/nexmo/client/src/Entity/CollectionInterface.php',
'Nexmo\\Entity\\CollectionTrait' => __DIR__ . '/..' . '/nexmo/client/src/Entity/CollectionTrait.php',
'Nexmo\\Entity\\EmptyFilter' => __DIR__ . '/..' . '/nexmo/client/src/Entity/EmptyFilter.php',
'Nexmo\\Entity\\EntityInterface' => __DIR__ . '/..' . '/nexmo/client/src/Entity/EntityInterface.php',
'Nexmo\\Entity\\FilterInterface' => __DIR__ . '/..' . '/nexmo/client/src/Entity/FilterInterface.php',
'Nexmo\\Entity\\HasEntityTrait' => __DIR__ . '/..' . '/nexmo/client/src/Entity/HasEntityTrait.php',
'Nexmo\\Entity\\JsonResponseTrait' => __DIR__ . '/..' . '/nexmo/client/src/Entity/JsonResponseTrait.php',
'Nexmo\\Entity\\JsonSerializableInterface' => __DIR__ . '/..' . '/nexmo/client/src/Entity/JsonSerializableInterface.php',
'Nexmo\\Entity\\JsonSerializableTrait' => __DIR__ . '/..' . '/nexmo/client/src/Entity/JsonSerializableTrait.php',
'Nexmo\\Entity\\JsonUnserializableInterface' => __DIR__ . '/..' . '/nexmo/client/src/Entity/JsonUnserializableInterface.php',
'Nexmo\\Entity\\NoRequestResponseTrait' => __DIR__ . '/..' . '/nexmo/client/src/Entity/NoRequestResponseTrait.php',
'Nexmo\\Entity\\Psr7Trait' => __DIR__ . '/..' . '/nexmo/client/src/Entity/Psr7Trait.php',
'Nexmo\\Entity\\RequestArrayTrait' => __DIR__ . '/..' . '/nexmo/client/src/Entity/RequestArrayTrait.php',
'Nexmo\\Insights\\Advanced' => __DIR__ . '/..' . '/nexmo/client/src/Insights/Advanced.php',
'Nexmo\\Insights\\AdvancedCnam' => __DIR__ . '/..' . '/nexmo/client/src/Insights/AdvancedCnam.php',
'Nexmo\\Insights\\Basic' => __DIR__ . '/..' . '/nexmo/client/src/Insights/Basic.php',
'Nexmo\\Insights\\Client' => __DIR__ . '/..' . '/nexmo/client/src/Insights/Client.php',
'Nexmo\\Insights\\CnamTrait' => __DIR__ . '/..' . '/nexmo/client/src/Insights/CnamTrait.php',
'Nexmo\\Insights\\Standard' => __DIR__ . '/..' . '/nexmo/client/src/Insights/Standard.php',
'Nexmo\\Insights\\StandardCnam' => __DIR__ . '/..' . '/nexmo/client/src/Insights/StandardCnam.php',
'Nexmo\\InvalidResponseException' => __DIR__ . '/..' . '/nexmo/client/src/InvalidResponseException.php',
'Nexmo\\Message\\AutoDetect' => __DIR__ . '/..' . '/nexmo/client/src/Message/AutoDetect.php',
'Nexmo\\Message\\Binary' => __DIR__ . '/..' . '/nexmo/client/src/Message/Binary.php',
'Nexmo\\Message\\Callback\\Receipt' => __DIR__ . '/..' . '/nexmo/client/src/Message/Callback/Receipt.php',
'Nexmo\\Message\\Client' => __DIR__ . '/..' . '/nexmo/client/src/Message/Client.php',
'Nexmo\\Message\\CollectionTrait' => __DIR__ . '/..' . '/nexmo/client/src/Message/CollectionTrait.php',
'Nexmo\\Message\\EncodingDetector' => __DIR__ . '/..' . '/nexmo/client/src/Message/EncodingDetector.php',
'Nexmo\\Message\\InboundMessage' => __DIR__ . '/..' . '/nexmo/client/src/Message/InboundMessage.php',
'Nexmo\\Message\\Message' => __DIR__ . '/..' . '/nexmo/client/src/Message/Message.php',
'Nexmo\\Message\\MessageInterface' => __DIR__ . '/..' . '/nexmo/client/src/Message/MessageInterface.php',
'Nexmo\\Message\\Query' => __DIR__ . '/..' . '/nexmo/client/src/Message/Query.php',
'Nexmo\\Message\\Response\\Collection' => __DIR__ . '/..' . '/nexmo/client/src/Message/Response/Collection.php',
'Nexmo\\Message\\Response\\Message' => __DIR__ . '/..' . '/nexmo/client/src/Message/Response/Message.php',
'Nexmo\\Message\\Text' => __DIR__ . '/..' . '/nexmo/client/src/Message/Text.php',
'Nexmo\\Message\\Unicode' => __DIR__ . '/..' . '/nexmo/client/src/Message/Unicode.php',
'Nexmo\\Message\\Vcal' => __DIR__ . '/..' . '/nexmo/client/src/Message/Vcal.php',
'Nexmo\\Message\\Vcard' => __DIR__ . '/..' . '/nexmo/client/src/Message/Vcard.php',
'Nexmo\\Message\\Wap' => __DIR__ . '/..' . '/nexmo/client/src/Message/Wap.php',
'Nexmo\\Network' => __DIR__ . '/..' . '/nexmo/client/src/Network.php',
'Nexmo\\Network\\Number\\Callback' => __DIR__ . '/..' . '/nexmo/client/src/Network/Number/Callback.php',
'Nexmo\\Network\\Number\\Request' => __DIR__ . '/..' . '/nexmo/client/src/Network/Number/Request.php',
'Nexmo\\Network\\Number\\Response' => __DIR__ . '/..' . '/nexmo/client/src/Network/Number/Response.php',
'Nexmo\\Numbers\\Client' => __DIR__ . '/..' . '/nexmo/client/src/Numbers/Client.php',
'Nexmo\\Numbers\\Number' => __DIR__ . '/..' . '/nexmo/client/src/Numbers/Number.php',
'Nexmo\\Redact\\Client' => __DIR__ . '/..' . '/nexmo/client/src/Redact/Client.php',
'Nexmo\\Response' => __DIR__ . '/..' . '/nexmo/client/src/Response.php',
'Nexmo\\Response\\Message' => __DIR__ . '/..' . '/nexmo/client/src/Response/Message.php',
'Nexmo\\User\\Collection' => __DIR__ . '/..' . '/nexmo/client/src/User/Collection.php',
'Nexmo\\User\\User' => __DIR__ . '/..' . '/nexmo/client/src/User/User.php',
'Nexmo\\Verify\\Check' => __DIR__ . '/..' . '/nexmo/client/src/Verify/Check.php',
'Nexmo\\Verify\\Client' => __DIR__ . '/..' . '/nexmo/client/src/Verify/Client.php',
'Nexmo\\Verify\\Verification' => __DIR__ . '/..' . '/nexmo/client/src/Verify/Verification.php',
'Nexmo\\Verify\\VerificationInterface' => __DIR__ . '/..' . '/nexmo/client/src/Verify/VerificationInterface.php',
'Nexmo\\Voice\\Call\\Call' => __DIR__ . '/..' . '/nexmo/client/src/Voice/Call/Call.php',
'Nexmo\\Voice\\Call\\Inbound' => __DIR__ . '/..' . '/nexmo/client/src/Voice/Call/Inbound.php',
'Nexmo\\Voice\\Message\\Callback' => __DIR__ . '/..' . '/nexmo/client/src/Voice/Message/Callback.php',
'Nexmo\\Voice\\Message\\Message' => __DIR__ . '/..' . '/nexmo/client/src/Voice/Message/Message.php',
'Opis\\Closure\\Analyzer' => __DIR__ . '/..' . '/opis/closure/src/Analyzer.php', 'Opis\\Closure\\Analyzer' => __DIR__ . '/..' . '/opis/closure/src/Analyzer.php',
'Opis\\Closure\\ClosureContext' => __DIR__ . '/..' . '/opis/closure/src/ClosureContext.php', 'Opis\\Closure\\ClosureContext' => __DIR__ . '/..' . '/opis/closure/src/ClosureContext.php',
'Opis\\Closure\\ClosureScope' => __DIR__ . '/..' . '/opis/closure/src/ClosureScope.php', 'Opis\\Closure\\ClosureScope' => __DIR__ . '/..' . '/opis/closure/src/ClosureScope.php',
@ -3298,6 +3504,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/NullLogger.php', 'Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/NullLogger.php',
'Psr\\Log\\Test\\DummyTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', 'Psr\\Log\\Test\\DummyTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
'Psr\\Log\\Test\\LoggerInterfaceTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', 'Psr\\Log\\Test\\LoggerInterfaceTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
'Psr\\Log\\Test\\TestLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/TestLogger.php',
'Psr\\SimpleCache\\CacheException' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheException.php', 'Psr\\SimpleCache\\CacheException' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheException.php',
'Psr\\SimpleCache\\CacheInterface' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheInterface.php', 'Psr\\SimpleCache\\CacheInterface' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheInterface.php',
'Psr\\SimpleCache\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/simple-cache/src/InvalidArgumentException.php', 'Psr\\SimpleCache\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/simple-cache/src/InvalidArgumentException.php',
@ -3612,6 +3819,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyle.php', 'Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyle.php',
'Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleInterface.php', 'Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleInterface.php',
'Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleStack.php', 'Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleStack.php',
'Symfony\\Component\\Console\\Formatter\\WrappableOutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/WrappableOutputFormatterInterface.php',
'Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DebugFormatterHelper.php', 'Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DebugFormatterHelper.php',
'Symfony\\Component\\Console\\Helper\\DescriptorHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DescriptorHelper.php', 'Symfony\\Component\\Console\\Helper\\DescriptorHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DescriptorHelper.php',
'Symfony\\Component\\Console\\Helper\\FormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/FormatterHelper.php', 'Symfony\\Component\\Console\\Helper\\FormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/FormatterHelper.php',
@ -3808,6 +4016,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\HttpFoundation\\Session\\SessionBagInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/SessionBagInterface.php', 'Symfony\\Component\\HttpFoundation\\Session\\SessionBagInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/SessionBagInterface.php',
'Symfony\\Component\\HttpFoundation\\Session\\SessionBagProxy' => __DIR__ . '/..' . '/symfony/http-foundation/Session/SessionBagProxy.php', 'Symfony\\Component\\HttpFoundation\\Session\\SessionBagProxy' => __DIR__ . '/..' . '/symfony/http-foundation/Session/SessionBagProxy.php',
'Symfony\\Component\\HttpFoundation\\Session\\SessionInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/SessionInterface.php', 'Symfony\\Component\\HttpFoundation\\Session\\SessionInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/SessionInterface.php',
'Symfony\\Component\\HttpFoundation\\Session\\SessionUtils' => __DIR__ . '/..' . '/symfony/http-foundation/Session/SessionUtils.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\AbstractSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\AbstractSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MemcachedSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MemcachedSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php',
'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MigratingSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/MigratingSessionHandler.php', 'Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\MigratingSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/MigratingSessionHandler.php',
@ -3913,6 +4122,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\HttpKernel\\Exception\\AccessDeniedHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/AccessDeniedHttpException.php', 'Symfony\\Component\\HttpKernel\\Exception\\AccessDeniedHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/AccessDeniedHttpException.php',
'Symfony\\Component\\HttpKernel\\Exception\\BadRequestHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/BadRequestHttpException.php', 'Symfony\\Component\\HttpKernel\\Exception\\BadRequestHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/BadRequestHttpException.php',
'Symfony\\Component\\HttpKernel\\Exception\\ConflictHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/ConflictHttpException.php', 'Symfony\\Component\\HttpKernel\\Exception\\ConflictHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/ConflictHttpException.php',
'Symfony\\Component\\HttpKernel\\Exception\\ControllerDoesNotReturnResponseException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/ControllerDoesNotReturnResponseException.php',
'Symfony\\Component\\HttpKernel\\Exception\\GoneHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/GoneHttpException.php', 'Symfony\\Component\\HttpKernel\\Exception\\GoneHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/GoneHttpException.php',
'Symfony\\Component\\HttpKernel\\Exception\\HttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/HttpException.php', 'Symfony\\Component\\HttpKernel\\Exception\\HttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/HttpException.php',
'Symfony\\Component\\HttpKernel\\Exception\\HttpExceptionInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/HttpExceptionInterface.php', 'Symfony\\Component\\HttpKernel\\Exception\\HttpExceptionInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/HttpExceptionInterface.php',
@ -4025,6 +4235,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumper' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/MatcherDumper.php', 'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumper' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/MatcherDumper.php',
'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumperInterface' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/MatcherDumperInterface.php', 'Symfony\\Component\\Routing\\Matcher\\Dumper\\MatcherDumperInterface' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/MatcherDumperInterface.php',
'Symfony\\Component\\Routing\\Matcher\\Dumper\\PhpMatcherDumper' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/PhpMatcherDumper.php', 'Symfony\\Component\\Routing\\Matcher\\Dumper\\PhpMatcherDumper' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/PhpMatcherDumper.php',
'Symfony\\Component\\Routing\\Matcher\\Dumper\\PhpMatcherTrait' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/PhpMatcherTrait.php',
'Symfony\\Component\\Routing\\Matcher\\Dumper\\StaticPrefixCollection' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/StaticPrefixCollection.php', 'Symfony\\Component\\Routing\\Matcher\\Dumper\\StaticPrefixCollection' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/StaticPrefixCollection.php',
'Symfony\\Component\\Routing\\Matcher\\RedirectableUrlMatcher' => __DIR__ . '/..' . '/symfony/routing/Matcher/RedirectableUrlMatcher.php', 'Symfony\\Component\\Routing\\Matcher\\RedirectableUrlMatcher' => __DIR__ . '/..' . '/symfony/routing/Matcher/RedirectableUrlMatcher.php',
'Symfony\\Component\\Routing\\Matcher\\RedirectableUrlMatcherInterface' => __DIR__ . '/..' . '/symfony/routing/Matcher/RedirectableUrlMatcherInterface.php', 'Symfony\\Component\\Routing\\Matcher\\RedirectableUrlMatcherInterface' => __DIR__ . '/..' . '/symfony/routing/Matcher/RedirectableUrlMatcherInterface.php',
@ -4075,6 +4286,8 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\Translation\\Extractor\\PhpExtractor' => __DIR__ . '/..' . '/symfony/translation/Extractor/PhpExtractor.php', 'Symfony\\Component\\Translation\\Extractor\\PhpExtractor' => __DIR__ . '/..' . '/symfony/translation/Extractor/PhpExtractor.php',
'Symfony\\Component\\Translation\\Extractor\\PhpStringTokenParser' => __DIR__ . '/..' . '/symfony/translation/Extractor/PhpStringTokenParser.php', 'Symfony\\Component\\Translation\\Extractor\\PhpStringTokenParser' => __DIR__ . '/..' . '/symfony/translation/Extractor/PhpStringTokenParser.php',
'Symfony\\Component\\Translation\\Formatter\\ChoiceMessageFormatterInterface' => __DIR__ . '/..' . '/symfony/translation/Formatter/ChoiceMessageFormatterInterface.php', 'Symfony\\Component\\Translation\\Formatter\\ChoiceMessageFormatterInterface' => __DIR__ . '/..' . '/symfony/translation/Formatter/ChoiceMessageFormatterInterface.php',
'Symfony\\Component\\Translation\\Formatter\\IntlFormatter' => __DIR__ . '/..' . '/symfony/translation/Formatter/IntlFormatter.php',
'Symfony\\Component\\Translation\\Formatter\\IntlFormatterInterface' => __DIR__ . '/..' . '/symfony/translation/Formatter/IntlFormatterInterface.php',
'Symfony\\Component\\Translation\\Formatter\\MessageFormatter' => __DIR__ . '/..' . '/symfony/translation/Formatter/MessageFormatter.php', 'Symfony\\Component\\Translation\\Formatter\\MessageFormatter' => __DIR__ . '/..' . '/symfony/translation/Formatter/MessageFormatter.php',
'Symfony\\Component\\Translation\\Formatter\\MessageFormatterInterface' => __DIR__ . '/..' . '/symfony/translation/Formatter/MessageFormatterInterface.php', 'Symfony\\Component\\Translation\\Formatter\\MessageFormatterInterface' => __DIR__ . '/..' . '/symfony/translation/Formatter/MessageFormatterInterface.php',
'Symfony\\Component\\Translation\\IdentityTranslator' => __DIR__ . '/..' . '/symfony/translation/IdentityTranslator.php', 'Symfony\\Component\\Translation\\IdentityTranslator' => __DIR__ . '/..' . '/symfony/translation/IdentityTranslator.php',
@ -4105,6 +4318,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\Translation\\TranslatorBagInterface' => __DIR__ . '/..' . '/symfony/translation/TranslatorBagInterface.php', 'Symfony\\Component\\Translation\\TranslatorBagInterface' => __DIR__ . '/..' . '/symfony/translation/TranslatorBagInterface.php',
'Symfony\\Component\\Translation\\TranslatorInterface' => __DIR__ . '/..' . '/symfony/translation/TranslatorInterface.php', 'Symfony\\Component\\Translation\\TranslatorInterface' => __DIR__ . '/..' . '/symfony/translation/TranslatorInterface.php',
'Symfony\\Component\\Translation\\Util\\ArrayConverter' => __DIR__ . '/..' . '/symfony/translation/Util/ArrayConverter.php', 'Symfony\\Component\\Translation\\Util\\ArrayConverter' => __DIR__ . '/..' . '/symfony/translation/Util/ArrayConverter.php',
'Symfony\\Component\\Translation\\Util\\XliffUtils' => __DIR__ . '/..' . '/symfony/translation/Util/XliffUtils.php',
'Symfony\\Component\\Translation\\Writer\\TranslationWriter' => __DIR__ . '/..' . '/symfony/translation/Writer/TranslationWriter.php', 'Symfony\\Component\\Translation\\Writer\\TranslationWriter' => __DIR__ . '/..' . '/symfony/translation/Writer/TranslationWriter.php',
'Symfony\\Component\\Translation\\Writer\\TranslationWriterInterface' => __DIR__ . '/..' . '/symfony/translation/Writer/TranslationWriterInterface.php', 'Symfony\\Component\\Translation\\Writer\\TranslationWriterInterface' => __DIR__ . '/..' . '/symfony/translation/Writer/TranslationWriterInterface.php',
'Symfony\\Component\\VarDumper\\Caster\\AmqpCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/AmqpCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\AmqpCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/AmqpCaster.php',
@ -4121,9 +4335,12 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\VarDumper\\Caster\\ExceptionCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ExceptionCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\ExceptionCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ExceptionCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\FrameStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/FrameStub.php', 'Symfony\\Component\\VarDumper\\Caster\\FrameStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/FrameStub.php',
'Symfony\\Component\\VarDumper\\Caster\\GmpCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/GmpCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\GmpCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/GmpCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\IntlCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/IntlCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\LinkStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/LinkStub.php', 'Symfony\\Component\\VarDumper\\Caster\\LinkStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/LinkStub.php',
'Symfony\\Component\\VarDumper\\Caster\\MemcachedCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/MemcachedCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\PdoCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/PdoCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\PdoCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/PdoCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\PgSqlCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/PgSqlCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\PgSqlCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/PgSqlCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\ProxyManagerCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ProxyManagerCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\RedisCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/RedisCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\RedisCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/RedisCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\ReflectionCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ReflectionCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\ReflectionCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ReflectionCaster.php',
'Symfony\\Component\\VarDumper\\Caster\\ResourceCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ResourceCaster.php', 'Symfony\\Component\\VarDumper\\Caster\\ResourceCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ResourceCaster.php',
@ -4158,6 +4375,26 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Symfony\\Component\\VarDumper\\Server\\DumpServer' => __DIR__ . '/..' . '/symfony/var-dumper/Server/DumpServer.php', 'Symfony\\Component\\VarDumper\\Server\\DumpServer' => __DIR__ . '/..' . '/symfony/var-dumper/Server/DumpServer.php',
'Symfony\\Component\\VarDumper\\Test\\VarDumperTestTrait' => __DIR__ . '/..' . '/symfony/var-dumper/Test/VarDumperTestTrait.php', 'Symfony\\Component\\VarDumper\\Test\\VarDumperTestTrait' => __DIR__ . '/..' . '/symfony/var-dumper/Test/VarDumperTestTrait.php',
'Symfony\\Component\\VarDumper\\VarDumper' => __DIR__ . '/..' . '/symfony/var-dumper/VarDumper.php', 'Symfony\\Component\\VarDumper\\VarDumper' => __DIR__ . '/..' . '/symfony/var-dumper/VarDumper.php',
'Symfony\\Contracts\\Cache\\CacheInterface' => __DIR__ . '/..' . '/symfony/contracts/Cache/CacheInterface.php',
'Symfony\\Contracts\\Cache\\CacheTrait' => __DIR__ . '/..' . '/symfony/contracts/Cache/CacheTrait.php',
'Symfony\\Contracts\\Cache\\CallbackInterface' => __DIR__ . '/..' . '/symfony/contracts/Cache/CallbackInterface.php',
'Symfony\\Contracts\\Cache\\ItemInterface' => __DIR__ . '/..' . '/symfony/contracts/Cache/ItemInterface.php',
'Symfony\\Contracts\\Cache\\TagAwareCacheInterface' => __DIR__ . '/..' . '/symfony/contracts/Cache/TagAwareCacheInterface.php',
'Symfony\\Contracts\\Service\\ResetInterface' => __DIR__ . '/..' . '/symfony/contracts/Service/ResetInterface.php',
'Symfony\\Contracts\\Service\\ServiceLocatorTrait' => __DIR__ . '/..' . '/symfony/contracts/Service/ServiceLocatorTrait.php',
'Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => __DIR__ . '/..' . '/symfony/contracts/Service/ServiceSubscriberInterface.php',
'Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => __DIR__ . '/..' . '/symfony/contracts/Service/ServiceSubscriberTrait.php',
'Symfony\\Contracts\\Tests\\Cache\\CacheTraitTest' => __DIR__ . '/..' . '/symfony/contracts/Tests/Cache/CacheTraitTest.php',
'Symfony\\Contracts\\Tests\\Cache\\TestPool' => __DIR__ . '/..' . '/symfony/contracts/Tests/Cache/CacheTraitTest.php',
'Symfony\\Contracts\\Tests\\Service\\ChildTestService' => __DIR__ . '/..' . '/symfony/contracts/Tests/Service/ServiceSubscriberTraitTest.php',
'Symfony\\Contracts\\Tests\\Service\\ParentTestService' => __DIR__ . '/..' . '/symfony/contracts/Tests/Service/ServiceSubscriberTraitTest.php',
'Symfony\\Contracts\\Tests\\Service\\ServiceLocatorTest' => __DIR__ . '/..' . '/symfony/contracts/Tests/Service/ServiceLocatorTest.php',
'Symfony\\Contracts\\Tests\\Service\\ServiceSubscriberTraitTest' => __DIR__ . '/..' . '/symfony/contracts/Tests/Service/ServiceSubscriberTraitTest.php',
'Symfony\\Contracts\\Tests\\Service\\TestService' => __DIR__ . '/..' . '/symfony/contracts/Tests/Service/ServiceSubscriberTraitTest.php',
'Symfony\\Contracts\\Tests\\Translation\\TranslatorTest' => __DIR__ . '/..' . '/symfony/contracts/Tests/Translation/TranslatorTest.php',
'Symfony\\Contracts\\Translation\\LocaleAwareInterface' => __DIR__ . '/..' . '/symfony/contracts/Translation/LocaleAwareInterface.php',
'Symfony\\Contracts\\Translation\\TranslatorInterface' => __DIR__ . '/..' . '/symfony/contracts/Translation/TranslatorInterface.php',
'Symfony\\Contracts\\Translation\\TranslatorTrait' => __DIR__ . '/..' . '/symfony/contracts/Translation/TranslatorTrait.php',
'Symfony\\Polyfill\\Ctype\\Ctype' => __DIR__ . '/..' . '/symfony/polyfill-ctype/Ctype.php', 'Symfony\\Polyfill\\Ctype\\Ctype' => __DIR__ . '/..' . '/symfony/polyfill-ctype/Ctype.php',
'Symfony\\Polyfill\\Mbstring\\Mbstring' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/Mbstring.php', 'Symfony\\Polyfill\\Mbstring\\Mbstring' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/Mbstring.php',
'Symfony\\Polyfill\\Php72\\Php72' => __DIR__ . '/..' . '/symfony/polyfill-php72/Php72.php', 'Symfony\\Polyfill\\Php72\\Php72' => __DIR__ . '/..' . '/symfony/polyfill-php72/Php72.php',
@ -4204,6 +4441,38 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf
'Whoops\\Util\\SystemFacade' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/SystemFacade.php', 'Whoops\\Util\\SystemFacade' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/SystemFacade.php',
'Whoops\\Util\\TemplateHelper' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/TemplateHelper.php', 'Whoops\\Util\\TemplateHelper' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/TemplateHelper.php',
'XdgBaseDir\\Xdg' => __DIR__ . '/..' . '/dnoegel/php-xdg-base-dir/src/Xdg.php', 'XdgBaseDir\\Xdg' => __DIR__ . '/..' . '/dnoegel/php-xdg-base-dir/src/Xdg.php',
'Zend\\Diactoros\\AbstractSerializer' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/AbstractSerializer.php',
'Zend\\Diactoros\\CallbackStream' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/CallbackStream.php',
'Zend\\Diactoros\\Exception\\DeprecatedMethodException' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/Exception/DeprecatedMethodException.php',
'Zend\\Diactoros\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/Exception/ExceptionInterface.php',
'Zend\\Diactoros\\HeaderSecurity' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/HeaderSecurity.php',
'Zend\\Diactoros\\MessageTrait' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/MessageTrait.php',
'Zend\\Diactoros\\PhpInputStream' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/PhpInputStream.php',
'Zend\\Diactoros\\RelativeStream' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/RelativeStream.php',
'Zend\\Diactoros\\Request' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/Request.php',
'Zend\\Diactoros\\RequestTrait' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/RequestTrait.php',
'Zend\\Diactoros\\Request\\ArraySerializer' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/Request/ArraySerializer.php',
'Zend\\Diactoros\\Request\\Serializer' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/Request/Serializer.php',
'Zend\\Diactoros\\Response' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/Response.php',
'Zend\\Diactoros\\Response\\ArraySerializer' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/Response/ArraySerializer.php',
'Zend\\Diactoros\\Response\\EmitterInterface' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/Response/EmitterInterface.php',
'Zend\\Diactoros\\Response\\EmptyResponse' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/Response/EmptyResponse.php',
'Zend\\Diactoros\\Response\\HtmlResponse' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/Response/HtmlResponse.php',
'Zend\\Diactoros\\Response\\InjectContentTypeTrait' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/Response/InjectContentTypeTrait.php',
'Zend\\Diactoros\\Response\\JsonResponse' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/Response/JsonResponse.php',
'Zend\\Diactoros\\Response\\RedirectResponse' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/Response/RedirectResponse.php',
'Zend\\Diactoros\\Response\\SapiEmitter' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/Response/SapiEmitter.php',
'Zend\\Diactoros\\Response\\SapiEmitterTrait' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/Response/SapiEmitterTrait.php',
'Zend\\Diactoros\\Response\\SapiStreamEmitter' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/Response/SapiStreamEmitter.php',
'Zend\\Diactoros\\Response\\Serializer' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/Response/Serializer.php',
'Zend\\Diactoros\\Response\\TextResponse' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/Response/TextResponse.php',
'Zend\\Diactoros\\Response\\XmlResponse' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/Response/XmlResponse.php',
'Zend\\Diactoros\\Server' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/Server.php',
'Zend\\Diactoros\\ServerRequest' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/ServerRequest.php',
'Zend\\Diactoros\\ServerRequestFactory' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/ServerRequestFactory.php',
'Zend\\Diactoros\\Stream' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/Stream.php',
'Zend\\Diactoros\\UploadedFile' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/UploadedFile.php',
'Zend\\Diactoros\\Uri' => __DIR__ . '/..' . '/zendframework/zend-diactoros/src/Uri.php',
'phpDocumentor\\Reflection\\DocBlock' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock.php', 'phpDocumentor\\Reflection\\DocBlock' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock.php',
'phpDocumentor\\Reflection\\DocBlockFactory' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlockFactory.php', 'phpDocumentor\\Reflection\\DocBlockFactory' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlockFactory.php',
'phpDocumentor\\Reflection\\DocBlockFactoryInterface' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php', 'phpDocumentor\\Reflection\\DocBlockFactoryInterface' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php',

File diff suppressed because it is too large Load diff

View file

@ -62,7 +62,8 @@ class MultipleValidationWithAnd implements EmailValidation
$errors = []; $errors = [];
foreach ($this->validations as $validation) { foreach ($this->validations as $validation) {
$emailLexer->reset(); $emailLexer->reset();
$result = $result && $validation->isValid($email, $emailLexer); $validationResult = $validation->isValid($email, $emailLexer);
$result = $result && $validationResult;
$this->warnings = array_merge($this->warnings, $validation->getWarnings()); $this->warnings = array_merge($this->warnings, $validation->getWarnings());
$errors = $this->addNewError($validation->getError(), $errors); $errors = $this->addNewError($validation->getError(), $errors);

View file

@ -1,12 +1,15 @@
# EmailValidator # EmailValidator
[![Build Status](https://travis-ci.org/egulias/EmailValidator.png?branch=master)](https://travis-ci.org/egulias/EmailValidator) [![Coverage Status](https://coveralls.io/repos/egulias/EmailValidator/badge.png?branch=master)](https://coveralls.io/r/egulias/EmailValidator?branch=master) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/egulias/EmailValidator/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/egulias/EmailValidator/?branch=master) [![SensioLabsInsight](https://insight.sensiolabs.com/projects/22ba6692-9c02-42e5-a65d-1c5696bfffc6/small.png)](https://insight.sensiolabs.com/projects/22ba6692-9c02-42e5-a65d-1c5696bfffc6) [![Build Status](https://travis-ci.org/egulias/EmailValidator.png?branch=master)](https://travis-ci.org/egulias/EmailValidator) [![Coverage Status](https://coveralls.io/repos/egulias/EmailValidator/badge.png?branch=master)](https://coveralls.io/r/egulias/EmailValidator?branch=master) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/egulias/EmailValidator/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/egulias/EmailValidator/?branch=master) [![SensioLabsInsight](https://insight.sensiolabs.com/projects/22ba6692-9c02-42e5-a65d-1c5696bfffc6/small.png)](https://insight.sensiolabs.com/projects/22ba6692-9c02-42e5-a65d-1c5696bfffc6)
============================= =============================
With the help of [PHPStorm](https://www.jetbrains.com/phpstorm/) ## Suported RFCs ##
This library aims to support:
RFC 5321, 5322, 6530, 6531, 6532.
## Requirements ## ## Requirements ##
* [Composer](https://getcomposer.org) is required for installation * [Composer](https://getcomposer.org) is required for installation
* [Spoofchecking](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/SpoofCheckValidation.php) and [DNSCheckValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/DNSCheckValidation.php) validation requires that your PHP system have the [PHP Internationalization Libraries](https://php.net/manual/en/book.intl.php) (also known as PHP Intl) * [Spoofchecking](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/SpoofCheckValidation.php) and [DNSCheckValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/DNSCheckValidation.php) validation requires that your PHP system has the [PHP Internationalization Libraries](https://php.net/manual/en/book.intl.php) (also known as PHP Intl)
## Installation ## ## Installation ##

View file

@ -15,19 +15,20 @@ return [
* of your proxy (e.g. if using ELB or similar). * of your proxy (e.g. if using ELB or similar).
* *
*/ */
'proxies' => null, // [<ip addresses>,], '*' 'proxies' => null, // [<ip addresses>,], '*', '<ip addresses>,'
/* /*
* To trust one or more specific proxies that connect * To trust one or more specific proxies that connect
* directly to your server, use an array of IP addresses: * directly to your server, use an array or a string separated by comma of IP addresses:
*/ */
# 'proxies' => ['192.168.1.1'], // 'proxies' => ['192.168.1.1'],
// 'proxies' => '192.168.1.1, 192.168.1.2',
/* /*
* Or, to trust all proxies that connect * Or, to trust all proxies that connect
* directly to your server, use a "*" * directly to your server, use a "*"
*/ */
# 'proxies' => '*', // 'proxies' => '*',
/* /*
* Which headers to use to detect proxy related data (For, Host, Proto, Port) * Which headers to use to detect proxy related data (For, Host, Proto, Port)
@ -36,10 +37,14 @@ return [
* *
* - Illuminate\Http\Request::HEADER_X_FORWARDED_ALL (use all x-forwarded-* headers to establish trust) * - Illuminate\Http\Request::HEADER_X_FORWARDED_ALL (use all x-forwarded-* headers to establish trust)
* - Illuminate\Http\Request::HEADER_FORWARDED (use the FORWARDED header to establish trust) * - Illuminate\Http\Request::HEADER_FORWARDED (use the FORWARDED header to establish trust)
* - Illuminate\Http\Request::HEADER_X_FORWARDED_AWS_ELB (If you are using AWS Elastic Load Balancer)
*
* - 'HEADER_X_FORWARDED_ALL' (use all x-forwarded-* headers to establish trust)
* - 'HEADER_FORWARDED' (use the FORWARDED header to establish trust)
* - 'HEADER_X_FORWARDED_AWS_ELB' (If you are using AWS Elastic Load Balancer)
* *
* @link https://symfony.com/doc/current/deployment/proxies.html * @link https://symfony.com/doc/current/deployment/proxies.html
*/ */
'headers' => Illuminate\Http\Request::HEADER_X_FORWARDED_ALL, 'headers' => Illuminate\Http\Request::HEADER_X_FORWARDED_ALL,
]; ];

View file

@ -18,14 +18,14 @@ class TrustProxies
/** /**
* The trusted proxies for the application. * The trusted proxies for the application.
* *
* @var array * @var null|string|array
*/ */
protected $proxies; protected $proxies;
/** /**
* The proxy header mappings. * The proxy header mappings.
* *
* @var array * @var null|string|int
*/ */
protected $headers; protected $headers;
@ -66,16 +66,19 @@ class TrustProxies
{ {
$trustedIps = $this->proxies ?: $this->config->get('trustedproxy.proxies'); $trustedIps = $this->proxies ?: $this->config->get('trustedproxy.proxies');
// Trust any IP address that calls us
// `**` for backwards compatibility, but is deprecated
if ($trustedIps === '*' || $trustedIps === '**') {
return $this->setTrustedProxyIpAddressesToTheCallingIp($request);
}
// Support IPs addresses separated by comma
$trustedIps = is_string($trustedIps) ? array_map('trim', explode(',', $trustedIps)) : $trustedIps;
// Only trust specific IP addresses // Only trust specific IP addresses
if (is_array($trustedIps)) { if (is_array($trustedIps)) {
return $this->setTrustedProxyIpAddressesToSpecificIps($request, $trustedIps); return $this->setTrustedProxyIpAddressesToSpecificIps($request, $trustedIps);
} }
// Trust any IP address that calls us
// `**` for backwards compatibility, but is depreciated
if ($trustedIps === '*' || $trustedIps === '**') {
return $this->setTrustedProxyIpAddressesToTheCallingIp($request);
}
} }
/** /**
@ -102,10 +105,25 @@ class TrustProxies
/** /**
* Retrieve trusted header name(s), falling back to defaults if config not set. * Retrieve trusted header name(s), falling back to defaults if config not set.
* *
* @return array * @return int A bit field of Request::HEADER_*, to set which headers to trust from your proxies.
*/ */
protected function getTrustedHeaderNames() protected function getTrustedHeaderNames()
{ {
return $this->headers ?: $this->config->get('trustedproxy.headers'); $headers = $this->headers ?: $this->config->get('trustedproxy.headers');
switch ($headers) {
case 'HEADER_X_FORWARDED_AWS_ELB':
case Request::HEADER_X_FORWARDED_AWS_ELB:
return Request::HEADER_X_FORWARDED_AWS_ELB;
break;
case 'HEADER_FORWARDED':
case Request::HEADER_FORWARDED:
return Request::HEADER_FORWARDED;
break;
default:
return Request::HEADER_X_FORWARDED_ALL;
}
// Should never reach this point
return $headers;
} }
} }

View file

@ -1,3 +1,11 @@
# 2.3.1
* Prevent exception in Whoops when caught exception frame is not related to real file
# 2.3.0
* Show previous exception messages.
# 2.2.0 # 2.2.0
* Support PHP 7.2 * Support PHP 7.2

View file

@ -112,15 +112,10 @@ class Frame implements Serializable
public function getFileContents() public function getFileContents()
{ {
if ($this->fileContentsCache === null && $filePath = $this->getFile()) { if ($this->fileContentsCache === null && $filePath = $this->getFile()) {
// Leave the stage early when 'Unknown' is passed // Leave the stage early when 'Unknown' or '[internal]' is passed
// this would otherwise raise an exception when // this would otherwise raise an exception when
// open_basedir is enabled. // open_basedir is enabled.
if ($filePath === "Unknown") { if ($filePath === "Unknown" || $filePath === '[internal]') {
return null;
}
// Return null if the file doesn't actually exist.
if (!is_file($filePath)) {
return null; return null;
} }

View file

@ -25,6 +25,11 @@ class Inspector
*/ */
private $previousExceptionInspector; private $previousExceptionInspector;
/**
* @var \Throwable[]
*/
private $previousExceptions;
/** /**
* @param \Throwable $exception The exception to inspect * @param \Throwable $exception The exception to inspect
*/ */
@ -57,6 +62,28 @@ class Inspector
return $this->extractDocrefUrl($this->exception->getMessage())['message']; return $this->extractDocrefUrl($this->exception->getMessage())['message'];
} }
/**
* @return string[]
*/
public function getPreviousExceptionMessages()
{
return array_map(function ($prev) {
/** @var \Throwable $prev */
return $this->extractDocrefUrl($prev->getMessage())['message'];
}, $this->getPreviousExceptions());
}
/**
* @return int[]
*/
public function getPreviousExceptionCodes()
{
return array_map(function ($prev) {
/** @var \Throwable $prev */
return $prev->getCode();
}, $this->getPreviousExceptions());
}
/** /**
* Returns a url to the php-manual related to the underlying error - when available. * Returns a url to the php-manual related to the underlying error - when available.
* *
@ -117,6 +144,26 @@ class Inspector
return $this->previousExceptionInspector; return $this->previousExceptionInspector;
} }
/**
* Returns an array of all previous exceptions for this inspector's exception
* @return \Throwable[]
*/
public function getPreviousExceptions()
{
if ($this->previousExceptions === null) {
$this->previousExceptions = [];
$prev = $this->exception->getPrevious();
while ($prev !== null) {
$this->previousExceptions[] = $prev;
$prev = $prev->getPrevious();
}
}
return $this->previousExceptions;
}
/** /**
* Returns an iterator for the inspected exception's * Returns an iterator for the inspected exception's
* frames. * frames.
@ -188,7 +235,7 @@ class Inspector
* *
* If xdebug is installed * If xdebug is installed
* *
* @param \Throwable $exception * @param \Throwable $e
* @return array * @return array
*/ */
protected function getTrace($e) protected function getTrace($e)

View file

@ -205,16 +205,18 @@ class PrettyPageHandler extends Handler
"frame_code" => $this->getResource("views/frame_code.html.php"), "frame_code" => $this->getResource("views/frame_code.html.php"),
"env_details" => $this->getResource("views/env_details.html.php"), "env_details" => $this->getResource("views/env_details.html.php"),
"title" => $this->getPageTitle(), "title" => $this->getPageTitle(),
"name" => explode("\\", $inspector->getExceptionName()), "name" => explode("\\", $inspector->getExceptionName()),
"message" => $inspector->getExceptionMessage(), "message" => $inspector->getExceptionMessage(),
"docref_url" => $inspector->getExceptionDocrefUrl(), "previousMessages" => $inspector->getPreviousExceptionMessages(),
"code" => $code, "docref_url" => $inspector->getExceptionDocrefUrl(),
"plain_exception" => Formatter::formatExceptionPlain($inspector), "code" => $code,
"frames" => $frames, "previousCodes" => $inspector->getPreviousExceptionCodes(),
"has_frames" => !!count($frames), "plain_exception" => Formatter::formatExceptionPlain($inspector),
"handler" => $this, "frames" => $frames,
"handlers" => $this->getRun()->getHandlers(), "has_frames" => !!count($frames),
"handler" => $this,
"handlers" => $this->getRun()->getHandlers(),
"active_frames_tab" => count($frames) && $frames->offsetGet(0)->isApplication() ? 'application' : 'all', "active_frames_tab" => count($frames) && $frames->offsetGet(0)->isApplication() ? 'application' : 'all',
"has_frames_tabs" => $this->getApplicationPaths(), "has_frames_tabs" => $this->getApplicationPaths(),

View file

@ -52,7 +52,7 @@ header {
color: #bebebe; color: #bebebe;
font-size: 14px; font-size: 14px;
} }
.exc-title-primary { .exc-title-primary, .exc-title-secondary {
color: #e95353; color: #e95353;
} }
@ -70,6 +70,25 @@ header {
font-weight: 300; font-weight: 300;
} }
.prev-exc-title {
margin: 10px 0;
}
.prev-exc-title + ul {
margin: 0;
padding: 0 0 0 20px;
line-height: 12px;
}
.prev-exc-title + ul li {
font: 12px "Helvetica Neue", helvetica, arial, sans-serif;
}
.prev-exc-title + ul li .prev-exc-code {
display: inline-block;
color: #bebebe;
}
.details-container { .details-container {
left: 30%; left: 30%;
width: 70%; width: 70%;

View file

@ -8,8 +8,8 @@
<div class="frame-file"> <div class="frame-file">
<?php $filePath = $frame->getFile(); ?> <?php $filePath = $frame->getFile(); ?>
<?php if ($filePath && $editorHref = $handler->getEditorHref($filePath, (int) $line)): ?> <?php if ($filePath && $editorHref = $handler->getEditorHref($filePath, (int) $line)): ?>
Open:
<a href="<?php echo $editorHref ?>" class="editor-link"<?php echo ($handler->getEditorAjax($filePath, (int) $line) ? ' data-ajax' : '') ?>> <a href="<?php echo $editorHref ?>" class="editor-link"<?php echo ($handler->getEditorAjax($filePath, (int) $line) ? ' data-ajax' : '') ?>>
Open:
<strong><?php echo $tpl->breakOnDelimiter('/', $tpl->escape($filePath ?: '<#unknown>')) ?></strong> <strong><?php echo $tpl->breakOnDelimiter('/', $tpl->escape($filePath ?: '<#unknown>')) ?></strong>
</a> </a>
<?php else: ?> <?php else: ?>

View file

@ -15,6 +15,25 @@
<div class="exc-message"> <div class="exc-message">
<?php if (!empty($message)): ?> <?php if (!empty($message)): ?>
<span><?php echo $tpl->escape($message) ?></span> <span><?php echo $tpl->escape($message) ?></span>
<?php if (count($previousMessages)): ?>
<div class="exc-title prev-exc-title">
<span class="exc-title-secondary">Previous exceptions</span>
</div>
<ul>
<?php foreach ($previousMessages as $i => $previousMessage): ?>
<li>
<?php echo $tpl->escape($previousMessage) ?>
<span class="prev-exc-code">(<?php echo $previousCodes[$i] ?>)</span>
</li>
<?php endforeach; ?>
</ul>
<?php endif ?>
<?php else: ?> <?php else: ?>
<span class="exc-message-empty-notice">No message</span> <span class="exc-message-empty-notice">No message</span>
<?php endif ?> <?php endif ?>

9
vendor/guzzlehttp/psr7/.editorconfig vendored Normal file
View file

@ -0,0 +1,9 @@
root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true

View file

@ -1,32 +1,82 @@
# CHANGELOG # Change Log
## 1.4.2 - 2017-03-20
* Reverted BC break to `Uri::resolve` and `Uri::removeDotSegments` by removing All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [1.5.2] - 2018-12-04
### Fixed
- Check body size when getting the message summary
## [1.5.1] - 2018-12-04
### Fixed
- Get the summary of a body only if it is readable
## [1.5.0] - 2018-12-03
### Added
- Response first-line to response string exception (fixes #145)
- A test for #129 behavior
- `get_message_body_summary` function in order to get the message summary
- `3gp` and `mkv` mime types
### Changed
- Clarify exception message when stream is detached
### Deprecated
- Deprecated parsing folded header lines as per RFC 7230
### Fixed
- Fix `AppendStream::detach` to not close streams
- `InflateStream` preserves `isSeekable` attribute of the underlying stream
- `ServerRequest::getUriFromGlobals` to support URLs in query parameters
Several other fixes and improvements.
## [1.4.2] - 2017-03-20
### Fixed
- Reverted BC break to `Uri::resolve` and `Uri::removeDotSegments` by removing
calls to `trigger_error` when deprecated methods are invoked. calls to `trigger_error` when deprecated methods are invoked.
## 1.4.1 - 2017-02-27
* Reverted BC break by reintroducing behavior to automagically fix a URI with a ## [1.4.1] - 2017-02-27
### Added
- Rriggering of silenced deprecation warnings.
### Fixed
- Reverted BC break by reintroducing behavior to automagically fix a URI with a
relative path and an authority by adding a leading slash to the path. It's only relative path and an authority by adding a leading slash to the path. It's only
deprecated now. deprecated now.
* Added triggering of silenced deprecation warnings.
## 1.4.0 - 2017-02-21
* Fix `Stream::read` when length parameter <= 0. ## [1.4.0] - 2017-02-21
* `copy_to_stream` reads bytes in chunks instead of `maxLen` into memory.
* Fix `ServerRequest::getUriFromGlobals` when `Host` header contains port. ### Added
* Ensure `ServerRequest::getUriFromGlobals` returns a URI in absolute form.
* Allow `parse_response` to parse a response without delimiting space and reason. - Added common URI utility methods based on RFC 3986 (see documentation in the readme):
* Ensure each URI modification results in a valid URI according to PSR-7 discussions.
Invalid modifications will throw an exception instead of returning a wrong URI or
doing some magic.
- `(new Uri)->withPath('foo')->withHost('example.com')` will throw an exception
because the path of a URI with an authority must start with a slash "/" or be empty
- `(new Uri())->withScheme('http')` will return `'http://localhost'`
* Fix compatibility of URIs with `file` scheme and empty host.
* Added common URI utility methods based on RFC 3986 (see documentation in the readme):
- `Uri::isDefaultPort` - `Uri::isDefaultPort`
- `Uri::isAbsolute` - `Uri::isAbsolute`
- `Uri::isNetworkPathReference` - `Uri::isNetworkPathReference`
@ -37,69 +87,117 @@
- `UriNormalizer::normalize` - `UriNormalizer::normalize`
- `UriNormalizer::isEquivalent` - `UriNormalizer::isEquivalent`
- `UriResolver::relativize` - `UriResolver::relativize`
* Deprecated `Uri::resolve` in favor of `UriResolver::resolve`
* Deprecated `Uri::removeDotSegments` in favor of `UriResolver::removeDotSegments`
## 1.3.1 - 2016-06-25 ### Changed
* Fix `Uri::__toString` for network path references, e.g. `//example.org`. - Ensure `ServerRequest::getUriFromGlobals` returns a URI in absolute form.
* Fix missing lowercase normalization for host. - Allow `parse_response` to parse a response without delimiting space and reason.
* Fix handling of URI components in case they are `'0'` in a lot of places, - Ensure each URI modification results in a valid URI according to PSR-7 discussions.
Invalid modifications will throw an exception instead of returning a wrong URI or
doing some magic.
- `(new Uri)->withPath('foo')->withHost('example.com')` will throw an exception
because the path of a URI with an authority must start with a slash "/" or be empty
- `(new Uri())->withScheme('http')` will return `'http://localhost'`
### Deprecated
- `Uri::resolve` in favor of `UriResolver::resolve`
- `Uri::removeDotSegments` in favor of `UriResolver::removeDotSegments`
### Fixed
- `Stream::read` when length parameter <= 0.
- `copy_to_stream` reads bytes in chunks instead of `maxLen` into memory.
- `ServerRequest::getUriFromGlobals` when `Host` header contains port.
- Compatibility of URIs with `file` scheme and empty host.
## [1.3.1] - 2016-06-25
### Fixed
- `Uri::__toString` for network path references, e.g. `//example.org`.
- Missing lowercase normalization for host.
- Handling of URI components in case they are `'0'` in a lot of places,
e.g. as a user info password. e.g. as a user info password.
* Fix `Uri::withAddedHeader` to correctly merge headers with different case. - `Uri::withAddedHeader` to correctly merge headers with different case.
* Fix trimming of header values in `Uri::withAddedHeader`. Header values may - Trimming of header values in `Uri::withAddedHeader`. Header values may
be surrounded by whitespace which should be ignored according to RFC 7230 be surrounded by whitespace which should be ignored according to RFC 7230
Section 3.2.4. This does not apply to header names. Section 3.2.4. This does not apply to header names.
* Fix `Uri::withAddedHeader` with an array of header values. - `Uri::withAddedHeader` with an array of header values.
* Fix `Uri::resolve` when base path has no slash and handling of fragment. - `Uri::resolve` when base path has no slash and handling of fragment.
* Fix handling of encoding in `Uri::with(out)QueryValue` so one can pass the - Handling of encoding in `Uri::with(out)QueryValue` so one can pass the
key/value both in encoded as well as decoded form to those methods. This is key/value both in encoded as well as decoded form to those methods. This is
consistent with withPath, withQuery etc. consistent with withPath, withQuery etc.
* Fix `ServerRequest::withoutAttribute` when attribute value is null. - `ServerRequest::withoutAttribute` when attribute value is null.
## 1.3.0 - 2016-04-13
* Added remaining interfaces needed for full PSR7 compatibility ## [1.3.0] - 2016-04-13
### Added
- Remaining interfaces needed for full PSR7 compatibility
(ServerRequestInterface, UploadedFileInterface, etc.). (ServerRequestInterface, UploadedFileInterface, etc.).
* Added support for stream_for from scalars. - Support for stream_for from scalars.
* Can now extend Uri.
* Fixed a bug in validating request methods by making it more permissive.
## 1.2.3 - 2016-02-18 ### Changed
* Fixed support in `GuzzleHttp\Psr7\CachingStream` for seeking forward on remote - Can now extend Uri.
### Fixed
- A bug in validating request methods by making it more permissive.
## [1.2.3] - 2016-02-18
### Fixed
- Support in `GuzzleHttp\Psr7\CachingStream` for seeking forward on remote
streams, which can sometimes return fewer bytes than requested with `fread`. streams, which can sometimes return fewer bytes than requested with `fread`.
* Fixed handling of gzipped responses with FNAME headers. - Handling of gzipped responses with FNAME headers.
## 1.2.2 - 2016-01-22
* Added support for URIs without any authority. ## [1.2.2] - 2016-01-22
* Added support for HTTP 451 'Unavailable For Legal Reasons.'
* Added support for using '0' as a filename.
* Added support for including non-standard ports in Host headers.
## 1.2.1 - 2015-11-02 ### Added
* Now supporting negative offsets when seeking to SEEK_END. - Support for URIs without any authority.
- Support for HTTP 451 'Unavailable For Legal Reasons.'
- Support for using '0' as a filename.
- Support for including non-standard ports in Host headers.
## 1.2.0 - 2015-08-15
* Body as `"0"` is now properly added to a response. ## [1.2.1] - 2015-11-02
* Now allowing forward seeking in CachingStream.
* Now properly parsing HTTP requests that contain proxy targets in ### Changes
- Now supporting negative offsets when seeking to SEEK_END.
## [1.2.0] - 2015-08-15
### Changed
- Body as `"0"` is now properly added to a response.
- Now allowing forward seeking in CachingStream.
- Now properly parsing HTTP requests that contain proxy targets in
`parse_request`. `parse_request`.
* functions.php is now conditionally required. - functions.php is now conditionally required.
* user-info is no longer dropped when resolving URIs. - user-info is no longer dropped when resolving URIs.
## 1.1.0 - 2015-06-24
* URIs can now be relative. ## [1.1.0] - 2015-06-24
* `multipart/form-data` headers are now overridden case-insensitively.
* URI paths no longer encode the following characters because they are allowed ### Changed
- URIs can now be relative.
- `multipart/form-data` headers are now overridden case-insensitively.
- URI paths no longer encode the following characters because they are allowed
in URIs: "(", ")", "*", "!", "'" in URIs: "(", ")", "*", "!", "'"
* A port is no longer added to a URI when the scheme is missing and no port is - A port is no longer added to a URI when the scheme is missing and no port is
present. present.
## 1.0.0 - 2015-05-19 ## 1.0.0 - 2015-05-19
Initial release. Initial release.
@ -108,3 +206,20 @@ Currently unsupported:
- `Psr\Http\Message\ServerRequestInterface` - `Psr\Http\Message\ServerRequestInterface`
- `Psr\Http\Message\UploadedFileInterface` - `Psr\Http\Message\UploadedFileInterface`
[Unreleased]: https://github.com/guzzle/psr7/compare/1.5.2...HEAD
[1.5.2]: https://github.com/guzzle/psr7/compare/1.5.1...1.5.2
[1.5.1]: https://github.com/guzzle/psr7/compare/1.5.0...1.5.1
[1.5.0]: https://github.com/guzzle/psr7/compare/1.4.2...1.5.0
[1.4.2]: https://github.com/guzzle/psr7/compare/1.4.1...1.4.2
[1.4.1]: https://github.com/guzzle/psr7/compare/1.4.0...1.4.1
[1.4.0]: https://github.com/guzzle/psr7/compare/1.3.1...1.4.0
[1.3.1]: https://github.com/guzzle/psr7/compare/1.3.0...1.3.1
[1.3.0]: https://github.com/guzzle/psr7/compare/1.2.3...1.3.0
[1.2.3]: https://github.com/guzzle/psr7/compare/1.2.2...1.2.3
[1.2.2]: https://github.com/guzzle/psr7/compare/1.2.1...1.2.2
[1.2.1]: https://github.com/guzzle/psr7/compare/1.2.0...1.2.1
[1.2.0]: https://github.com/guzzle/psr7/compare/1.1.0...1.2.0
[1.1.0]: https://github.com/guzzle/psr7/compare/1.0.0...1.1.0

View file

@ -372,7 +372,7 @@ This method accepts the following `$resource` types:
$stream = GuzzleHttp\Psr7\stream_for('foo'); $stream = GuzzleHttp\Psr7\stream_for('foo');
$stream = GuzzleHttp\Psr7\stream_for(fopen('/path/to/file', 'r')); $stream = GuzzleHttp\Psr7\stream_for(fopen('/path/to/file', 'r'));
$generator function ($bytes) { $generator = function ($bytes) {
for ($i = 0; $i < $bytes; $i++) { for ($i = 0; $i < $bytes; $i++) {
yield ' '; yield ' ';
} }
@ -606,6 +606,12 @@ Creates a new URI with a specific query string value. Any existing query string
provided key are removed and replaced with the given key value pair. A value of null will set the query string provided key are removed and replaced with the given key value pair. A value of null will set the query string
key without a value, e.g. "key" instead of "key=value". key without a value, e.g. "key" instead of "key=value".
### `GuzzleHttp\Psr7\Uri::withQueryValues`
`public static function withQueryValues(UriInterface $uri, array $keyValueArray): UriInterface`
Creates a new URI with multiple query string values. It has the same behavior as `withQueryValue()` but for an
associative array of key => value.
### `GuzzleHttp\Psr7\Uri::withoutQueryValue` ### `GuzzleHttp\Psr7\Uri::withoutQueryValue`

View file

@ -2,7 +2,7 @@
"name": "guzzlehttp/psr7", "name": "guzzlehttp/psr7",
"type": "library", "type": "library",
"description": "PSR-7 message implementation that also provides common utility methods", "description": "PSR-7 message implementation that also provides common utility methods",
"keywords": ["request", "response", "message", "stream", "http", "uri", "url"], "keywords": ["request", "response", "message", "stream", "http", "uri", "url", "psr-7"],
"license": "MIT", "license": "MIT",
"authors": [ "authors": [
{ {
@ -17,10 +17,11 @@
], ],
"require": { "require": {
"php": ">=5.4.0", "php": ">=5.4.0",
"psr/http-message": "~1.0" "psr/http-message": "~1.0",
"ralouphie/getallheaders": "^2.0.5"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "~4.0" "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8"
}, },
"provide": { "provide": {
"psr/http-message-implementation": "1.0" "psr/http-message-implementation": "1.0"
@ -31,9 +32,14 @@
}, },
"files": ["src/functions_include.php"] "files": ["src/functions_include.php"]
}, },
"autoload-dev": {
"psr-4": {
"GuzzleHttp\\Tests\\Psr7\\": "tests/"
}
},
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.4-dev" "dev-master": "1.5-dev"
} }
} }
} }

View file

@ -16,7 +16,6 @@ class AppendStream implements StreamInterface
private $seekable = true; private $seekable = true;
private $current = 0; private $current = 0;
private $pos = 0; private $pos = 0;
private $detached = false;
/** /**
* @param StreamInterface[] $streams Streams to decorate. Each stream must * @param StreamInterface[] $streams Streams to decorate. Each stream must
@ -73,6 +72,7 @@ class AppendStream implements StreamInterface
public function close() public function close()
{ {
$this->pos = $this->current = 0; $this->pos = $this->current = 0;
$this->seekable = true;
foreach ($this->streams as $stream) { foreach ($this->streams as $stream) {
$stream->close(); $stream->close();
@ -82,14 +82,22 @@ class AppendStream implements StreamInterface
} }
/** /**
* Detaches each attached stream * Detaches each attached stream.
*
* Returns null as it's not clear which underlying stream resource to return.
* *
* {@inheritdoc} * {@inheritdoc}
*/ */
public function detach() public function detach()
{ {
$this->close(); $this->pos = $this->current = 0;
$this->detached = true; $this->seekable = true;
foreach ($this->streams as $stream) {
$stream->detach();
}
$this->streams = [];
} }
public function tell() public function tell()

View file

@ -52,6 +52,15 @@ class FnStream implements StreamInterface
} }
} }
/**
* An unserialize would allow the __destruct to run when the unserialized value goes out of scope.
* @throws \LogicException
*/
public function __wakeup()
{
throw new \LogicException('FnStream should never be unserialized');
}
/** /**
* Adds custom functionality to an underlying stream by intercepting * Adds custom functionality to an underlying stream by intercepting
* specific method calls. * specific method calls.

View file

@ -27,7 +27,7 @@ class InflateStream implements StreamInterface
$stream = new LimitStream($stream, -1, 10 + $filenameHeaderLength); $stream = new LimitStream($stream, -1, 10 + $filenameHeaderLength);
$resource = StreamWrapper::getResource($stream); $resource = StreamWrapper::getResource($stream);
stream_filter_append($resource, 'zlib.inflate', STREAM_FILTER_READ); stream_filter_append($resource, 'zlib.inflate', STREAM_FILTER_READ);
$this->stream = new Stream($resource); $this->stream = $stream->isSeekable() ? new Stream($resource) : new NoSeekStream(new Stream($resource));
} }
/** /**

View file

@ -45,7 +45,7 @@ class Request implements RequestInterface
$this->setHeaders($headers); $this->setHeaders($headers);
$this->protocol = $version; $this->protocol = $version;
if (!$this->hasHeader('Host')) { if (!isset($this->headerNames['host'])) {
$this->updateHostFromUri(); $this->updateHostFromUri();
} }
@ -110,7 +110,7 @@ class Request implements RequestInterface
$new = clone $this; $new = clone $this;
$new->uri = $uri; $new->uri = $uri;
if (!$preserveHost) { if (!$preserveHost || !isset($this->headerNames['host'])) {
$new->updateHostFromUri(); $new->updateHostFromUri();
} }

View file

@ -93,6 +93,10 @@ class Response implements ResponseInterface
$version = '1.1', $version = '1.1',
$reason = null $reason = null
) { ) {
if (filter_var($status, FILTER_VALIDATE_INT) === false) {
throw new \InvalidArgumentException('Status code must be an integer value.');
}
$this->statusCode = (int) $status; $this->statusCode = (int) $status;
if ($body !== '' && $body !== null) { if ($body !== '' && $body !== null) {

18
vendor/guzzlehttp/psr7/src/Rfc7230.php vendored Normal file
View file

@ -0,0 +1,18 @@
<?php
namespace GuzzleHttp\Psr7;
final class Rfc7230
{
/**
* Header related regular expressions (copied from amphp/http package)
* (Note: once we require PHP 7.x we could just depend on the upstream package)
*
* Note: header delimiter (\r\n) is modified to \r?\n to accept line feed only delimiters for BC reasons.
*
* @link https://github.com/amphp/http/blob/v1.0.1/src/Rfc7230.php#L12-L15
* @license https://github.com/amphp/http/blob/v1.0.1/LICENSE
*/
const HEADER_REGEX = "(^([^()<>@,;:\\\"/[\]?={}\x01-\x20\x7F]++):[ \t]*+((?:[ \t]*+[\x21-\x7E\x80-\xFF]++)*+)[ \t]*+\r?\n)m";
const HEADER_FOLD_REGEX = "(\r?\n[ \t]++)";
}

View file

@ -166,7 +166,7 @@ class ServerRequest extends Request implements ServerRequestInterface
public static function fromGlobals() public static function fromGlobals()
{ {
$method = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : 'GET'; $method = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : 'GET';
$headers = function_exists('getallheaders') ? getallheaders() : []; $headers = getallheaders();
$uri = self::getUriFromGlobals(); $uri = self::getUriFromGlobals();
$body = new LazyOpenStream('php://input', 'r+'); $body = new LazyOpenStream('php://input', 'r+');
$protocol = isset($_SERVER['SERVER_PROTOCOL']) ? str_replace('HTTP/', '', $_SERVER['SERVER_PROTOCOL']) : '1.1'; $protocol = isset($_SERVER['SERVER_PROTOCOL']) ? str_replace('HTTP/', '', $_SERVER['SERVER_PROTOCOL']) : '1.1';
@ -180,23 +180,41 @@ class ServerRequest extends Request implements ServerRequestInterface
->withUploadedFiles(self::normalizeFiles($_FILES)); ->withUploadedFiles(self::normalizeFiles($_FILES));
} }
private static function extractHostAndPortFromAuthority($authority)
{
$uri = 'http://'.$authority;
$parts = parse_url($uri);
if (false === $parts) {
return [null, null];
}
$host = isset($parts['host']) ? $parts['host'] : null;
$port = isset($parts['port']) ? $parts['port'] : null;
return [$host, $port];
}
/** /**
* Get a Uri populated with values from $_SERVER. * Get a Uri populated with values from $_SERVER.
* *
* @return UriInterface * @return UriInterface
*/ */
public static function getUriFromGlobals() { public static function getUriFromGlobals()
{
$uri = new Uri(''); $uri = new Uri('');
$uri = $uri->withScheme(!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' ? 'https' : 'http'); $uri = $uri->withScheme(!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' ? 'https' : 'http');
$hasPort = false; $hasPort = false;
if (isset($_SERVER['HTTP_HOST'])) { if (isset($_SERVER['HTTP_HOST'])) {
$hostHeaderParts = explode(':', $_SERVER['HTTP_HOST']); list($host, $port) = self::extractHostAndPortFromAuthority($_SERVER['HTTP_HOST']);
$uri = $uri->withHost($hostHeaderParts[0]); if ($host !== null) {
if (isset($hostHeaderParts[1])) { $uri = $uri->withHost($host);
}
if ($port !== null) {
$hasPort = true; $hasPort = true;
$uri = $uri->withPort($hostHeaderParts[1]); $uri = $uri->withPort($port);
} }
} elseif (isset($_SERVER['SERVER_NAME'])) { } elseif (isset($_SERVER['SERVER_NAME'])) {
$uri = $uri->withHost($_SERVER['SERVER_NAME']); $uri = $uri->withHost($_SERVER['SERVER_NAME']);
@ -210,7 +228,7 @@ class ServerRequest extends Request implements ServerRequestInterface
$hasQuery = false; $hasQuery = false;
if (isset($_SERVER['REQUEST_URI'])) { if (isset($_SERVER['REQUEST_URI'])) {
$requestUriParts = explode('?', $_SERVER['REQUEST_URI']); $requestUriParts = explode('?', $_SERVER['REQUEST_URI'], 2);
$uri = $uri->withPath($requestUriParts[0]); $uri = $uri->withPath($requestUriParts[0]);
if (isset($requestUriParts[1])) { if (isset($requestUriParts[1])) {
$hasQuery = true; $hasQuery = true;

View file

@ -24,11 +24,11 @@ class Stream implements StreamInterface
'r' => true, 'w+' => true, 'r+' => true, 'x+' => true, 'c+' => true, 'r' => true, 'w+' => true, 'r+' => true, 'x+' => true, 'c+' => true,
'rb' => true, 'w+b' => true, 'r+b' => true, 'x+b' => true, 'rb' => true, 'w+b' => true, 'r+b' => true, 'x+b' => true,
'c+b' => true, 'rt' => true, 'w+t' => true, 'r+t' => true, 'c+b' => true, 'rt' => true, 'w+t' => true, 'r+t' => true,
'x+t' => true, 'c+t' => true, 'a+' => true 'x+t' => true, 'c+t' => true, 'a+' => true, 'rb+' => true,
], ],
'write' => [ 'write' => [
'w' => true, 'w+' => true, 'rw' => true, 'r+' => true, 'x+' => true, 'w' => true, 'w+' => true, 'rw' => true, 'r+' => true, 'x+' => true,
'c+' => true, 'wb' => true, 'w+b' => true, 'r+b' => true, 'c+' => true, 'wb' => true, 'w+b' => true, 'r+b' => true, 'rb+' => true,
'x+b' => true, 'c+b' => true, 'w+t' => true, 'r+t' => true, 'x+b' => true, 'c+b' => true, 'w+t' => true, 'r+t' => true,
'x+t' => true, 'c+t' => true, 'a' => true, 'a+' => true 'x+t' => true, 'c+t' => true, 'a' => true, 'a+' => true
] ]
@ -70,15 +70,6 @@ class Stream implements StreamInterface
$this->uri = $this->getMetadata('uri'); $this->uri = $this->getMetadata('uri');
} }
public function __get($name)
{
if ($name == 'stream') {
throw new \RuntimeException('The stream is detached');
}
throw new \BadMethodCallException('No value for ' . $name);
}
/** /**
* Closes the stream when the destructed * Closes the stream when the destructed
*/ */
@ -99,6 +90,10 @@ class Stream implements StreamInterface
public function getContents() public function getContents()
{ {
if (!isset($this->stream)) {
throw new \RuntimeException('Stream is detached');
}
$contents = stream_get_contents($this->stream); $contents = stream_get_contents($this->stream);
if ($contents === false) { if ($contents === false) {
@ -173,11 +168,19 @@ class Stream implements StreamInterface
public function eof() public function eof()
{ {
return !$this->stream || feof($this->stream); if (!isset($this->stream)) {
throw new \RuntimeException('Stream is detached');
}
return feof($this->stream);
} }
public function tell() public function tell()
{ {
if (!isset($this->stream)) {
throw new \RuntimeException('Stream is detached');
}
$result = ftell($this->stream); $result = ftell($this->stream);
if ($result === false) { if ($result === false) {
@ -194,9 +197,13 @@ class Stream implements StreamInterface
public function seek($offset, $whence = SEEK_SET) public function seek($offset, $whence = SEEK_SET)
{ {
if (!isset($this->stream)) {
throw new \RuntimeException('Stream is detached');
}
if (!$this->seekable) { if (!$this->seekable) {
throw new \RuntimeException('Stream is not seekable'); throw new \RuntimeException('Stream is not seekable');
} elseif (fseek($this->stream, $offset, $whence) === -1) { }
if (fseek($this->stream, $offset, $whence) === -1) {
throw new \RuntimeException('Unable to seek to stream position ' throw new \RuntimeException('Unable to seek to stream position '
. $offset . ' with whence ' . var_export($whence, true)); . $offset . ' with whence ' . var_export($whence, true));
} }
@ -204,6 +211,9 @@ class Stream implements StreamInterface
public function read($length) public function read($length)
{ {
if (!isset($this->stream)) {
throw new \RuntimeException('Stream is detached');
}
if (!$this->readable) { if (!$this->readable) {
throw new \RuntimeException('Cannot read from non-readable stream'); throw new \RuntimeException('Cannot read from non-readable stream');
} }
@ -225,6 +235,9 @@ class Stream implements StreamInterface
public function write($string) public function write($string)
{ {
if (!isset($this->stream)) {
throw new \RuntimeException('Stream is detached');
}
if (!$this->writable) { if (!$this->writable) {
throw new \RuntimeException('Cannot write to a non-writable stream'); throw new \RuntimeException('Cannot write to a non-writable stream');
} }

View file

@ -38,9 +38,21 @@ class StreamWrapper
. 'writable, or both.'); . 'writable, or both.');
} }
return fopen('guzzle://stream', $mode, null, stream_context_create([ return fopen('guzzle://stream', $mode, null, self::createStreamContext($stream));
}
/**
* Creates a stream context that can be used to open a stream as a php stream resource.
*
* @param StreamInterface $stream
*
* @return resource
*/
public static function createStreamContext(StreamInterface $stream)
{
return stream_context_create([
'guzzle' => ['stream' => $stream] 'guzzle' => ['stream' => $stream]
])); ]);
} }
/** /**
@ -94,12 +106,21 @@ class StreamWrapper
return true; return true;
} }
public function stream_cast($cast_as)
{
$stream = clone($this->stream);
return $stream->detach();
}
public function stream_stat() public function stream_stat()
{ {
static $modeMap = [ static $modeMap = [
'r' => 33060, 'r' => 33060,
'rb' => 33060,
'r+' => 33206, 'r+' => 33206,
'w' => 33188 'w' => 33188,
'wb' => 33188
]; ];
return [ return [
@ -118,4 +139,23 @@ class StreamWrapper
'blocks' => 0 'blocks' => 0
]; ];
} }
public function url_stat($path, $flags)
{
return [
'dev' => 0,
'ino' => 0,
'mode' => 0,
'nlink' => 0,
'uid' => 0,
'gid' => 0,
'rdev' => 0,
'size' => 0,
'atime' => 0,
'mtime' => 0,
'ctime' => 0,
'blksize' => 0,
'blocks' => 0
];
}
} }

View file

@ -301,15 +301,7 @@ class Uri implements UriInterface
*/ */
public static function withoutQueryValue(UriInterface $uri, $key) public static function withoutQueryValue(UriInterface $uri, $key)
{ {
$current = $uri->getQuery(); $result = self::getFilteredQueryString($uri, [$key]);
if ($current === '') {
return $uri;
}
$decodedKey = rawurldecode($key);
$result = array_filter(explode('&', $current), function ($part) use ($decodedKey) {
return rawurldecode(explode('=', $part)[0]) !== $decodedKey;
});
return $uri->withQuery(implode('&', $result)); return $uri->withQuery(implode('&', $result));
} }
@ -331,26 +323,29 @@ class Uri implements UriInterface
*/ */
public static function withQueryValue(UriInterface $uri, $key, $value) public static function withQueryValue(UriInterface $uri, $key, $value)
{ {
$current = $uri->getQuery(); $result = self::getFilteredQueryString($uri, [$key]);
if ($current === '') { $result[] = self::generateQueryString($key, $value);
$result = [];
} else {
$decodedKey = rawurldecode($key);
$result = array_filter(explode('&', $current), function ($part) use ($decodedKey) {
return rawurldecode(explode('=', $part)[0]) !== $decodedKey;
});
}
// Query string separators ("=", "&") within the key or value need to be encoded return $uri->withQuery(implode('&', $result));
// (while preventing double-encoding) before setting the query string. All other }
// chars that need percent-encoding will be encoded by withQuery().
$key = strtr($key, self::$replaceQuery);
if ($value !== null) { /**
$result[] = $key . '=' . strtr($value, self::$replaceQuery); * Creates a new URI with multiple specific query string values.
} else { *
$result[] = $key; * It has the same behavior as withQueryValue() but for an associative array of key => value.
*
* @param UriInterface $uri URI to use as a base.
* @param array $keyValueArray Associative array of key and values
*
* @return UriInterface
*/
public static function withQueryValues(UriInterface $uri, array $keyValueArray)
{
$result = self::getFilteredQueryString($uri, array_keys($keyValueArray));
foreach ($keyValueArray as $key => $value) {
$result[] = self::generateQueryString($key, $value);
} }
return $uri->withQuery(implode('&', $result)); return $uri->withQuery(implode('&', $result));
@ -620,6 +615,47 @@ class Uri implements UriInterface
return $port; return $port;
} }
/**
* @param UriInterface $uri
* @param array $keys
*
* @return array
*/
private static function getFilteredQueryString(UriInterface $uri, array $keys)
{
$current = $uri->getQuery();
if ($current === '') {
return [];
}
$decodedKeys = array_map('rawurldecode', $keys);
return array_filter(explode('&', $current), function ($part) use ($decodedKeys) {
return !in_array(rawurldecode(explode('=', $part)[0]), $decodedKeys, true);
});
}
/**
* @param string $key
* @param string|null $value
*
* @return string
*/
private static function generateQueryString($key, $value)
{
// Query string separators ("=", "&") within the key or value need to be encoded
// (while preventing double-encoding) before setting the query string. All other
// chars that need percent-encoding will be encoded by withQuery().
$queryString = strtr($key, self::$replaceQuery);
if ($value !== null) {
$queryString .= '=' . strtr($value, self::$replaceQuery);
}
return $queryString;
}
private function removeDefaultPort() private function removeDefaultPort()
{ {
if ($this->port !== null && self::isDefaultPort($this)) { if ($this->port !== null && self::isDefaultPort($this)) {

View file

@ -69,10 +69,10 @@ function uri_for($uri)
* - metadata: Array of custom metadata. * - metadata: Array of custom metadata.
* - size: Size of the stream. * - size: Size of the stream.
* *
* @param resource|string|null|int|float|bool|StreamInterface|callable $resource Entity body data * @param resource|string|null|int|float|bool|StreamInterface|callable|\Iterator $resource Entity body data
* @param array $options Additional options * @param array $options Additional options
* *
* @return Stream * @return StreamInterface
* @throws \InvalidArgumentException if the $resource arg is not valid. * @throws \InvalidArgumentException if the $resource arg is not valid.
*/ */
function stream_for($resource = '', array $options = []) function stream_for($resource = '', array $options = [])
@ -238,7 +238,7 @@ function modify_request(RequestInterface $request, array $changes)
} }
if ($request instanceof ServerRequestInterface) { if ($request instanceof ServerRequestInterface) {
return new ServerRequest( return (new ServerRequest(
isset($changes['method']) ? $changes['method'] : $request->getMethod(), isset($changes['method']) ? $changes['method'] : $request->getMethod(),
$uri, $uri,
$headers, $headers,
@ -247,7 +247,11 @@ function modify_request(RequestInterface $request, array $changes)
? $changes['version'] ? $changes['version']
: $request->getProtocolVersion(), : $request->getProtocolVersion(),
$request->getServerParams() $request->getServerParams()
); ))
->withParsedBody($request->getParsedBody())
->withQueryParams($request->getQueryParams())
->withCookieParams($request->getCookieParams())
->withUploadedFiles($request->getUploadedFiles());
} }
return new Request( return new Request(
@ -431,7 +435,7 @@ function hash(
* @param StreamInterface $stream Stream to read from * @param StreamInterface $stream Stream to read from
* @param int $maxLength Maximum buffer length * @param int $maxLength Maximum buffer length
* *
* @return string|bool * @return string
*/ */
function readline(StreamInterface $stream, $maxLength = null) function readline(StreamInterface $stream, $maxLength = null)
{ {
@ -495,7 +499,7 @@ function parse_response($message)
// between status-code and reason-phrase is required. But browsers accept // between status-code and reason-phrase is required. But browsers accept
// responses without space and reason as well. // responses without space and reason as well.
if (!preg_match('/^HTTP\/.* [0-9]{3}( .*|$)/', $data['start-line'])) { if (!preg_match('/^HTTP\/.* [0-9]{3}( .*|$)/', $data['start-line'])) {
throw new \InvalidArgumentException('Invalid response string'); throw new \InvalidArgumentException('Invalid response string: ' . $data['start-line']);
} }
$parts = explode(' ', $data['start-line'], 3); $parts = explode(' ', $data['start-line'], 3);
@ -516,8 +520,8 @@ function parse_response($message)
* PHP style arrays into an associative array (e.g., foo[a]=1&foo[b]=2 will * PHP style arrays into an associative array (e.g., foo[a]=1&foo[b]=2 will
* be parsed into ['foo[a]' => '1', 'foo[b]' => '2']). * be parsed into ['foo[a]' => '1', 'foo[b]' => '2']).
* *
* @param string $str Query string to parse * @param string $str Query string to parse
* @param bool|string $urlEncoding How the query string is encoded * @param int|bool $urlEncoding How the query string is encoded
* *
* @return array * @return array
*/ */
@ -533,9 +537,9 @@ function parse_query($str, $urlEncoding = true)
$decoder = function ($value) { $decoder = function ($value) {
return rawurldecode(str_replace('+', ' ', $value)); return rawurldecode(str_replace('+', ' ', $value));
}; };
} elseif ($urlEncoding == PHP_QUERY_RFC3986) { } elseif ($urlEncoding === PHP_QUERY_RFC3986) {
$decoder = 'rawurldecode'; $decoder = 'rawurldecode';
} elseif ($urlEncoding == PHP_QUERY_RFC1738) { } elseif ($urlEncoding === PHP_QUERY_RFC1738) {
$decoder = 'urldecode'; $decoder = 'urldecode';
} else { } else {
$decoder = function ($str) { return $str; }; $decoder = function ($str) { return $str; };
@ -633,6 +637,7 @@ function mimetype_from_filename($filename)
function mimetype_from_extension($extension) function mimetype_from_extension($extension)
{ {
static $mimetypes = [ static $mimetypes = [
'3gp' => 'video/3gpp',
'7z' => 'application/x-7z-compressed', '7z' => 'application/x-7z-compressed',
'aac' => 'audio/x-aac', 'aac' => 'audio/x-aac',
'ai' => 'application/postscript', 'ai' => 'application/postscript',
@ -680,6 +685,7 @@ function mimetype_from_extension($extension)
'mid' => 'audio/midi', 'mid' => 'audio/midi',
'midi' => 'audio/midi', 'midi' => 'audio/midi',
'mov' => 'video/quicktime', 'mov' => 'video/quicktime',
'mkv' => 'video/x-matroska',
'mp3' => 'audio/mpeg', 'mp3' => 'audio/mpeg',
'mp4' => 'video/mp4', 'mp4' => 'video/mp4',
'mp4a' => 'audio/mp4', 'mp4a' => 'audio/mp4',
@ -758,29 +764,53 @@ function _parse_message($message)
throw new \InvalidArgumentException('Invalid message'); throw new \InvalidArgumentException('Invalid message');
} }
// Iterate over each line in the message, accounting for line endings $message = ltrim($message, "\r\n");
$lines = preg_split('/(\\r?\\n)/', $message, -1, PREG_SPLIT_DELIM_CAPTURE);
$result = ['start-line' => array_shift($lines), 'headers' => [], 'body' => ''];
array_shift($lines);
for ($i = 0, $totalLines = count($lines); $i < $totalLines; $i += 2) { $messageParts = preg_split("/\r?\n\r?\n/", $message, 2);
$line = $lines[$i];
// If two line breaks were encountered, then this is the end of body if ($messageParts === false || count($messageParts) !== 2) {
if (empty($line)) { throw new \InvalidArgumentException('Invalid message: Missing header delimiter');
if ($i < $totalLines - 1) {
$result['body'] = implode('', array_slice($lines, $i + 2));
}
break;
}
if (strpos($line, ':')) {
$parts = explode(':', $line, 2);
$key = trim($parts[0]);
$value = isset($parts[1]) ? trim($parts[1]) : '';
$result['headers'][$key][] = $value;
}
} }
return $result; list($rawHeaders, $body) = $messageParts;
$rawHeaders .= "\r\n"; // Put back the delimiter we split previously
$headerParts = preg_split("/\r?\n/", $rawHeaders, 2);
if ($headerParts === false || count($headerParts) !== 2) {
throw new \InvalidArgumentException('Invalid message: Missing status line');
}
list($startLine, $rawHeaders) = $headerParts;
if (preg_match("/(?:^HTTP\/|^[A-Z]+ \S+ HTTP\/)(\d+(?:\.\d+)?)/i", $startLine, $matches) && $matches[1] === '1.0') {
// Header folding is deprecated for HTTP/1.1, but allowed in HTTP/1.0
$rawHeaders = preg_replace(Rfc7230::HEADER_FOLD_REGEX, ' ', $rawHeaders);
}
/** @var array[] $headerLines */
$count = preg_match_all(Rfc7230::HEADER_REGEX, $rawHeaders, $headerLines, PREG_SET_ORDER);
// If these aren't the same, then one line didn't match and there's an invalid header.
if ($count !== substr_count($rawHeaders, "\n")) {
// Folding is deprecated, see https://tools.ietf.org/html/rfc7230#section-3.2.4
if (preg_match(Rfc7230::HEADER_FOLD_REGEX, $rawHeaders)) {
throw new \InvalidArgumentException('Invalid header syntax: Obsolete line folding');
}
throw new \InvalidArgumentException('Invalid header syntax');
}
$headers = [];
foreach ($headerLines as $headerLine) {
$headers[$headerLine[1]][] = $headerLine[2];
}
return [
'start-line' => $startLine,
'headers' => $headers,
'body' => $body,
];
} }
/** /**
@ -809,6 +839,46 @@ function _parse_request_uri($path, array $headers)
return $scheme . '://' . $host . '/' . ltrim($path, '/'); return $scheme . '://' . $host . '/' . ltrim($path, '/');
} }
/**
* Get a short summary of the message body
*
* Will return `null` if the response is not printable.
*
* @param MessageInterface $message The message to get the body summary
* @param int $truncateAt The maximum allowed size of the summary
*
* @return null|string
*/
function get_message_body_summary(MessageInterface $message, $truncateAt = 120)
{
$body = $message->getBody();
if (!$body->isSeekable() || !$body->isReadable()) {
return null;
}
$size = $body->getSize();
if ($size === 0) {
return null;
}
$summary = $body->read($truncateAt);
$body->rewind();
if ($size > $truncateAt) {
$summary .= ' (truncated...)';
}
// Matches any printable character, including unicode characters:
// letters, marks, numbers, punctuation, spacing, and separators.
if (preg_match('/[^\pL\pM\pN\pP\pS\pZ\n\r\t]/', $summary)) {
return null;
}
return $summary;
}
/** @internal */ /** @internal */
function _caseless_remove($keys, array $data) function _caseless_remove($keys, array $data)
{ {

View file

@ -21,6 +21,8 @@
"doctrine/inflector": "^1.1", "doctrine/inflector": "^1.1",
"dragonmantank/cron-expression": "^2.0", "dragonmantank/cron-expression": "^2.0",
"erusev/parsedown": "^1.7", "erusev/parsedown": "^1.7",
"laravel/nexmo-notification-channel": "^1.0",
"laravel/slack-notification-channel": "^1.0",
"league/flysystem": "^1.0.8", "league/flysystem": "^1.0.8",
"monolog/monolog": "^1.12", "monolog/monolog": "^1.12",
"nesbot/carbon": "^1.26.3", "nesbot/carbon": "^1.26.3",
@ -77,12 +79,13 @@
"aws/aws-sdk-php": "^3.0", "aws/aws-sdk-php": "^3.0",
"doctrine/dbal": "^2.6", "doctrine/dbal": "^2.6",
"filp/whoops": "^2.1.4", "filp/whoops": "^2.1.4",
"guzzlehttp/guzzle": "^6.3",
"league/flysystem-cached-adapter": "^1.0", "league/flysystem-cached-adapter": "^1.0",
"mockery/mockery": "^1.0", "mockery/mockery": "^1.0",
"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",
@ -115,6 +118,7 @@
"ext-posix": "Required to use all features of the queue worker.", "ext-posix": "Required to use all features of the queue worker.",
"aws/aws-sdk-php": "Required to use the SQS queue driver and SES mail driver (^3.0).", "aws/aws-sdk-php": "Required to use the SQS queue driver and SES mail driver (^3.0).",
"doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.6).", "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.6).",
"filp/whoops": "Required for friendly error pages in development (^2.1.4).",
"fzaninotto/faker": "Required to use the eloquent factory builder (^1.4).", "fzaninotto/faker": "Required to use the eloquent factory builder (^1.4).",
"guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (^6.0).", "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (^6.0).",
"laravel/tinker": "Required to use the tinker console command (^1.0).", "laravel/tinker": "Required to use the tinker console command (^1.0).",

View file

@ -385,7 +385,6 @@ class Gate implements GateContract
* Determine if the callback allows guests. * Determine if the callback allows guests.
* *
* @param callable $callback * @param callable $callback
* @param array $arguments
* @return bool * @return bool
*/ */
protected function callbackAllowsGuests($callback) protected function callbackAllowsGuests($callback)
@ -452,7 +451,7 @@ class Gate implements GateContract
* @param string $ability * @param string $ability
* @param array $arguments * @param array $arguments
* @param bool $result * @param bool $result
* @return void * @return bool|null
*/ */
protected function callAfterCallbacks($user, $ability, array $arguments, $result) protected function callAfterCallbacks($user, $ability, array $arguments, $result)
{ {

View file

@ -19,7 +19,7 @@ class HomeController extends Controller
/** /**
* Show the application dashboard. * Show the application dashboard.
* *
* @return \Illuminate\Http\Response * @return \Illuminate\Contracts\Support\Renderable
*/ */
public function index() public function index()
{ {

View file

@ -12,7 +12,7 @@
@csrf @csrf
<div class="form-group row"> <div class="form-group row">
<label for="email" class="col-sm-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label> <label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>
<div class="col-md-6"> <div class="col-md-6">
<input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ old('email') }}" required autofocus> <input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ old('email') }}" required autofocus>
@ -57,9 +57,11 @@
{{ __('Login') }} {{ __('Login') }}
</button> </button>
<a class="btn btn-link" href="{{ route('password.request') }}"> @if (Route::has('password.request'))
{{ __('Forgot Your Password?') }} <a class="btn btn-link" href="{{ route('password.request') }}">
</a> {{ __('Forgot Your Password?') }}
</a>
@endif
</div> </div>
</div> </div>
</form> </form>

View file

@ -13,7 +13,7 @@
<script src="{{ asset('js/app.js') }}" defer></script> <script src="{{ asset('js/app.js') }}" defer></script>
<!-- Fonts --> <!-- Fonts -->
<link rel="dns-prefetch" href="https://fonts.gstatic.com"> <link rel="dns-prefetch" href="//fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet" type="text/css"> <link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet" type="text/css">
<!-- Styles --> <!-- Styles -->
@ -43,11 +43,11 @@
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a> <a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a>
</li> </li>
<li class="nav-item"> @if (Route::has('register'))
@if (Route::has('register')) <li class="nav-item">
<a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a> <a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a>
@endif </li>
</li> @endif
@else @else
<li class="nav-item dropdown"> <li class="nav-item dropdown">
<a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre> <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>

View file

@ -83,6 +83,6 @@ class Recaller
{ {
$segments = explode('|', $this->recaller); $segments = explode('|', $this->recaller);
return count($segments) == 3 && trim($segments[0]) !== '' && trim($segments[1]) !== ''; return count($segments) === 3 && trim($segments[0]) !== '' && trim($segments[1]) !== '';
} }
} }

View file

@ -135,9 +135,7 @@ class SessionGuard implements StatefulGuard, SupportsBasicAuth
// If the user is null, but we decrypt a "recaller" cookie we can attempt to // If the user is null, but we decrypt a "recaller" cookie we can attempt to
// pull the user data on that cookie which serves as a remember cookie on // pull the user data on that cookie which serves as a remember cookie on
// the application. Once we have a user we can return it to the caller. // the application. Once we have a user we can return it to the caller.
$recaller = $this->recaller(); if (is_null($this->user) && ! is_null($recaller = $this->recaller())) {
if (is_null($this->user) && ! is_null($recaller)) {
$this->user = $this->userFromRecaller($recaller); $this->user = $this->userFromRecaller($recaller);
if ($this->user) { if ($this->user) {

View file

@ -176,10 +176,6 @@ class BroadcastManager implements FactoryContract
{ {
$config = $this->getConfig($name); $config = $this->getConfig($name);
if (is_null($config)) {
throw new InvalidArgumentException("Broadcaster [{$name}] is not defined.");
}
if (isset($this->customCreators[$config['driver']])) { if (isset($this->customCreators[$config['driver']])) {
return $this->callCustomCreator($config); return $this->callCustomCreator($config);
} }
@ -269,7 +265,11 @@ class BroadcastManager implements FactoryContract
*/ */
protected function getConfig($name) protected function getConfig($name)
{ {
return $this->app['config']["broadcasting.connections.{$name}"]; if (! is_null($name) && $name !== 'null') {
return $this->app['config']["broadcasting.connections.{$name}"];
}
return ['driver' => 'null'];
} }
/** /**

View file

@ -62,7 +62,7 @@ class CacheManager implements FactoryContract
* Get a cache driver instance. * Get a cache driver instance.
* *
* @param string|null $driver * @param string|null $driver
* @return mixed * @return \Illuminate\Contracts\Cache\Repository
*/ */
public function driver($driver = null) public function driver($driver = null)
{ {
@ -278,6 +278,25 @@ class CacheManager implements FactoryContract
$this->app['config']['cache.default'] = $name; $this->app['config']['cache.default'] = $name;
} }
/**
* Unset the given driver instances.
*
* @param array|string|null $name
* @return $this
*/
public function forgetDriver($name = null)
{
$name = $name ?? $this->getDefaultDriver();
foreach ((array) $name as $cacheName) {
if (isset($this->stores[$cacheName])) {
unset($this->stores[$cacheName]);
}
}
return $this;
}
/** /**
* Register a custom driver creator Closure. * Register a custom driver creator Closure.
* *

View file

@ -60,7 +60,7 @@ class ClearCommand extends Command
*/ */
public function handle() public function handle()
{ {
$this->laravel['events']->fire( $this->laravel['events']->dispatch(
'cache:clearing', [$this->argument('store'), $this->tags()] 'cache:clearing', [$this->argument('store'), $this->tags()]
); );
@ -72,7 +72,7 @@ class ClearCommand extends Command
return $this->error('Failed to clear cache. Make sure you have the appropriate permissions.'); return $this->error('Failed to clear cache. Make sure you have the appropriate permissions.');
} }
$this->laravel['events']->fire( $this->laravel['events']->dispatch(
'cache:cleared', [$this->argument('store'), $this->tags()] 'cache:cleared', [$this->argument('store'), $this->tags()]
); );

View file

@ -70,6 +70,17 @@ class Repository implements CacheContract, ArrayAccess
return ! is_null($this->get($key)); return ! is_null($this->get($key));
} }
/**
* Determine if an item doesn't exist in the cache.
*
* @param string $key
* @return bool
*/
public function missing($key)
{
return ! $this->has($key);
}
/** /**
* Retrieve an item from the cache by key. * Retrieve an item from the cache by key.
* *
@ -308,7 +319,7 @@ class Repository implements CacheContract, ArrayAccess
} }
/** /**
* Get an item from the cache, or store the default value. * Get an item from the cache, or execute the given Closure and store the result.
* *
* @param string $key * @param string $key
* @param \DateTimeInterface|\DateInterval|float|int $minutes * @param \DateTimeInterface|\DateInterval|float|int $minutes
@ -332,9 +343,9 @@ class Repository implements CacheContract, ArrayAccess
} }
/** /**
* Get an item from the cache, or store the default value forever. * Get an item from the cache, or execute the given Closure and store the result forever.
* *
* @param string $key * @param string $key
* @param \Closure $callback * @param \Closure $callback
* @return mixed * @return mixed
*/ */
@ -344,9 +355,9 @@ class Repository implements CacheContract, ArrayAccess
} }
/** /**
* Get an item from the cache, or store the default value forever. * Get an item from the cache, or execute the given Closure and store the result forever.
* *
* @param string $key * @param string $key
* @param \Closure $callback * @param \Closure $callback
* @return mixed * @return mixed
*/ */
@ -554,7 +565,7 @@ class Repository implements CacheContract, ArrayAccess
$duration = $this->parseDateInterval($duration); $duration = $this->parseDateInterval($duration);
if ($duration instanceof DateTimeInterface) { if ($duration instanceof DateTimeInterface) {
$duration = Carbon::now()->diffInSeconds(Carbon::createFromTimestamp($duration->getTimestamp()), false) / 60; $duration = Carbon::now()->diffInRealSeconds($duration, false) / 60;
} }
return (int) ($duration * 60) > 0 ? $duration : null; return (int) ($duration * 60) > 0 ? $duration : null;

View file

@ -80,7 +80,7 @@ class Application extends SymfonyApplication implements ApplicationContract
$input = $input ?: new ArgvInput $input = $input ?: new ArgvInput
); );
$this->events->fire( $this->events->dispatch(
new Events\CommandStarting( new Events\CommandStarting(
$commandName, $input, $output = $output ?: new ConsoleOutput $commandName, $input, $output = $output ?: new ConsoleOutput
) )
@ -88,7 +88,7 @@ class Application extends SymfonyApplication implements ApplicationContract
$exitCode = parent::run($input, $output); $exitCode = parent::run($input, $output);
$this->events->fire( $this->events->dispatch(
new Events\CommandFinished($commandName, $input, $output, $exitCode) new Events\CommandFinished($commandName, $input, $output, $exitCode)
); );

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.
* *
@ -543,6 +561,24 @@ class Command extends SymfonyCommand
return $level; return $level;
} }
/**
* {@inheritdoc}
*/
public function isHidden()
{
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

@ -48,7 +48,7 @@ trait ConfirmableTrait
protected function getDefaultConfirmCallback() protected function getDefaultConfirmCallback()
{ {
return function () { return function () {
return $this->getLaravel()->environment() == 'production'; return $this->getLaravel()->environment() === 'production';
}; };
} }
} }

View file

@ -46,6 +46,7 @@ abstract class GeneratorCommand extends Command
* Execute the console command. * Execute the console command.
* *
* @return bool|null * @return bool|null
* @throws \Illuminate\Contracts\Filesystem\FileNotFoundException
*/ */
public function handle() public function handle()
{ {
@ -152,6 +153,7 @@ abstract class GeneratorCommand extends Command
* *
* @param string $name * @param string $name
* @return string * @return string
* @throws \Illuminate\Contracts\Filesystem\FileNotFoundException
*/ */
protected function buildClass($name) protected function buildClass($name)
{ {

View file

@ -163,7 +163,7 @@ class Event
*/ */
public function getDefaultOutput() public function getDefaultOutput()
{ {
return (DIRECTORY_SEPARATOR == '\\') ? 'NUL' : '/dev/null'; return (DIRECTORY_SEPARATOR === '\\') ? 'NUL' : '/dev/null';
} }
/** /**

View file

@ -165,7 +165,7 @@ trait ManagesFrequencies
$segments = explode(':', $time); $segments = explode(':', $time);
return $this->spliceIntoPosition(2, (int) $segments[0]) return $this->spliceIntoPosition(2, (int) $segments[0])
->spliceIntoPosition(1, count($segments) == 2 ? (int) $segments[1] : '0'); ->spliceIntoPosition(1, count($segments) === 2 ? (int) $segments[1] : '0');
} }
/** /**

View file

@ -49,7 +49,7 @@ class BoundMethod
// We will assume an @ sign is used to delimit the class name from the method // We will assume an @ sign is used to delimit the class name from the method
// name. We will split on this @ sign and then build a callable array that // name. We will split on this @ sign and then build a callable array that
// we can pass right back into the "call" method for dependency binding. // we can pass right back into the "call" method for dependency binding.
$method = count($segments) == 2 $method = count($segments) === 2
? $segments[1] : $defaultMethod; ? $segments[1] : $defaultMethod;
if (is_null($method)) { if (is_null($method)) {

View file

@ -196,7 +196,7 @@ class Container implements ArrayAccess, ContainerContract
public function isShared($abstract) public function isShared($abstract)
{ {
return isset($this->instances[$abstract]) || return isset($this->instances[$abstract]) ||
(isset($this->bindings[$abstract]['shared']) && (isset($this->bindings[$abstract]['shared']) &&
$this->bindings[$abstract]['shared'] === true); $this->bindings[$abstract]['shared'] === true);
} }
@ -221,11 +221,11 @@ class Container implements ArrayAccess, ContainerContract
*/ */
public function bind($abstract, $concrete = null, $shared = false) public function bind($abstract, $concrete = null, $shared = false)
{ {
$this->dropStaleInstances($abstract);
// If no concrete type was given, we will simply set the concrete type to the // If no concrete type was given, we will simply set the concrete type to the
// abstract type. After that, the concrete type to be registered as shared // abstract type. After that, the concrete type to be registered as shared
// without being forced to state their classes in both of the parameters. // without being forced to state their classes in both of the parameters.
$this->dropStaleInstances($abstract);
if (is_null($concrete)) { if (is_null($concrete)) {
$concrete = $abstract; $concrete = $abstract;
} }
@ -779,7 +779,7 @@ class Container implements ArrayAccess, ContainerContract
$reflector = new ReflectionClass($concrete); $reflector = new ReflectionClass($concrete);
// If the type is not instantiable, the developer is attempting to resolve // If the type is not instantiable, the developer is attempting to resolve
// an abstract type such as an Interface of Abstract Class and there is // an abstract type such as an Interface or Abstract Class and there is
// no binding registered for the abstractions so we need to bail out. // no binding registered for the abstractions so we need to bail out.
if (! $reflector->isInstantiable()) { if (! $reflector->isInstantiable()) {
return $this->notInstantiable($concrete); return $this->notInstantiable($concrete);

View file

@ -81,7 +81,7 @@ interface Repository extends CacheInterface
public function forever($key, $value); public function forever($key, $value);
/** /**
* Get an item from the cache, or store the default value. * Get an item from the cache, or execute the given Closure and store the result.
* *
* @param string $key * @param string $key
* @param \DateTimeInterface|\DateInterval|float|int $minutes * @param \DateTimeInterface|\DateInterval|float|int $minutes
@ -91,18 +91,18 @@ interface Repository extends CacheInterface
public function remember($key, $minutes, Closure $callback); public function remember($key, $minutes, Closure $callback);
/** /**
* Get an item from the cache, or store the default value forever. * Get an item from the cache, or execute the given Closure and store the result forever.
* *
* @param string $key * @param string $key
* @param \Closure $callback * @param \Closure $callback
* @return mixed * @return mixed
*/ */
public function sear($key, Closure $callback); public function sear($key, Closure $callback);
/** /**
* Get an item from the cache, or store the default value forever. * Get an item from the cache, or execute the given Closure and store the result forever.
* *
* @param string $key * @param string $key
* @param \Closure $callback * @param \Closure $callback
* @return mixed * @return mixed
*/ */

View file

@ -26,7 +26,7 @@ interface Store
* Store an item in the cache for a given number of minutes. * Store an item in the cache for a given number of minutes.
* *
* @param string $key * @param string $key
* @param mixed $value * @param mixed $value
* @param float|int $minutes * @param float|int $minutes
* @return void * @return void
*/ */
@ -45,7 +45,7 @@ interface Store
* Increment the value of an item in the cache. * Increment the value of an item in the cache.
* *
* @param string $key * @param string $key
* @param mixed $value * @param mixed $value
* @return int|bool * @return int|bool
*/ */
public function increment($key, $value = 1); public function increment($key, $value = 1);
@ -54,7 +54,7 @@ interface Store
* Decrement the value of an item in the cache. * Decrement the value of an item in the cache.
* *
* @param string $key * @param string $key
* @param mixed $value * @param mixed $value
* @return int|bool * @return int|bool
*/ */
public function decrement($key, $value = 1); public function decrement($key, $value = 1);
@ -63,7 +63,7 @@ interface Store
* Store an item in the cache indefinitely. * Store an item in the cache indefinitely.
* *
* @param string $key * @param string $key
* @param mixed $value * @param mixed $value
* @return void * @return void
*/ */
public function forever($key, $value); public function forever($key, $value);

View file

@ -7,18 +7,18 @@ interface Encrypter
/** /**
* Encrypt the given value. * Encrypt the given value.
* *
* @param string $value * @param mixed $value
* @param bool $serialize * @param bool $serialize
* @return string * @return mixed
*/ */
public function encrypt($value, $serialize = true); public function encrypt($value, $serialize = true);
/** /**
* Decrypt the given value. * Decrypt the given value.
* *
* @param string $payload * @param mixed $payload
* @param bool $unserialize * @param bool $unserialize
* @return string * @return mixed
*/ */
public function decrypt($payload, $unserialize = true); public function decrypt($payload, $unserialize = true);
} }

View file

@ -61,7 +61,7 @@ interface Filesystem
* *
* @param string $path * @param string $path
* @param resource $resource * @param resource $resource
* @param mixed $options * @param array $options
* @return bool * @return bool
* *
* @throws \InvalidArgumentException If $resource is not a file handle. * @throws \InvalidArgumentException If $resource is not a file handle.

View file

@ -8,7 +8,7 @@ interface Registrar
* Register a new GET route with the router. * Register a new GET route with the router.
* *
* @param string $uri * @param string $uri
* @param \Closure|array|string $action * @param \Closure|array|string|callable $action
* @return \Illuminate\Routing\Route * @return \Illuminate\Routing\Route
*/ */
public function get($uri, $action); public function get($uri, $action);
@ -17,7 +17,7 @@ interface Registrar
* Register a new POST route with the router. * Register a new POST route with the router.
* *
* @param string $uri * @param string $uri
* @param \Closure|array|string $action * @param \Closure|array|string|callable $action
* @return \Illuminate\Routing\Route * @return \Illuminate\Routing\Route
*/ */
public function post($uri, $action); public function post($uri, $action);
@ -26,7 +26,7 @@ interface Registrar
* Register a new PUT route with the router. * Register a new PUT route with the router.
* *
* @param string $uri * @param string $uri
* @param \Closure|array|string $action * @param \Closure|array|string|callable $action
* @return \Illuminate\Routing\Route * @return \Illuminate\Routing\Route
*/ */
public function put($uri, $action); public function put($uri, $action);
@ -35,7 +35,7 @@ interface Registrar
* Register a new DELETE route with the router. * Register a new DELETE route with the router.
* *
* @param string $uri * @param string $uri
* @param \Closure|array|string $action * @param \Closure|array|string|callable $action
* @return \Illuminate\Routing\Route * @return \Illuminate\Routing\Route
*/ */
public function delete($uri, $action); public function delete($uri, $action);
@ -44,7 +44,7 @@ interface Registrar
* Register a new PATCH route with the router. * Register a new PATCH route with the router.
* *
* @param string $uri * @param string $uri
* @param \Closure|array|string $action * @param \Closure|array|string|callable $action
* @return \Illuminate\Routing\Route * @return \Illuminate\Routing\Route
*/ */
public function patch($uri, $action); public function patch($uri, $action);
@ -53,7 +53,7 @@ interface Registrar
* Register a new OPTIONS route with the router. * Register a new OPTIONS route with the router.
* *
* @param string $uri * @param string $uri
* @param \Closure|array|string $action * @param \Closure|array|string|callable $action
* @return \Illuminate\Routing\Route * @return \Illuminate\Routing\Route
*/ */
public function options($uri, $action); public function options($uri, $action);
@ -63,7 +63,7 @@ interface Registrar
* *
* @param array|string $methods * @param array|string $methods
* @param string $uri * @param string $uri
* @param \Closure|array|string $action * @param \Closure|array|string|callable $action
* @return \Illuminate\Routing\Route * @return \Illuminate\Routing\Route
*/ */
public function match($methods, $uri, $action); public function match($methods, $uri, $action);

View file

@ -16,7 +16,7 @@ interface Rule
/** /**
* Get the validation error message. * Get the validation error message.
* *
* @return string * @return string|array
*/ */
public function message(); public function message();
} }

View file

@ -38,7 +38,7 @@ interface Validator extends MessageProvider
public function sometimes($attribute, $rules, callable $callback); public function sometimes($attribute, $rules, callable $callback);
/** /**
* After an after validation callback. * Add an after validation callback.
* *
* @param callable|string $callback * @param callable|string $callback
* @return $this * @return $this

View file

@ -3,13 +3,14 @@
namespace Illuminate\Cookie; namespace Illuminate\Cookie;
use Illuminate\Support\Arr; use Illuminate\Support\Arr;
use Illuminate\Support\Traits\Macroable;
use Illuminate\Support\InteractsWithTime; use Illuminate\Support\InteractsWithTime;
use Symfony\Component\HttpFoundation\Cookie; use Symfony\Component\HttpFoundation\Cookie;
use Illuminate\Contracts\Cookie\QueueingFactory as JarContract; use Illuminate\Contracts\Cookie\QueueingFactory as JarContract;
class CookieJar implements JarContract class CookieJar implements JarContract
{ {
use InteractsWithTime; use InteractsWithTime, Macroable;
/** /**
* The default path (if specified). * The default path (if specified).

View file

@ -751,6 +751,8 @@ class Connection implements ConnectionInterface
public function reconnect() public function reconnect()
{ {
if (is_callable($this->reconnector)) { if (is_callable($this->reconnector)) {
$this->doctrineConnection = null;
return call_user_func($this->reconnector, $this); return call_user_func($this->reconnector, $this);
} }

View file

@ -59,9 +59,11 @@ class PostgresConnector extends Connector implements ConnectorInterface
*/ */
protected function configureEncoding($connection, $config) protected function configureEncoding($connection, $config)
{ {
$charset = $config['charset']; if (! isset($config['charset'])) {
return;
}
$connection->prepare("set names '$charset'")->execute(); $connection->prepare("set names '{$config['charset']}'")->execute();
} }
/** /**

View file

@ -21,7 +21,7 @@ class SQLiteConnector extends Connector implements ConnectorInterface
// SQLite supports "in-memory" databases that only last as long as the owning // SQLite supports "in-memory" databases that only last as long as the owning
// connection does. These are useful for tests or for short lifetime store // connection does. These are useful for tests or for short lifetime store
// querying. In-memory databases may only have a single open connection. // querying. In-memory databases may only have a single open connection.
if ($config['database'] == ':memory:') { if ($config['database'] === ':memory:') {
return $this->createConnection('sqlite::memory:', $config, $options); return $this->createConnection('sqlite::memory:', $config, $options);
} }

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

@ -4,6 +4,16 @@ namespace Illuminate\Database\Console\Migrations;
class TableGuesser class TableGuesser
{ {
const CREATE_PATTERNS = [
'/^create_(\w+)_table$/',
'/^create_(\w+)$/',
];
const CHANGE_PATTERNS = [
'/_(to|from|in)_(\w+)_table$/',
'/_(to|from|in)_(\w+)$/',
];
/** /**
* Attempt to guess the table name and "creation" status of the given migration. * Attempt to guess the table name and "creation" status of the given migration.
* *
@ -12,12 +22,16 @@ class TableGuesser
*/ */
public static function guess($migration) public static function guess($migration)
{ {
if (preg_match('/^create_(\w+)_table$/', $migration, $matches)) { foreach (self::CREATE_PATTERNS as $pattern) {
return [$matches[1], $create = true]; if (preg_match($pattern, $migration, $matches)) {
return [$matches[1], $create = true];
}
} }
if (preg_match('/_(to|from|in)_(\w+)_table$/', $migration, $matches)) { foreach (self::CHANGE_PATTERNS as $pattern) {
return [$matches[2], $create = false]; if (preg_match($pattern, $migration, $matches)) {
return [$matches[2], $create = false];
}
} }
} }
} }

View file

@ -180,9 +180,9 @@ class DatabaseManager implements ConnectionResolverInterface
*/ */
protected function setPdoForType(Connection $connection, $type = null) protected function setPdoForType(Connection $connection, $type = null)
{ {
if ($type == 'read') { if ($type === 'read') {
$connection->setPdo($connection->getReadPdo()); $connection->setPdo($connection->getReadPdo());
} elseif ($type == 'write') { } elseif ($type === 'write') {
$connection->setReadPdo($connection->getPdo()); $connection->setReadPdo($connection->getPdo());
} }

View file

@ -34,7 +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',
'Packets out of order. Expected',
'Adaptive Server connection failed',
]); ]);
} }
} }

View file

@ -1114,9 +1114,9 @@ class Builder
$results = []; $results = [];
foreach ($relations as $name => $constraints) { foreach ($relations as $name => $constraints) {
// If the "relation" value is actually a numeric key, we can assume that no // If the "name" value is a numeric key, we can assume that no
// constraints have been specified for the eager load and we'll just put // constraints have been specified. We'll just put an empty
// an empty Closure with the loader so that we can treat all the same. // Closure there, so that we can treat them all the same.
if (is_numeric($name)) { if (is_numeric($name)) {
$name = $constraints; $name = $constraints;
@ -1127,9 +1127,9 @@ class Builder
}]; }];
} }
// We need to separate out any nested includes. Which allows the developers // We need to separate out any nested includes, which allows the developers
// to load deep relationships using "dots" without stating each level of // to load deep relationships using "dots" without stating each level of
// the relationship with its own key in the array of eager load names. // the relationship with its own key in the array of eager-load names.
$results = $this->addNestedWiths($name, $results); $results = $this->addNestedWiths($name, $results);
$results[$name] = $constraints; $results[$name] = $constraints;

View file

@ -63,6 +63,38 @@ class Collection extends BaseCollection implements QueueableCollection
return $this; return $this;
} }
/**
* Load a set of relationship counts onto the collection.
*
* @param array|string $relations
* @return $this
*/
public function loadCount($relations)
{
if ($this->isEmpty()) {
return $this;
}
$models = $this->first()->newModelQuery()
->whereKey($this->modelKeys())
->select($this->first()->getKeyName())
->withCount(...func_get_args())
->get();
$attributes = Arr::except(
array_keys($models->first()->getAttributes()),
$models->first()->getKeyName()
);
$models->each(function ($model) use ($attributes) {
$this->find($model->getKey())->forceFill(
Arr::only($model->getAttributes(), $attributes)
)->syncOriginalAttributes($attributes);
});
return $this;
}
/** /**
* Load a set of relationships onto the collection if they are not already eager loaded. * Load a set of relationships onto the collection if they are not already eager loaded.
* *
@ -86,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);
@ -107,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];
@ -146,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

@ -173,7 +173,7 @@ trait GuardsAttributes
*/ */
public function totallyGuarded() public function totallyGuarded()
{ {
return count($this->getFillable()) == 0 && $this->getGuarded() == ['*']; return count($this->getFillable()) === 0 && $this->getGuarded() == ['*'];
} }
/** /**

View file

@ -479,6 +479,8 @@ trait HasAttributes
case 'float': case 'float':
case 'double': case 'double':
return $this->fromFloat($value); return $this->fromFloat($value);
case 'decimal':
return $this->asDecimal($value, explode(':', $this->getCasts()[$key], 2)[1]);
case 'string': case 'string':
return (string) $value; return (string) $value;
case 'bool': case 'bool':
@ -515,6 +517,10 @@ trait HasAttributes
return 'custom_datetime'; return 'custom_datetime';
} }
if ($this->isDecimalCast($this->getCasts()[$key])) {
return 'decimal';
}
return trim(strtolower($this->getCasts()[$key])); return trim(strtolower($this->getCasts()[$key]));
} }
@ -530,6 +536,17 @@ trait HasAttributes
strncmp($cast, 'datetime:', 9) === 0; strncmp($cast, 'datetime:', 9) === 0;
} }
/**
* Determine if the cast type is a decimal cast.
*
* @param string $cast
* @return bool
*/
protected function isDecimalCast($cast)
{
return strncmp($cast, 'decimal:', 8) === 0;
}
/** /**
* Set a given attribute on the model. * Set a given attribute on the model.
* *
@ -680,6 +697,18 @@ trait HasAttributes
return json_encode($value); return json_encode($value);
} }
/**
* Decode the given JSON back into an array or object.
*
* @param string $value
* @param bool $asObject
* @return mixed
*/
public function fromJson($value, $asObject = false)
{
return json_decode($value, ! $asObject);
}
/** /**
* Decode the given float. * Decode the given float.
* *
@ -701,15 +730,15 @@ trait HasAttributes
} }
/** /**
* Decode the given JSON back into an array or object. * Return a decimal as string.
* *
* @param string $value * @param float $value
* @param bool $asObject * @param int $decimals
* @return mixed * @return string
*/ */
public function fromJson($value, $asObject = false) protected function asDecimal($value, $decimals)
{ {
return json_decode($value, ! $asObject); return number_format($value, $decimals, '.', '');
} }
/** /**
@ -783,8 +812,8 @@ trait HasAttributes
/** /**
* Convert a DateTime to a storable string. * Convert a DateTime to a storable string.
* *
* @param \DateTime|int $value * @param mixed $value
* @return string * @return string|null
*/ */
public function fromDateTime($value) public function fromDateTime($value)
{ {
@ -981,7 +1010,22 @@ trait HasAttributes
*/ */
public function syncOriginalAttribute($attribute) public function syncOriginalAttribute($attribute)
{ {
$this->original[$attribute] = $this->attributes[$attribute]; return $this->syncOriginalAttributes($attribute);
}
/**
* Sync multiple original attribute with their current values.
*
* @param array|string $attributes
* @return $this
*/
public function syncOriginalAttributes($attributes)
{
$attributes = is_array($attributes) ? $attributes : func_get_args();
foreach ($attributes as $attribute) {
$this->original[$attribute] = $this->attributes[$attribute];
}
return $this; return $this;
} }
@ -999,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
@ -1012,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
@ -1023,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
@ -1036,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

@ -41,7 +41,6 @@ trait HasRelationships
*/ */
public static $manyMethods = [ public static $manyMethods = [
'belongsToMany', 'morphToMany', 'morphedByMany', 'belongsToMany', 'morphToMany', 'morphedByMany',
'guessBelongsToManyRelation', 'findFirstMethodThatIsntRelation',
]; ];
/** /**
@ -546,14 +545,17 @@ trait HasRelationships
} }
/** /**
* Get the relationship name of the belongs to many. * Get the relationship name of the belongsToMany relationship.
* *
* @return string * @return string|null
*/ */
protected function guessBelongsToManyRelation() protected function guessBelongsToManyRelation()
{ {
$caller = Arr::first(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS), function ($trace) { $caller = Arr::first(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS), function ($trace) {
return ! in_array($trace['function'], Model::$manyMethods); return ! in_array(
$trace['function'],
array_merge(static::$manyMethods, ['guessBelongsToManyRelation'])
);
}); });
return ! is_null($caller) ? $caller['function'] : null; return ! is_null($caller) ? $caller['function'] : null;

View file

@ -43,7 +43,7 @@ trait QueriesRelationships
: 'getRelationExistenceCountQuery'; : 'getRelationExistenceCountQuery';
$hasQuery = $relation->{$method}( $hasQuery = $relation->{$method}(
$relation->getRelated()->newQuery(), $this $relation->getRelated()->newQueryWithoutRelationships(), $this
); );
// Next we will call any given callback as an "anonymous" scope so they can get the // Next we will call any given callback as an "anonymous" scope so they can get the
@ -74,6 +74,13 @@ trait QueriesRelationships
{ {
$relations = explode('.', $relations); $relations = explode('.', $relations);
$doesntHave = $operator === '<' && $count === 1;
if ($doesntHave) {
$operator = '>=';
$count = 1;
}
$closure = function ($q) use (&$closure, &$relations, $operator, $count, $callback) { $closure = function ($q) use (&$closure, &$relations, $operator, $count, $callback) {
// In order to nest "has", we need to add count relation constraints on the // In order to nest "has", we need to add count relation constraints on the
// callback Closure. We'll do this by simply passing the Closure its own // callback Closure. We'll do this by simply passing the Closure its own
@ -83,7 +90,7 @@ trait QueriesRelationships
: $q->has(array_shift($relations), $operator, $count, 'and', $callback); : $q->has(array_shift($relations), $operator, $count, 'and', $callback);
}; };
return $this->has(array_shift($relations), '>=', 1, $boolean, $closure); return $this->has(array_shift($relations), $doesntHave ? '<' : '>=', 1, $boolean, $closure);
} }
/** /**
@ -201,7 +208,7 @@ trait QueriesRelationships
unset($alias); unset($alias);
if (count($segments) == 3 && Str::lower($segments[1]) == 'as') { if (count($segments) === 3 && Str::lower($segments[1]) === 'as') {
[$name, $alias] = [$segments[0], $segments[2]]; [$name, $alias] = [$segments[0], $segments[2]];
} }

View file

@ -306,6 +306,8 @@ class FactoryBuilder
* @param array $definition * @param array $definition
* @param array $attributes * @param array $attributes
* @return array * @return array
*
* @throws \InvalidArgumentException
*/ */
protected function applyStates(array $definition, array $attributes = []) protected function applyStates(array $definition, array $attributes = [])
{ {

View file

@ -394,6 +394,8 @@ abstract class Model implements ArrayAccess, Arrayable, Jsonable, JsonSerializab
$this->getConnectionName() $this->getConnectionName()
); );
$model->setTable($this->getTable());
return $model; return $model;
} }
@ -425,9 +427,9 @@ abstract class Model implements ArrayAccess, Arrayable, Jsonable, JsonSerializab
*/ */
public static function on($connection = null) public static function on($connection = null)
{ {
// First we will just create a fresh instance of this model, and then we can // First we will just create a fresh instance of this model, and then we can set the
// set the connection on the model so that it is be used for the queries // connection on the model so that it is used for the queries we execute, as well
// we execute, as well as being set on each relationship we retrieve. // as being set on every relation we retrieve without a custom connection name.
$instance = new static; $instance = new static;
$instance->setConnection($connection); $instance->setConnection($connection);
@ -542,7 +544,7 @@ abstract class Model implements ArrayAccess, Arrayable, Jsonable, JsonSerializab
*/ */
protected function incrementOrDecrement($column, $amount, $extra, $method) protected function incrementOrDecrement($column, $amount, $extra, $method)
{ {
$query = $this->newQuery(); $query = $this->newModelQuery();
if (! $this->exists) { if (! $this->exists) {
return $query->{$method}($column, $amount, $extra); return $query->{$method}($column, $amount, $extra);
@ -566,7 +568,7 @@ abstract class Model implements ArrayAccess, Arrayable, Jsonable, JsonSerializab
*/ */
protected function incrementOrDecrementAttributeValue($column, $amount, $extra, $method) protected function incrementOrDecrementAttributeValue($column, $amount, $extra, $method)
{ {
$this->{$column} = $this->{$column} + ($method == 'increment' ? $amount : $amount * -1); $this->{$column} = $this->{$column} + ($method === 'increment' ? $amount : $amount * -1);
$this->forceFill($extra); $this->forceFill($extra);
@ -958,9 +960,7 @@ abstract class Model implements ArrayAccess, Arrayable, Jsonable, JsonSerializab
*/ */
public function newQueryWithoutRelationships() public function newQueryWithoutRelationships()
{ {
return $this->registerGlobalScopes( return $this->registerGlobalScopes($this->newModelQuery());
$this->newEloquentBuilder($this->newBaseQueryBuilder())->setModel($this)
);
} }
/** /**

View file

@ -7,9 +7,6 @@ use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Relations\Concerns\SupportsDefaultModels; use Illuminate\Database\Eloquent\Relations\Concerns\SupportsDefaultModels;
/**
* @mixin \Illuminate\Database\Eloquent\Builder
*/
class BelongsTo extends Relation class BelongsTo extends Relation
{ {
use SupportsDefaultModels; use SupportsDefaultModels;
@ -78,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);
} }
@ -111,7 +112,9 @@ class BelongsTo extends Relation
// our eagerly loading query so it returns the proper models from execution. // our eagerly loading query so it returns the proper models from execution.
$key = $this->related->getTable().'.'.$this->ownerKey; $key = $this->related->getTable().'.'.$this->ownerKey;
$this->query->whereIn($key, $this->getEagerModelKeys($models)); $whereIn = $this->whereInMethod($this->related, $this->ownerKey);
$this->query->{$whereIn}($key, $this->getEagerModelKeys($models));
} }
/** /**
@ -133,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

@ -209,7 +209,12 @@ class BelongsToMany extends Relation
*/ */
public function addEagerConstraints(array $models) public function addEagerConstraints(array $models)
{ {
$this->query->whereIn($this->getQualifiedForeignPivotKeyName(), $this->getKeys($models, $this->parentKey)); $whereIn = $this->whereInMethod($this->parent, $this->parentKey);
$this->query->{$whereIn}(
$this->getQualifiedForeignPivotKeyName(),
$this->getKeys($models, $this->parentKey)
);
} }
/** /**
@ -360,7 +365,7 @@ class BelongsToMany extends Relation
* *
* In addition, new pivot records will receive this value. * In addition, new pivot records will receive this value.
* *
* @param string $column * @param string|array $column
* @param mixed $value * @param mixed $value
* @return $this * @return $this
*/ */
@ -514,7 +519,7 @@ class BelongsToMany extends Relation
return $result; return $result;
} }
throw (new ModelNotFoundException)->setModel(get_class($this->related)); throw (new ModelNotFoundException)->setModel(get_class($this->related), $id);
} }
/** /**
@ -554,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();
} }
/** /**
@ -673,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.
* *
@ -788,7 +821,7 @@ class BelongsToMany extends Relation
// the related model's timestamps, to make sure these all reflect the changes // the related model's timestamps, to make sure these all reflect the changes
// to the parent models. This will help us keep any caching synced up here. // to the parent models. This will help us keep any caching synced up here.
if (count($ids = $this->allRelatedIds()) > 0) { if (count($ids = $this->allRelatedIds()) > 0) {
$this->getRelated()->newQuery()->whereIn($key, $ids)->update($columns); $this->getRelated()->newModelQuery()->whereIn($key, $ids)->update($columns);
} }
} }
@ -1016,6 +1049,16 @@ class BelongsToMany extends Relation
return $this->table.'.'.$this->relatedPivotKey; return $this->table.'.'.$this->relatedPivotKey;
} }
/**
* Get the parent key for the relationship.
*
* @return string
*/
public function getParentKeyName()
{
return $this->parentKey;
}
/** /**
* Get the fully qualified parent key name for the relation. * Get the fully qualified parent key name for the relation.
* *
@ -1026,6 +1069,16 @@ class BelongsToMany extends Relation
return $this->parent->qualifyColumn($this->parentKey); return $this->parent->qualifyColumn($this->parentKey);
} }
/**
* Get the related key for the relationship.
*
* @return string
*/
public function getRelatedKeyName()
{
return $this->relatedKey;
}
/** /**
* Get the intermediate table for the relationship. * Get the intermediate table for the relationship.
* *

View file

@ -124,7 +124,7 @@ trait AsPivot
*/ */
protected function getDeleteQuery() protected function getDeleteQuery()
{ {
return $this->newQuery()->where([ return $this->newModelQuery()->where([
$this->foreignKey => $this->getOriginal($this->foreignKey, $this->getAttribute($this->foreignKey)), $this->foreignKey => $this->getOriginal($this->foreignKey, $this->getAttribute($this->foreignKey)),
$this->relatedKey => $this->getOriginal($this->relatedKey, $this->getAttribute($this->relatedKey)), $this->relatedKey => $this->getOriginal($this->relatedKey, $this->getAttribute($this->relatedKey)),
]); ]);
@ -247,7 +247,7 @@ trait AsPivot
/** /**
* Get a new query to restore one or more models by their queueable IDs. * Get a new query to restore one or more models by their queueable IDs.
* *
* @param array|int $ids * @param array<int> $ids
* @return \Illuminate\Database\Eloquent\Builder * @return \Illuminate\Database\Eloquent\Builder
*/ */
public function newQueryForRestoration($ids) public function newQueryForRestoration($ids)

View file

@ -64,7 +64,7 @@ trait InteractsWithPivotTable
/** /**
* Sync the intermediate tables with a list of IDs without detaching. * Sync the intermediate tables with a list of IDs without detaching.
* *
* @param \Illuminate\Database\Eloquent\Collection|\Illuminate\Support\Collection|array $ids * @param \Illuminate\Support\Collection|\Illuminate\Database\Eloquent\Model|array $ids
* @return array * @return array
*/ */
public function syncWithoutDetaching($ids) public function syncWithoutDetaching($ids)
@ -75,7 +75,7 @@ trait InteractsWithPivotTable
/** /**
* Sync the intermediate tables with a list of IDs or collection of models. * Sync the intermediate tables with a list of IDs or collection of models.
* *
* @param \Illuminate\Database\Eloquent\Collection|\Illuminate\Support\Collection|array $ids * @param \Illuminate\Support\Collection|\Illuminate\Database\Eloquent\Model|array $ids
* @param bool $detaching * @param bool $detaching
* @return array * @return array
*/ */
@ -427,7 +427,7 @@ trait InteractsWithPivotTable
*/ */
public function newPivotStatementForId($id) public function newPivotStatementForId($id)
{ {
return $this->newPivotQuery()->where($this->relatedPivotKey, $id); return $this->newPivotQuery()->whereIn($this->relatedPivotKey, $this->parseIds($id));
} }
/** /**
@ -507,7 +507,7 @@ trait InteractsWithPivotTable
*/ */
protected function castKeys(array $keys) protected function castKeys(array $keys)
{ {
return (array) array_map(function ($v) { return array_map(function ($v) {
return $this->castKey($v); return $this->castKey($v);
}, $keys); }, $keys);
} }

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

@ -146,7 +146,9 @@ class HasManyThrough extends Relation
*/ */
public function addEagerConstraints(array $models) public function addEagerConstraints(array $models)
{ {
$this->query->whereIn( $whereIn = $this->whereInMethod($this->farParent, $this->localKey);
$this->query->{$whereIn}(
$this->getQualifiedFirstKeyName(), $this->getKeys($models, $this->localKey) $this->getQualifiedFirstKeyName(), $this->getKeys($models, $this->localKey)
); );
} }
@ -331,7 +333,7 @@ class HasManyThrough extends Relation
return $result; return $result;
} }
throw (new ModelNotFoundException)->setModel(get_class($this->related)); throw (new ModelNotFoundException)->setModel(get_class($this->related), $id);
} }
/** /**
@ -341,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();
} }
/** /**
@ -425,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.
* *
@ -478,10 +500,14 @@ class HasManyThrough extends Relation
*/ */
public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*']) public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*'])
{ {
if ($parentQuery->getQuery()->from == $query->getQuery()->from) { if ($parentQuery->getQuery()->from === $query->getQuery()->from) {
return $this->getRelationExistenceQueryForSelfRelation($query, $parentQuery, $columns); return $this->getRelationExistenceQueryForSelfRelation($query, $parentQuery, $columns);
} }
if ($parentQuery->getQuery()->from === $this->throughParent->getTable()) {
return $this->getRelationExistenceQueryForThroughSelfRelation($query, $parentQuery, $columns);
}
$this->performJoin($query); $this->performJoin($query);
return $query->select($columns)->whereColumn( return $query->select($columns)->whereColumn(
@ -501,7 +527,7 @@ class HasManyThrough extends Relation
{ {
$query->from($query->getModel()->getTable().' as '.$hash = $this->getRelationCountHash()); $query->from($query->getModel()->getTable().' as '.$hash = $this->getRelationCountHash());
$query->join($this->throughParent->getTable(), $this->getQualifiedParentKeyName(), '=', $hash.'.'.$this->secondLocalKey); $query->join($this->throughParent->getTable(), $this->getQualifiedParentKeyName(), '=', $hash.'.'.$this->secondKey);
if ($this->throughParentSoftDeletes()) { if ($this->throughParentSoftDeletes()) {
$query->whereNull($this->throughParent->getQualifiedDeletedAtColumn()); $query->whereNull($this->throughParent->getQualifiedDeletedAtColumn());
@ -514,6 +540,29 @@ class HasManyThrough extends Relation
); );
} }
/**
* Add the constraints for a relationship query on the same table as the through parent.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @param \Illuminate\Database\Eloquent\Builder $parentQuery
* @param array|mixed $columns
* @return \Illuminate\Database\Eloquent\Builder
*/
public function getRelationExistenceQueryForThroughSelfRelation(Builder $query, Builder $parentQuery, $columns = ['*'])
{
$table = $this->throughParent->getTable().' as '.$hash = $this->getRelationCountHash();
$query->join($table, $hash.'.'.$this->secondLocalKey, '=', $this->getQualifiedFarKeyName());
if ($this->throughParentSoftDeletes()) {
$query->whereNull($hash.'.'.$this->throughParent->getDeletedAtColumn());
}
return $query->select($columns)->whereColumn(
$parentQuery->getQuery()->from.'.'.$this->localKey, '=', $hash.'.'.$this->firstKey
);
}
/** /**
* Get a relationship join table hash. * Get a relationship join table hash.
* *
@ -534,6 +583,16 @@ class HasManyThrough extends Relation
return $this->getQualifiedForeignKeyName(); return $this->getQualifiedForeignKeyName();
} }
/**
* Get the foreign key on the "through" model.
*
* @return string
*/
public function getFirstKeyName()
{
return $this->firstKey;
}
/** /**
* Get the qualified foreign key on the "through" model. * Get the qualified foreign key on the "through" model.
* *
@ -544,6 +603,16 @@ class HasManyThrough extends Relation
return $this->throughParent->qualifyColumn($this->firstKey); return $this->throughParent->qualifyColumn($this->firstKey);
} }
/**
* Get the foreign key on the related model.
*
* @return string
*/
public function getForeignKeyName()
{
return $this->secondKey;
}
/** /**
* Get the qualified foreign key on the related model. * Get the qualified foreign key on the related model.
* *
@ -554,6 +623,16 @@ class HasManyThrough extends Relation
return $this->related->qualifyColumn($this->secondKey); return $this->related->qualifyColumn($this->secondKey);
} }
/**
* Get the local key on the far parent model.
*
* @return string
*/
public function getLocalKeyName()
{
return $this->localKey;
}
/** /**
* Get the qualified local key on the far parent model. * Get the qualified local key on the far parent model.
* *
@ -563,4 +642,14 @@ class HasManyThrough extends Relation
{ {
return $this->farParent->qualifyColumn($this->localKey); return $this->farParent->qualifyColumn($this->localKey);
} }
/**
* Get the local key on the intermediary model.
*
* @return string
*/
public function getSecondLocalKeyName()
{
return $this->secondLocalKey;
}
} }

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

@ -81,7 +81,9 @@ abstract class HasOneOrMany extends Relation
*/ */
public function addEagerConstraints(array $models) public function addEagerConstraints(array $models)
{ {
$this->query->whereIn( $whereIn = $this->whereInMethod($this->parent, $this->localKey);
$this->query->{$whereIn}(
$this->foreignKey, $this->getKeys($models, $this->localKey) $this->foreignKey, $this->getKeys($models, $this->localKey)
); );
} }
@ -151,7 +153,7 @@ abstract class HasOneOrMany extends Relation
{ {
$value = $dictionary[$key]; $value = $dictionary[$key];
return $type == 'one' ? reset($value) : $this->related->newCollection($value); return $type === 'one' ? reset($value) : $this->related->newCollection($value);
} }
/** /**
@ -308,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.
* *
@ -420,4 +407,14 @@ abstract class HasOneOrMany extends Relation
{ {
return $this->foreignKey; return $this->foreignKey;
} }
/**
* Get the local key for the relationship.
*
* @return string
*/
public function getLocalKeyName()
{
return $this->localKey;
}
} }

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

@ -124,7 +124,7 @@ class MorphPivot extends Pivot
/** /**
* Get a new query to restore multiple models by their queueable IDs. * Get a new query to restore multiple models by their queueable IDs.
* *
* @param array|int $ids * @param array<int> $ids
* @return \Illuminate\Database\Eloquent\Builder * @return \Illuminate\Database\Eloquent\Builder
*/ */
protected function newQueryForCollectionRestoration(array $ids) protected function newQueryForCollectionRestoration(array $ids)

View file

@ -7,9 +7,6 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Collection;
/**
* @mixin \Illuminate\Database\Eloquent\Builder
*/
class MorphTo extends BelongsTo class MorphTo extends BelongsTo
{ {
/** /**
@ -84,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.
* *
@ -230,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

@ -181,4 +181,14 @@ class MorphToMany extends BelongsToMany
{ {
return $this->morphClass; return $this->morphClass;
} }
/**
* Get the indicator for a reverse relationship.
*
* @return bool
*/
public function getInverse()
{
return $this->inverse;
}
} }

View file

@ -307,6 +307,22 @@ abstract class Relation
return $this->related->getUpdatedAtColumn(); return $this->related->getUpdatedAtColumn();
} }
/**
* Get the name of the "where in" method for eager loading.
*
* @param \Illuminate\Database\Eloquent\Model $model
* @param string $key
* @return string
*/
protected function whereInMethod(Model $model, $key)
{
return $model->getKeyName() === last(explode('.', $key))
&& $model->getIncrementing()
&& in_array($model->getKeyType(), ['int', 'integer'])
? 'whereIntegerInRaw'
: 'whereIn';
}
/** /**
* Set or get the morph map for polymorphic relations. * Set or get the morph map for polymorphic relations.
* *

View file

@ -428,7 +428,7 @@ class Migrator
public function getMigrationFiles($paths) public function getMigrationFiles($paths)
{ {
return Collection::make($paths)->flatMap(function ($path) { return Collection::make($paths)->flatMap(function ($path) {
return $this->files->glob($path.'/*_*.php'); return Str::endsWith($path, '.php') ? [$path] : $this->files->glob($path.'/*_*.php');
})->filter()->sortBy(function ($file) { })->filter()->sortBy(function ($file) {
return $this->getMigrationName($file); return $this->getMigrationName($file);
})->values()->keyBy(function ($file) { })->values()->keyBy(function ($file) {

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.
* *
@ -857,11 +870,7 @@ class Builder
// Finally we'll add a binding for each values unless that value is an expression // Finally we'll add a binding for each values unless that value is an expression
// in which case we will just skip over it since it will be the query as a raw // in which case we will just skip over it since it will be the query as a raw
// string and not as a parameterized place-holder to be replaced by the PDO. // string and not as a parameterized place-holder to be replaced by the PDO.
foreach ($values as $value) { $this->addBinding($this->cleanBindings($values), 'where');
if (! $value instanceof Expression) {
$this->addBinding($value, 'where');
}
}
return $this; return $this;
} }
@ -948,6 +957,45 @@ class Builder
return $this; return $this;
} }
/**
* Add a "where in raw" clause for integer values to the query.
*
* @param string $column
* @param \Illuminate\Contracts\Support\Arrayable|array $values
* @param string $boolean
* @param bool $not
* @return $this
*/
public function whereIntegerInRaw($column, $values, $boolean = 'and', $not = false)
{
$type = $not ? 'NotInRaw' : 'InRaw';
if ($values instanceof Arrayable) {
$values = $values->toArray();
}
foreach ($values as &$value) {
$value = (int) $value;
}
$this->wheres[] = compact('type', 'column', 'values', 'boolean');
return $this;
}
/**
* Add a "where not in raw" clause for integer values to the query.
*
* @param string $column
* @param \Illuminate\Contracts\Support\Arrayable|array $values
* @param string $boolean
* @return $this
*/
public function whereIntegerNotInRaw($column, $values, $boolean = 'and')
{
return $this->whereIntegerInRaw($column, $values, $boolean, true);
}
/** /**
* Add a "where null" clause to the query. * Add a "where null" clause to the query.
* *
@ -1689,6 +1737,26 @@ class Builder
return $this->having($column, $operator, $value, 'or'); return $this->having($column, $operator, $value, 'or');
} }
/**
* Add a "having between " clause to the query.
*
* @param string $column
* @param array $values
* @param string $boolean
* @param bool $not
* @return \Illuminate\Database\Query\Builder|static
*/
public function havingBetween($column, array $values, $boolean = 'and', $not = false)
{
$type = 'between';
$this->havings[] = compact('type', 'column', 'values', 'boolean', 'not');
$this->addBinding($this->cleanBindings($values), 'having');
return $this;
}
/** /**
* Add a raw having clause to the query. * Add a raw having clause to the query.
* *
@ -1731,7 +1799,7 @@ class Builder
{ {
$this->{$this->unions ? 'unionOrders' : 'orders'}[] = [ $this->{$this->unions ? 'unionOrders' : 'orders'}[] = [
'column' => $column, 'column' => $column,
'direction' => strtolower($direction) == 'asc' ? 'asc' : 'desc', 'direction' => strtolower($direction) === 'asc' ? 'asc' : 'desc',
]; ];
return $this; return $this;
@ -2106,8 +2174,10 @@ class Builder
*/ */
protected function runPaginationCountQuery($columns = ['*']) protected function runPaginationCountQuery($columns = ['*'])
{ {
return $this->cloneWithout(['columns', 'orders', 'limit', 'offset']) $without = $this->unions ? ['orders', 'limit', 'offset'] : ['columns', 'orders', 'limit', 'offset'];
->cloneWithoutBindings(['select', 'order'])
return $this->cloneWithout($without)
->cloneWithoutBindings($this->unions ? ['order'] : ['select', 'order'])
->setAggregate('count', $this->withoutSelectAliases($columns)) ->setAggregate('count', $this->withoutSelectAliases($columns))
->get()->all(); ->get()->all();
} }
@ -2420,8 +2490,8 @@ class Builder
*/ */
public function aggregate($function, $columns = ['*']) public function aggregate($function, $columns = ['*'])
{ {
$results = $this->cloneWithout(['columns']) $results = $this->cloneWithout($this->unions ? [] : ['columns'])
->cloneWithoutBindings(['select']) ->cloneWithoutBindings($this->unions ? [] : ['select'])
->setAggregate($function, $columns) ->setAggregate($function, $columns)
->get($columns); ->get($columns);
@ -2545,7 +2615,7 @@ class Builder
/** /**
* Insert a new record and get the value of the primary key. * Insert a new record and get the value of the primary key.
* *
* @param array $values * @param array $values
* @param string|null $sequence * @param string|null $sequence
* @return int * @return int
*/ */
@ -2558,6 +2628,23 @@ class Builder
return $this->processor->processInsertGetId($this, $sql, $values, $sequence); return $this->processor->processInsertGetId($this, $sql, $values, $sequence);
} }
/**
* Insert new records into the table using a subquery.
*
* @param array $columns
* @param \Closure|\Illuminate\Database\Query\Builder|string $query
* @return bool
*/
public function insertUsing(array $columns, $query)
{
[$sql, $bindings] = $this->createSub($query);
return $this->connection->insert(
$this->grammar->compileInsertUsing($this, $columns, $sql),
$this->cleanBindings($bindings)
);
}
/** /**
* Update a record in the database. * Update a record in the database.
* *
@ -2594,7 +2681,7 @@ class Builder
* *
* @param string $column * @param string $column
* @param float|int $amount * @param float|int $amount
* @param array $extra * @param array $extra
* @return int * @return int
*/ */
public function increment($column, $amount = 1, array $extra = []) public function increment($column, $amount = 1, array $extra = [])
@ -2615,7 +2702,7 @@ class Builder
* *
* @param string $column * @param string $column
* @param float|int $amount * @param float|int $amount
* @param array $extra * @param array $extra
* @return int * @return int
*/ */
public function decrement($column, $amount = 1, array $extra = []) public function decrement($column, $amount = 1, array $extra = [])

View file

@ -46,6 +46,10 @@ class Grammar extends BaseGrammar
*/ */
public function compileSelect(Builder $query) public function compileSelect(Builder $query)
{ {
if ($query->unions && $query->aggregate) {
return $this->compileUnionAggregate($query);
}
// If the query does not have any columns set, we'll set the columns to the // If the query does not have any columns set, we'll set the columns to the
// * character to just get all of the columns from the database. Then we // * character to just get all of the columns from the database. Then we
// can build the query and concatenate all the pieces together as one. // can build the query and concatenate all the pieces together as one.
@ -159,7 +163,9 @@ class Grammar extends BaseGrammar
$nestedJoins = is_null($join->joins) ? '' : ' '.$this->compileJoins($query, $join->joins); $nestedJoins = is_null($join->joins) ? '' : ' '.$this->compileJoins($query, $join->joins);
return trim("{$join->type} join {$table}{$nestedJoins} {$this->compileWheres($join)}"); $tableAndNestedJoins = is_null($join->joins) ? $table : '('.$table.$nestedJoins.')';
return trim("{$join->type} join {$tableAndNestedJoins} {$this->compileWheres($join)}");
})->implode(' '); })->implode(' ');
} }
@ -273,6 +279,24 @@ class Grammar extends BaseGrammar
return '1 = 1'; return '1 = 1';
} }
/**
* Compile a "where not in raw" clause.
*
* For safety, whereIntegerInRaw ensures this method is only used with integer values.
*
* @param \Illuminate\Database\Query\Builder $query
* @param array $where
* @return string
*/
protected function whereNotInRaw(Builder $query, $where)
{
if (! empty($where['values'])) {
return $this->wrap($where['column']).' not in ('.implode(', ', $where['values']).')';
}
return '1 = 1';
}
/** /**
* Compile a where in sub-select clause. * Compile a where in sub-select clause.
* *
@ -297,6 +321,24 @@ class Grammar extends BaseGrammar
return $this->wrap($where['column']).' not in ('.$this->compileSelect($where['query']).')'; return $this->wrap($where['column']).' not in ('.$this->compileSelect($where['query']).')';
} }
/**
* Compile a "where in raw" clause.
*
* For safety, whereIntegerInRaw ensures this method is only used with integer values.
*
* @param \Illuminate\Database\Query\Builder $query
* @param array $where
* @return string
*/
protected function whereInRaw(Builder $query, $where)
{
if (! empty($where['values'])) {
return $this->wrap($where['column']).' in ('.implode(', ', $where['values']).')';
}
return '0 = 1';
}
/** /**
* Compile a "where null" clause. * Compile a "where null" clause.
* *
@ -606,6 +648,8 @@ class Grammar extends BaseGrammar
// clause into SQL based on the components that make it up from builder. // clause into SQL based on the components that make it up from builder.
if ($having['type'] === 'Raw') { if ($having['type'] === 'Raw') {
return $having['boolean'].' '.$having['sql']; return $having['boolean'].' '.$having['sql'];
} elseif ($having['type'] === 'between') {
return $this->compileHavingBetween($having);
} }
return $this->compileBasicHaving($having); return $this->compileBasicHaving($having);
@ -626,6 +670,25 @@ class Grammar extends BaseGrammar
return $having['boolean'].' '.$column.' '.$having['operator'].' '.$parameter; return $having['boolean'].' '.$column.' '.$having['operator'].' '.$parameter;
} }
/**
* Compile a "between" having clause.
*
* @param array $having
* @return string
*/
protected function compileHavingBetween($having)
{
$between = $having['not'] ? 'not between' : 'between';
$column = $this->wrap($having['column']);
$min = $this->parameter(head($having['values']));
$max = $this->parameter(last($having['values']));
return $having['boolean'].' '.$column.' '.$between.' '.$min.' and '.$max;
}
/** /**
* Compile the "order by" portions of the query. * Compile the "order by" portions of the query.
* *
@ -735,6 +798,21 @@ class Grammar extends BaseGrammar
return $conjunction.$union['query']->toSql(); return $conjunction.$union['query']->toSql();
} }
/**
* Compile a union aggregate query into SQL.
*
* @param \Illuminate\Database\Query\Builder $query
* @return string
*/
protected function compileUnionAggregate(Builder $query)
{
$sql = $this->compileAggregate($query, $query->aggregate);
$query->aggregate = null;
return $sql.' from ('.$this->compileSelect($query).') as '.$this->wrapTable('temp_table');
}
/** /**
* Compile an exists statement into SQL. * Compile an exists statement into SQL.
* *
@ -791,6 +869,19 @@ class Grammar extends BaseGrammar
return $this->compileInsert($query, $values); return $this->compileInsert($query, $values);
} }
/**
* Compile an insert statement using a subquery into SQL.
*
* @param \Illuminate\Database\Query\Builder $query
* @param array $columns
* @param string $sql
* @return string
*/
public function compileInsertUsing(Builder $query, array $columns, string $sql)
{
return "insert into {$this->wrapTable($query->from)} ({$this->columnize($columns)}) $sql";
}
/** /**
* Compile an update statement into SQL. * Compile an update statement into SQL.
* *

View file

@ -43,6 +43,10 @@ class MySqlGrammar extends Grammar
*/ */
public function compileSelect(Builder $query) public function compileSelect(Builder $query)
{ {
if ($query->unions && $query->aggregate) {
return $this->compileUnionAggregate($query);
}
$sql = parent::compileSelect($query); $sql = parent::compileSelect($query);
if ($query->unions) { if ($query->unions) {

View file

@ -360,7 +360,7 @@ class PostgresGrammar extends Grammar
*/ */
public function compileTruncate(Builder $query) public function compileTruncate(Builder $query)
{ {
return ['truncate '.$this->wrapTable($query->from).' restart identity' => []]; return ['truncate '.$this->wrapTable($query->from).' restart identity cascade' => []];
} }
/** /**

View file

@ -46,6 +46,10 @@ class SQLiteGrammar extends Grammar
*/ */
public function compileSelect(Builder $query) public function compileSelect(Builder $query)
{ {
if ($query->unions && $query->aggregate) {
return $this->compileUnionAggregate($query);
}
$sql = parent::compileSelect($query); $sql = parent::compileSelect($query);
if ($query->unions) { if ($query->unions) {
@ -303,8 +307,6 @@ class SQLiteGrammar extends Grammar
$path = count($parts) > 1 ? ', '.$this->wrapJsonPath($parts[1]) : ''; $path = count($parts) > 1 ? ', '.$this->wrapJsonPath($parts[1]) : '';
$selector = 'json_extract('.$field.$path.')'; return 'json_extract('.$field.$path.')';
return $selector;
} }
} }

View file

@ -24,6 +24,8 @@ class JsonExpression extends Expression
* *
* @param mixed $value * @param mixed $value
* @return string * @return string
*
* @throws \InvalidArgumentException
*/ */
protected function getJsonBindingParameter($value) protected function getJsonBindingParameter($value)
{ {

View file

@ -10,6 +10,30 @@ use Illuminate\Database\Schema\Grammars\SQLiteGrammar as SchemaGrammar;
class SQLiteConnection extends Connection class SQLiteConnection extends Connection
{ {
/**
* Create a new database connection instance.
*
* @param \PDO|\Closure $pdo
* @param string $database
* @param string $tablePrefix
* @param array $config
* @return void
*/
public function __construct($pdo, $database = '', $tablePrefix = '', array $config = [])
{
parent::__construct($pdo, $database, $tablePrefix, $config);
$enableForeignKeyConstraints = $this->getForeignKeyConstraintsConfigurationValue();
if ($enableForeignKeyConstraints === null) {
return;
}
$enableForeignKeyConstraints
? $this->getSchemaBuilder()->enableForeignKeyConstraints()
: $this->getSchemaBuilder()->disableForeignKeyConstraints();
}
/** /**
* Get the default query grammar instance. * Get the default query grammar instance.
* *
@ -63,4 +87,14 @@ class SQLiteConnection extends Connection
{ {
return new DoctrineDriver; return new DoctrineDriver;
} }
/**
* Get the database connection foreign key constraints configuration option.
*
* @return bool|null
*/
protected function getForeignKeyConstraintsConfigurationValue()
{
return $this->getConfig('foreign_key_constraints');
}
} }

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