首页 > 解决方案 > 无法更新 Laravel 8.48.0 以上版本

问题描述

Composer Update 一直在完美地更新 Laravel 和我的依赖项,直到我尝试更新到 8.49.0。当我现在运行 composer update 时,我得到:

witt@Witts-MPB ag % composer update
Loading composer repositories with package information
Updating dependencies                                 
Lock file operations: 0 installs, 23 updates, 0 removals
  - Upgrading facade/ignition (2.10.2 => 2.11.0)
  - Upgrading fakerphp/faker (v1.14.1 => v1.15.0)
  - Upgrading filp/whoops (2.13.0 => 2.14.0)
  - Upgrading guzzlehttp/psr7 (1.8.2 => 2.0.0)
  - Downgrading intervention/image (2.5.1 => 2.2.2)
  - Upgrading laminas/laminas-escaper (2.7.0 => 2.8.0)
  - Upgrading laminas/laminas-zendframework-bridge (1.2.0 => 1.3.0)
  - Upgrading laravel/framework (v8.48.0 => v8.50.0)
  - Upgrading league/commonmark (1.6.4 => 1.6.5)
  - Upgrading league/flysystem (1.1.3 => 1.1.4)
  - Upgrading monolog/monolog (2.2.0 => 2.3.0)
  - Upgrading myclabs/php-enum (1.8.0 => 1.8.3)
  - Upgrading nesbot/carbon (2.49.0 => 2.50.0)
  - Upgrading nikic/php-parser (v4.10.5 => v4.11.0)
  - Upgrading phpunit/phpunit (9.5.5 => 9.5.6)
  - Upgrading spatie/dropbox-api (1.19.0 => 1.19.1)
  - Upgrading stripe/stripe-php (v7.85.0 => v7.88.0)
  - Upgrading symfony/error-handler (v5.3.0 => v5.3.3)
  - Upgrading symfony/http-foundation (v5.3.2 => v5.3.3)
  - Upgrading symfony/http-kernel (v5.3.2 => v5.3.3)
  - Upgrading symfony/string (v5.3.2 => v5.3.3)
  - Upgrading symfony/translation (v5.3.2 => v5.3.3)
  - Upgrading symfony/var-dumper (v5.3.2 => v5.3.3)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 0 installs, 23 updates, 0 removals
  - Downloading laravel/framework (v8.50.0)
  - Downloading facade/ignition (2.11.0)
  - Downloading stripe/stripe-php (v7.88.0)
  - Downloading filp/whoops (2.14.0)
  - Upgrading symfony/var-dumper (v5.3.2 => v5.3.3): Extracting archive
  - Upgrading symfony/string (v5.3.2 => v5.3.3): Extracting archive
  - Upgrading monolog/monolog (2.2.0 => 2.3.0): Extracting archive
  - Upgrading symfony/http-foundation (v5.3.2 => v5.3.3): Extracting archive
  - Upgrading symfony/error-handler (v5.3.0 => v5.3.3): Extracting archive
  - Upgrading symfony/http-kernel (v5.3.2 => v5.3.3): Extracting archive
  - Upgrading symfony/translation (v5.3.2 => v5.3.3): Extracting archive
  - Upgrading nesbot/carbon (2.49.0 => 2.50.0): Extracting archive
  - Upgrading league/flysystem (1.1.3 => 1.1.4): Extracting archive
  - Upgrading league/commonmark (1.6.4 => 1.6.5): Extracting archive
  - Upgrading laravel/framework (v8.48.0 => v8.50.0): Extracting archive
  - Upgrading facade/ignition (2.10.2 => 2.11.0): Extracting archive
  - Upgrading fakerphp/faker (v1.14.1 => v1.15.0): Extracting archive
  - Upgrading guzzlehttp/psr7 (1.8.2 => 2.0.0): Extracting archive
  - Upgrading laminas/laminas-zendframework-bridge (1.2.0 => 1.3.0): Extracting archive
  - Upgrading stripe/stripe-php (v7.85.0 => v7.88.0): Extracting archive
  - Upgrading nikic/php-parser (v4.10.5 => v4.11.0): Extracting archive
  - Upgrading myclabs/php-enum (1.8.0 => 1.8.3): Extracting archive
  - Upgrading filp/whoops (2.13.0 => 2.14.0): Extracting archive
  - Upgrading laminas/laminas-escaper (2.7.0 => 2.8.0): Extracting archive
  - Upgrading phpunit/phpunit (9.5.5 => 9.5.6): Extracting archive
  - Upgrading spatie/dropbox-api (1.19.0 => 1.19.1): Extracting archive
  - Downgrading intervention/image (2.5.1 => 2.2.2): Extracting archive
Generating optimized autoload files
composer/package-versions-deprecated: Generating version class...
composer/package-versions-deprecated: ...done generating version class
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover

   Error 

  Call to undefined method Illuminate\Foundation\Application::share()

  at vendor/intervention/image/src/Intervention/Image/ImageServiceProviderLaravel5.php:51
     47▕             'image'
     48▕         );
     49▕ 
     50▕         // create image
  ➜  51▕         $app['image'] = $app->share(function ($app) {
     52▕             return new ImageManager($app['config']->get('image'));
     53▕         });
     54▕ 
     55▕         $app->alias('image', 'Intervention\Image\ImageManager');

      +8 vendor frames 
  9   artisan:35
      Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
Script @php artisan package:discover handling the post-autoload-dump event returned with error code 1

我注意到的第一件事是干预/图像包正在降级(见上面的输出)。

我尝试直接修改 composer.lock 以将该包保持在 2.5.1 版本,但这并没有解决错误。

我正在运行 PHP 7.4 版。

有没有其他人遇到过这个问题?关于如何解决它的任何建议?

标签: laravelcomposer-php

解决方案


这个问题是因为 Laravel 8.49.0 将 guzzlehttp 从 1.8.2 更新到 2.0.0,并且干预/图像与该版本不兼容。

有一个干预/图像补丁来解决这个问题,在这个线程中提到。

但是,该补丁目前位于开发分支上。

要解决这个问题:

  1. 运行作曲家更新,收到上述错误

  2. 修改composer.json,添加:

    “最低稳定性”:“开发”,

    “首选稳定”:真

如有必要,这允许包处于开发稳定性级别。

  1. 运行作曲家需要干预/图像:“master”

推荐阅读