make tinker実行後にRedisに値をセットすると失敗する
KushibikiMashu opened this issue · 2 comments
KushibikiMashu commented
素晴らしいプロジェクトを作っていただきありがとうございます!
READMEを見てRedisにを使ってみようと思い、下記コマンドを試したところ、エラーが表示されました。
$ make tikner
docker-compose exec app php artisan tinker
Psy Shell v0.9.9 (PHP 7.3.11 — cli) by Justin Hileman
>>> Redis::set(1,2)
PHP Error: Non-static method Redis::set() cannot be called statically in Psy Shell code on line 1
下記のようにするとうまくいきました。
>>> use Illuminate\Support\Facades\Redis;
>>> Redis::set(1,2)
=> true
>>> Redis::get(1)
=> "2"
これについては、stackoverflowに解決方法が記載されていましたので、共有しますね。
(あるいは、自分のLaraveのバージョンは 6.0なので、それが関係しているかもしれません🙏)
ucan-lab commented
@KushibikiMashu ありがとうございます! wikiに追記します!
Laravel 6.0 から Redisクライアントが predis
から phpredis
に変更されました。
https://laravel.com/docs/6.x/redis
そのため Redis
のクラス名が競合を起こしてしまってます。
対処法としてはファサードクラスを明示的にインポートしてあげればokだと思います。
また、公式サイトでは Redisファサードエイリアス と PhpRedis拡張機能 を使用する場合はconfig/app.php
別の名前に変更する必要があるとの記述があります。
https://laravel.com/docs/6.x/redis#phpredis
'RedisManager' => Illuminate\Support\Facades\Redis::class,
KushibikiMashu commented
Laravel6.0から、predisではなくphpredisを使うようになったのですね。
原因と解決法をお調べ頂きありがとうございました👍