私はちょっとした騒ぎです。私が何かを明らかにしていない場合、私を許してください。Laravel 5.4アップグレード後のBroadcastServiceProvider.phpおよびbroadcaster.phpの問題
私は(プッシャー用)放送チャンネルを設定するために私のアプリでこのクラスを持っている:
<?php
namespace App\Providers;
use App\Models\Thread;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Broadcast;
class BroadcastServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Broadcast::routes(['middleware' => ['api', 'jwt.auth']]);
/*
* Authenticate the user's personal channel...
*/
Broadcast::channel('users.*.threads', function ($user, $userId) {
return $user->obfuscated_id == $userId;
});
Broadcast::channel('threads.*', function ($user, $threadId) {
return $user->can('participate', Thread::findByObfuscation($threadId));
});
Broadcast::channel('notifications.*', function ($user, $notifiableId) {
return $user->obfuscated_id == $notifiableId;
});
Broadcast::channel('messages.*', function ($user, $userId) {
return $user->obfuscated_id == $userId;
});
}
}
これはLaravel 5.3上で正常に動作しましたが、5.4(Laravelシフトを使用して)アップグレード後、私が始めましたエラー取得:
$parameters = $this->extractAuthParameters($pattern, $channel, $callback);
01:
<!-- language: lang-none -->
Symfony\Component\Debug\Exception\FatalThrowableError: Type error: Too few arguments to function App\Providers\BroadcastServiceProvider::App\Providers\{closure}(), 1 passed in /home/vagrant/Development/Peeps/api/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php on line 68 and exactly 2 expected in /home/vagrant/Development/Peeps/api/app/Providers/BroadcastServiceProvider.php:35
がBroadcaster.phpファイルの以前のバージョンと新しいバージョンを比較し、いくつかの変更は、この行は、ほとんどの疑いがあります
これは余分なパラメータ$ callbackを渡します。
私は、スタックに沿ってコールバック関数が渡される方法と関係があり、BroadcastServiceProvider.phpを書くより良い方法があれば、更新されたIlluminateクラスにもっと親しみが持てるだろうと思っています。
大変助かりました!