__developer__
@__developer__

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Laravel Intervention Image が使えない

Laravelに

composer require intervention/image


Intervention Image
をインストール後、

config/app.php
    'providers' => ServiceProvider::defaultProviders()->merge([
        ...
        Intervention\Image\ImageServiceProvider::class,
    ])->toArray(),

    'aliases' => Facade::defaultAliases()->merge([
        ...
        'Image' => Intervention\Image\Facades\Image::class,
    ])->toArray(),

を追加しましたが、

Class "Intervention\Image\ImageServiceProvider" not found

というエラーが発生し使用できませんでした。
どこを修正すれば使用できるようになりますでしょうか。

Laravelのバージョンは
Laravel Framework 10.38.2 です。

よろしくお願いします。

0

3Answer

何かの記事を参考にされたのだと思いますが、Intervention Imageのバージョン3からはLaravelのサービスプロバイダーは削除されたようです。

The service providers for the Laravel were removed to avoid a dependency to the framework and to highlight Intervention Image rather framework agnostic, which it always was.

まずはcomposer.lockファイルなどからインストールされているバージョンを確認することです。

代替案は次のように提示されています。

Alternatives are to create your own provider or to do without it altogether.

そのまま訳しただけですが、以前にあったサービスプロバイダーに代わるものを自作するか、サービスプロバイダーを使用せずにそのままライブラリを使うことです。

1Like

こんにちは。

下記のように修正するとうまくいきましたよ。

config/app.php

    'providers' => ServiceProvider::defaultProviders()->merge([
        ...
        Intervention\Image\ImageServiceProvider::class,//←コメントアウトまたは削除
    ])->toArray(),

    'aliases' => Facade::defaultAliases()->merge([
        ...
        'Image' => Intervention\Image\Facades\Image::class,//←コメントアウトまたは削除
    ])->toArray(),

Laravel ver.10以降は上記の記述は不要と思います。

0Like

Your answer might help someone💌