我尝试将 laravel 5.3
从 5.2
升级,但在执行 php artisan clear-compiled
命令时出现以下错误:
类 App\Providers\BroadcastServiceProvider 包含1个抽象方法,因此必须声明为抽象类或实现剩余方法(Illuminate\Support\ServiceProvider::register)。
然而,在我的本地环境中升级时没有遇到这样的问题。
config/broadcasting.php
的内容如下:
<?php
return [
'default' => env('BROADCAST_DRIVER', 'log'),
'connections' => [
'pusher' => [
'driver' => 'pusher',
'key' => env('PUSHER_KEY'),
'secret' => env('PUSHER_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
],
'redis' => [
'driver' => 'redis',
'connection' => 'default',
],
'log' => [
'driver' => 'log',
],
],
];
app/Providers/BroadcastServiceProvider.php
的作用如下:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Broadcast;
class BroadcastServiceProvider extends ServiceProvider
{
public function boot()
{
Broadcast::routes();
Broadcast::channel('App.User.{userId}', function ($user, $userId) {
return (int) $user->id === (int) $userId;
});
}
}
而 .env
文件则是这样的:
CACHE_DRIVER=file
SESSION_DRIVER=file
#BROADCAST_DRIVER=pusher
PUSHER_KEY=someKey
PUSHER_SECRET=SomeSecrete
PUSHER_APP_ID=SomeId
我尝试将默认的广播驱动设置为“log”,但似乎没有起作用。
无论我运行什么命令,例如:
php artisan cache:clear
、php artisan config:clear
、php artisan view:clear
或 php artisan clear-compiled
,我都会遇到同样的错误。我还尝试使用
composer dump-autoload
,它可以正常工作,但如果我再次运行php artisan clear-compiled
,还是会遇到同样的错误。请帮助我。