diff --git a/composer.json b/composer.json index 3bbc1211..4e23657d 100755 --- a/composer.json +++ b/composer.json @@ -15,25 +15,25 @@ "filp/whoops": "~2.11", "ircmaxell/password-compat": "~1.0", "laravel/serializable-closure": "^1.2", - "monolog/monolog": "^2.10", - "nesbot/carbon": "^2.71", + "monolog/monolog": "^3.10", + "nesbot/carbon": "^3.8.4", "opis/closure": "~3.6", "pda/pheanstalk": "~4.0", "predis/predis": "^2.4.1", - "symfony/browser-kit": "~6.4", - "symfony/console": "~6.4", - "symfony/css-selector": "~6.4", - "symfony/dom-crawler": "~6.4", - "symfony/error-handler": "~6.4", - "symfony/event-dispatcher": "~6.4", - "symfony/finder": "~6.4", - "symfony/http-foundation": "~6.4", - "symfony/http-kernel": "~6.4", - "symfony/mailer": "^6.4", - "symfony/mime": "~6.4", - "symfony/process": "~6.4", - "symfony/routing": "~6.4", - "symfony/translation": "~6.4", + "symfony/browser-kit": "^7.4", + "symfony/console": "^7.4", + "symfony/css-selector": "^7.4", + "symfony/dom-crawler": "^7.4", + "symfony/error-handler": "^7.4", + "symfony/event-dispatcher": "^7.4", + "symfony/finder": "^7.4", + "symfony/http-foundation": "^7.4", + "symfony/http-kernel": "^7.4", + "symfony/mailer": "^7.4", + "symfony/mime": "^7.4", + "symfony/process": "^7.4", + "symfony/routing": "^7.4", + "symfony/translation": "^7.4", "voku/portable-ascii": "2.0.3" }, "replace": { @@ -71,7 +71,7 @@ "phpspec/prophecy-phpunit": "~2.0", "phpunit/phpunit": "~9.6", "rector/rector": "^2.1", - "symfony/var-dumper": "~6.4" + "symfony/var-dumper": "^7.4" }, "autoload": { "classmap": [ diff --git a/src/Illuminate/Cache/Repository.php b/src/Illuminate/Cache/Repository.php index 5a0518d1..5fefacfa 100755 --- a/src/Illuminate/Cache/Repository.php +++ b/src/Illuminate/Cache/Repository.php @@ -260,7 +260,7 @@ protected function getMinutes($duration) $duration = Carbon::now()->add($duration); } - $fromNow = Carbon::instance($duration)->diffInMinutes(); + $fromNow = (int) Carbon::now()->diffInMinutes($duration); return $fromNow > 0 ? $fromNow : null; } diff --git a/src/Illuminate/Cache/TaggedCache.php b/src/Illuminate/Cache/TaggedCache.php index bddccdf5..29aaad7a 100644 --- a/src/Illuminate/Cache/TaggedCache.php +++ b/src/Illuminate/Cache/TaggedCache.php @@ -237,7 +237,7 @@ protected function getMinutes($duration) $duration = Carbon::now()->add($duration); } - $fromNow = Carbon::instance($duration)->diffInMinutes(); + $fromNow = (int) Carbon::now()->diffInMinutes($duration); return $fromNow > 0 ? $fromNow : null; } diff --git a/src/Illuminate/Console/Application.php b/src/Illuminate/Console/Application.php index 1de25673..23cc4cd0 100755 --- a/src/Illuminate/Console/Application.php +++ b/src/Illuminate/Console/Application.php @@ -45,8 +45,9 @@ public static function make($app) $console = with($console = new static('Laravel Framework', $app::VERSION)) ->setLaravel($app) - ->setExceptionHandler($app['exception']) - ->setAutoExit(false); + ->setExceptionHandler($app['exception']); + + $console->setAutoExit(false); $app->instance('artisan', $console); @@ -108,7 +109,7 @@ public function call($command, array $parameters = array(), ?OutputInterface $ou * @return \Symfony\Component\Console\Command\Command */ #[\Override] - public function add(SymfonyCommand $command) + public function add(SymfonyCommand $command): ?SymfonyCommand { if ($command instanceof Command) { @@ -229,18 +230,4 @@ public function setLaravel($laravel) return $this; } - /** - * Set whether the Console app should auto-exit when done. - * - * @param bool $boolean - * @return $this - */ - #[\Override] - public function setAutoExit($boolean) - { - parent::setAutoExit($boolean); - - return $this; - } - } diff --git a/src/Illuminate/Console/Command.php b/src/Illuminate/Console/Command.php index feba65d2..c81337b4 100755 --- a/src/Illuminate/Console/Command.php +++ b/src/Illuminate/Console/Command.php @@ -108,7 +108,7 @@ public function run(InputInterface $input, OutputInterface $output): int * @param \Symfony\Component\Console\Output\OutputInterface $output * @return mixed */ - protected function execute(InputInterface $input, OutputInterface $output): mixed + protected function execute(InputInterface $input, OutputInterface $output): int { // Prefer handle() (L13 idiom); fire() is the L4.2 fallback that dies at the Console swap. // ponytail: fork mirror of stock Command's handle-or-__invoke resolution; app-side is grep-guarded. diff --git a/src/Illuminate/Foundation/Application.php b/src/Illuminate/Foundation/Application.php index 72448dc1..e461fe62 100755 --- a/src/Illuminate/Foundation/Application.php +++ b/src/Illuminate/Foundation/Application.php @@ -802,7 +802,7 @@ public function dispatch(Request $request) * @param \Symfony\Component\HttpFoundation\Response $response * @return void */ - public function terminate(SymfonyRequest $request, SymfonyResponse $response) + public function terminate(SymfonyRequest $request, SymfonyResponse $response): void { $this->callFinishCallbacks($request, $response); diff --git a/src/Illuminate/Foundation/Http/StackedHttpKernel.php b/src/Illuminate/Foundation/Http/StackedHttpKernel.php index b010093e..1849bb6b 100644 --- a/src/Illuminate/Foundation/Http/StackedHttpKernel.php +++ b/src/Illuminate/Foundation/Http/StackedHttpKernel.php @@ -23,7 +23,7 @@ public function handle(Request $request, $type = HttpKernelInterface::MAIN_REQUE return $this->app->handle($request, $type, $catch); } - public function terminate(Request $request, Response $response) + public function terminate(Request $request, Response $response): void { $prevKernel = null; diff --git a/src/Illuminate/Http/Request.php b/src/Illuminate/Http/Request.php index c190e75e..14947e00 100755 --- a/src/Illuminate/Http/Request.php +++ b/src/Illuminate/Http/Request.php @@ -591,7 +591,14 @@ public static function createFromBase(SymfonyRequest $request) $request->content = $content; - $request->request = $request->getInputSource(); + if ($request->isJson()) + { + $request->request->replace($request->json()->all()); + } + else + { + $request->request = $request->getInputSource(); + } return $request; } diff --git a/src/Illuminate/Log/LogServiceProvider.php b/src/Illuminate/Log/LogServiceProvider.php index dba98093..3292aa7e 100755 --- a/src/Illuminate/Log/LogServiceProvider.php +++ b/src/Illuminate/Log/LogServiceProvider.php @@ -1,6 +1,6 @@ app['env']), $this->app['events'] + new MonologLogger($this->app['env']), $this->app['events'] ); // Once we have an instance of the logger we'll bind it as an instance into diff --git a/src/Illuminate/Mail/MailServiceProvider.php b/src/Illuminate/Mail/MailServiceProvider.php index 17f7958f..47053d38 100755 --- a/src/Illuminate/Mail/MailServiceProvider.php +++ b/src/Illuminate/Mail/MailServiceProvider.php @@ -129,7 +129,7 @@ protected function registerSmtpTransport(array $config): void if (! $scheme) { $scheme = ! empty($config['encryption']) && $config['encryption'] === 'tls' ? (($config['port'] == 465) ? 'smtps' : 'smtp') - : ''; + : 'smtp'; } /** @var EsmtpTransport $transport */ @@ -241,7 +241,7 @@ protected function registerLogTransport(array $config): void * * @return array */ - #[\Override] + #[\Override] public function provides(): array { return ['mailer', 'symfony.transport']; diff --git a/tests/Foundation/FoundationArtisanTest.php b/tests/Foundation/FoundationArtisanTest.php index 01147eee..573e377b 100755 --- a/tests/Foundation/FoundationArtisanTest.php +++ b/tests/Foundation/FoundationArtisanTest.php @@ -25,16 +25,18 @@ public function testArtisanIsCalledWithProperArguments(): void $artisan->expects($this->once())->method('getArtisan')->willReturn( $console = m::mock('Illuminate\Console\Application[find]') ); - $console->shouldReceive('find')->once()->with('foo')->andReturn($command = m::mock('StdClass')); + $console->shouldReceive('find')->once()->with('foo')->andReturn($command = m::mock(\Symfony\Component\Console\Command\Command::class)); $command->shouldReceive('run')->once()->with(m::type(ArrayInput::class), m::type( NullOutput::class - ))->andReturnUsing(function($input, $output) + ))->andReturnUsing(function($input, $output) use (&$captured) { - return $input; + $captured = $input; + + return 0; }); - $input = $artisan->call('foo', ['--bar' => 'baz']); - $this->assertEquals('baz', $input->getParameterOption('--bar')); + $artisan->call('foo', ['--bar' => 'baz']); + $this->assertEquals('baz', $captured->getParameterOption('--bar')); } }