2015-09-14 37 views
1

我添加Laravel5类“Laravel 社会名流 SocialiteServiceProvider”未找到

"laravel/socialite": "~2.0" 

作曲家的依赖,和我已经添加了服务提供商在我config/app.php就这样

'providers' => [ 
    // more providers 
    'Laravel\Socialite\SocialiteServiceProvider' 
] 

然后,当我访问我的任何应用程序路线时,我有这个Class 'Laravel\Socialite\SocialiteServiceProvider' not found异常。

展望我的vendor/composer/autoload_psr4.php我看到那里没有社交网站映射 - 我不止一次运行composer updatecomposer dump-autoload

怎么了?

+1

我可以说在代码中没有错误 - 我试过再次删除引用,再次运行更新,然后dump-autolo然后重新启用提供程序,然后再次转储自动加载并运行。 – brazorf

回答

2

在将提供程序添加到文件之前,您是否运行了composer命令?如果不是,这有时会导致问题。

我建议从配置文件和composer.json中删除引用,然后运行composer request laravel/socialite 2.0。此外,只要fyi,在提供商列表中使用::class表示法可以帮助您使用像phpstorm这样的完整IDE,因为它会在无法找到该类时突出显示。

+0

提问者不会说他正在运行的PHP版本。 ':: class'仅在> = 5.5中可用。希望他们至少在运行,但我知道我们的大部分服务器仍在Debian Wheezy上,并且仍然在5.4上。 –

+0

我知道,这个假设是他们会知道的。但是,如果他们正在使用适当的IDE,如果他们试图使用':: class',则会说当前版本的PHP不支持它。 – ollieread

+0

不一定。你必须在PhpStorm的设置中设置你正在使用的版本,否则我相信它默认为系统上安装的版本(我的OS X已经安装了5.5.27,但我实际上是通过Vagrant为5.4.39开发的)。无论如何,只是想确保有关于此的说明,以便其他人在没有意识到的情况下不会使用它 –

1

首先删除行

Laravel\Socialite\SocialiteServiceProvider::class, 

并且还

'Socialite' => Laravel\Socialite\Facades\Socialite::class, 
从CONFIG \ app.php

,并更新通过添加 "laravel/socialite": "^2.0"和之后,在配置\添加这两个线作曲家app.php会起作用,因为当你在更新作曲者之前添加这些行时,它会转到供应商文件夹并搜索SocialiteProvider,但它尚不可用,所以当你首先更新作曲家,然后添加这些行时,它将工作正常

0

我已删除从配置文件和composer.json基准,然后跑作曲家要求laravel/socialite 2.0代替作曲家请求laravel/socialite 2.0.

然后将以下行添加到配置文件

Laravel\Socialite\SocialiteServiceProvider::class, 

'Socialite' => Laravel\Socialite\Facades\Socialite::class,