Laravel 5.2:找不到“Intervention\Image\ImageServiceProvider”类

5

我正在尝试将Intervention Image集成到我的项目中。我已经按照指南,使用了大量其他教程,但无论我做什么,我都会收到相同的错误:

Class 'Intervention\Image\ImageServiceProvider' not found

它已经包含在我的composer.json文件中:

{
    "require": {
        "laravel/envoy": "~1.0",
        "laravel/installer": "^1.3",
        "intervention/image": "^2.3"
    }
}

我已经安装了php-gd,我已经包含了它

Intervention\Image\ImageServiceProvider::class

'Image' => Intervention\Image\Facades\Image::class

在我的config\app.php文件中,但我一直收到令人烦恼的错误消息。 也许值得一提的是,我正在使用Linux Mint操作系统,并且正在使用Homestead虚拟机。是的,我在Homestead版本的Composer中包含了这些东西,而不是在我的主PC的composer中。当使用时。
PHP artisan --version

它返回:

Laravel Framework version 5.2.43

我在虚拟机上运行了composer update,但问题没有解决。我尝试从app.php中删除这些行,然后运行composer update,再将这些行添加回去并运行composer update,但都没有起作用。

我在config\app.php中包含的位置是否重要?现在,别名在列表中,提供者在Package Service Providers下面。

以下是完整的错误消息:

Whoops, looks like something went wrong.

1/1
FatalThrowableError in ProviderRepository.php line 146:
Class 'Intervention\Image\ImageServiceProvider' not found
in ProviderRepository.php line 146
at ProviderRepository->createProvider('Intervention\Image\ImageServiceProvider') in ProviderRepository.php line 114
at ProviderRepository->compileManifest(array('Illuminate\Auth\AuthServiceProvider', 'Illuminate\Broadcasting\BroadcastServiceProvider', 'Illuminate\Bus\BusServiceProvider', 'Illuminate\Cache\CacheServiceProvider', 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider', 'Illuminate\Cookie\CookieServiceProvider', 'Illuminate\Database\DatabaseServiceProvider', 'Illuminate\Encryption\EncryptionServiceProvider', 'Illuminate\Filesystem\FilesystemServiceProvider', 'Illuminate\Foundation\Providers\FoundationServiceProvider', 'Illuminate\Hashing\HashServiceProvider', 'Illuminate\Mail\MailServiceProvider', 'Illuminate\Pagination\PaginationServiceProvider', 'Illuminate\Pipeline\PipelineServiceProvider', 'Illuminate\Queue\QueueServiceProvider', 'Illuminate\Redis\RedisServiceProvider', 'Illuminate\Auth\Passwords\PasswordResetServiceProvider', 'Illuminate\Session\SessionServiceProvider', 'Illuminate\Translation\TranslationServiceProvider', 'Illuminate\Validation\ValidationServiceProvider', 'Illuminate\View\ViewServiceProvider', 'Intervention\Image\ImageServiceProvider', 'App\Providers\AppServiceProvider', 'App\Providers\AuthServiceProvider', 'App\Providers\EventServiceProvider', 'App\Providers\RouteServiceProvider')) in ProviderRepository.php line 60
at ProviderRepository->load(array('Illuminate\Auth\AuthServiceProvider', 'Illuminate\Broadcasting\BroadcastServiceProvider', 'Illuminate\Bus\BusServiceProvider', 'Illuminate\Cache\CacheServiceProvider', 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider', 'Illuminate\Cookie\CookieServiceProvider', 'Illuminate\Database\DatabaseServiceProvider', 'Illuminate\Encryption\EncryptionServiceProvider', 'Illuminate\Filesystem\FilesystemServiceProvider', 'Illuminate\Foundation\Providers\FoundationServiceProvider', 'Illuminate\Hashing\HashServiceProvider', 'Illuminate\Mail\MailServiceProvider', 'Illuminate\Pagination\PaginationServiceProvider', 'Illuminate\Pipeline\PipelineServiceProvider', 'Illuminate\Queue\QueueServiceProvider', 'Illuminate\Redis\RedisServiceProvider', 'Illuminate\Auth\Passwords\PasswordResetServiceProvider', 'Illuminate\Session\SessionServiceProvider', 'Illuminate\Translation\TranslationServiceProvider', 'Illuminate\Validation\ValidationServiceProvider', 'Illuminate\View\ViewServiceProvider', 'Intervention\Image\ImageServiceProvider', 'App\Providers\AppServiceProvider', 'App\Providers\AuthServiceProvider', 'App\Providers\EventServiceProvider', 'App\Providers\RouteServiceProvider')) in Application.php line 530
at Application->registerConfiguredProviders() in RegisterProviders.php line 17
at RegisterProviders->bootstrap(object(Application)) in Application.php line 203
at Application->bootstrapWith(array('Illuminate\Foundation\Bootstrap\DetectEnvironment', 'Illuminate\Foundation\Bootstrap\LoadConfiguration', 'Illuminate\Foundation\Bootstrap\ConfigureLogging', 'Illuminate\Foundation\Bootstrap\HandleExceptions', 'Illuminate\Foundation\Bootstrap\RegisterFacades', 'Illuminate\Foundation\Bootstrap\RegisterProviders', 'Illuminate\Foundation\Bootstrap\BootProviders')) in Kernel.php line 232
at Kernel->bootstrap() in Kernel.php line 127
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 99
at Kernel->handle(object(Request)) in index.php line 53

你运行了 composer update 吗? - ntzm
是的,我会把它添加到信息中。 - Somentus
你是否按照这里的指南 http://image.intervention.io/getting_started/installation 进行操作以确保正确? - Maytham Fahmi
是的,我从头到尾按照那个指南一行一行地跟着做了。 - Somentus
你确定在使用该类的 Use 语句中,命名空间是否正确吗? - Roger Creasy
显示剩余3条评论
3个回答

2
我曾遇到相同的问题,后来发现我没有在项目根目录下运行此命令$ php composer.phar require intervention/image。我在项目根目录下运行了这个命令,一切正常。
例如:Itses-MacBook-Pro:testproject bigtank$ composer require intervention/image 按照这样的方式运行它,就可以解决问题了。
祝好运。

运行 composer require intervention/image 对我有效。 - Umair

0

config/app.php中删除facade和service provider,然后运行composer dumpauto(如果不起作用,则运行composer dumpauto -o)。之后再将facade和service provider添加回config/app.php


使用 composer dumpauto 命令执行后,终端显示 "Generating autoload files",重新加载网页后错误依然存在。再使用 composer dumpauto -o 命令,终端输出 "Generating optimized autoload files",但仍无法解决错误问题。 - Somentus
尝试手动删除bootstrap/cache目录中的所有php文件,然后再次运行composer dumpauto - Alexey Mezenin
好的,安装包过程中有出现任何错误吗?在项目目录中是否有\vendor\intervention\image\src\Intervention\Image\ImageServiceProvider.php文件? - Alexey Mezenin
好的。请再次从配置文件中删除 Facade 和 Service Provider,并运行 composer require intervention/image 命令。这应该会安装 Intervention(查看错误和消息)。之后运行 composer dumpauto -o 命令,并将 Service Provider 和 Facade 再次添加到配置文件中。 - Alexey Mezenin
在编辑了 .json 并运行 composer update 后,它显示了“删除 intervention/image (2.3.7)”(以及通常的行)。当我运行 composer require intervention/image 时,它显示了 - Installing intervention/image (2.3.7) Loading from cache intervention/image suggests installing ext-imagick (to use Imagick based image processing.) intervention/image suggests installing intervention/imagecache (Caching extension for the Intervention Image library)(以及通常的东西)。删除 composer.lock 并运行 composer update 也没有效果。 - Somentus
显示剩余6条评论

0

请确保您仔细遵循了安装指南。

你需要先运行:

composer require intervention/image

在安装完此包后(即运行composer require之后),而不是之前,应修改config.app.php。


我应该在config/app.php文件中修改什么? - Umair

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接