Oleksii
Всем привет,кто то сталкивался с такой ошибкой?
Call to undefined method Illuminate\Support\Facades\Redis::connect()
predis установлен,версия ^1.1
Maksim (Ellrion)
Oleksii
это пакет его вызывает RedisCache от Botman
SarcasmIO
а в .env cache driver какой?
SarcasmIO
пробовал dump-autoload/синхронизацию проекта / etc
Oleksii
CACHE_DRIVER=redis
SarcasmIO
странно, у меня с ботманом и редиской никаких проблем не возникло, а что в сервис провайдере?
Oleksii
фишка в том что вчера все работало,и измениний 0)
Oleksii
неа(
Maksim (Ellrion)
неа(
серьезно? ты уверен что у фасада надо это вызывать?
Oleksii
я ж в пакет не лезу,просто вызываю конструктор у BotMan\BotMan\Cache\RedisCache
Maksim (Ellrion)
нахера вообще в ларе сторонний пакет редис кэш? лара из коробки это делает
Александр
Как правильно сделать драйвера для своего пакета? Чтобы лара их сама как-то находила по названию класса. Магию не хочу использовать
Oleksii
это для Botman,ему нужен кеш для хранения инфы о конверсейшинах
Maksim (Ellrion)
это для Botman,ему нужен кеш для хранения инфы о конверсейшинах
короче как то глючит автолоудинг классов видимо и ларовский фасад перебивает класс \Redis
возможно класса не существует потому что ты не верно установил редис. попробуй в отдельном пхп файле вызвать
var_dump(new Redis())
если будет ошибка то уже думай
Oleksii
»> var_dump(new Redis());
object(Illuminate\Support\Facades\Redis)#1427 (0) {
}
=> null
Maksim (Ellrion)
Maksim (Ellrion)
и запусти его из консоли
SarcasmIO
сделай composer update/install
SarcasmIO
и php artisan optimize или как там
SarcasmIO
я регулярно ловил такую ошибку, потому что переключался в проекте между ветками где у меня есть бот и где нету
SarcasmIO
забывав повторить продцедуру синхронизации etc
Oleksii
$redis = new Redis('redis',6379);
=> Illuminate\Support\Facades\Redis {#1430}
»> $redis->connect();
PHP Error: Call to undefined method Illuminate\Support\Facades\Redis::connect() on line 1
Oleksii
если в тинкере пытаюсь вызвать коннект
SarcasmIO
а зачем ты делаешь коннект?
Maksim (Ellrion)
Oleksii
его пакет делает,не я
SarcasmIO
причем я регал через свой сервис провайдер
SarcasmIO
и указывал вместо LaravelCache
SarcasmIO
сразу Redis
Maksim (Ellrion)
Oleksii
dumpautoload +
ты сделал тест с отдельным файлом в тинкере ж пробывал,таже ошибка
Maksim (Ellrion)
Maksim (Ellrion)
вот прям в корне создай 1.php и в нем всего 1 строка
SarcasmIO
а сам фасад работает где-либо в проекте?
попробуй где-то засетить что то в редиску
Maksim (Ellrion)
и запусти php 1.php
SarcasmIO
причем я регал через свой сервис провайдер
public function register(): void
{
$this->app->singleton('botman', function ($app) {
$storage = new FileStorage(storage_path('botman'));
DriverManager::loadDriver(FacebookDriver::class);
return BotManFactory::create(config('services.botman', []), new RedisCache(), $app->make('request'),
$storage);
});
}
SarcasmIO
Oleksii
PHP Fatal error: Uncaught Error: Call to undefined method Illuminate\Support\Facades\Redis::connect() in /home/theardent/www/OSR2/backend/1.php:7
Stack trace:
#0 {main}
thrown in /home/theardent/www/OSR2/backend/1.php on line 7
Maksim (Ellrion)
Oleksii
Oleksii
<?php
require_once('vendor/autoload.php');
$redis = new Illuminate\Support\Facades\Redis();
$redis->connect('redis',6379);
SarcasmIO
😁😁
Maksim (Ellrion)
хХ ты гонишь. на фига ты фасад создал?!
Юрий
лол
Эмин
+1
SarcasmIO
ору
Os
😂😂
Os
Ну чел не знает, что есть фасад)
Os
Че вы
Maksim (Ellrion)
сказано же https://t.me/laravel_pro/97506 var_dump(new Redis())
Maksim (Ellrion)
более того автолоад убери
Maksim (Ellrion)
всего 1 строчка нужна для теста
Oleksii
если просто var_dump(new Redis()) то получаю Uncaught Error: Class 'Redis' not found
Oleksii
я со вчера ничего не трогал,все работало
Эмин
в проекте то вы ничего не меняли, но вот окружение явно изменилось
Эмин
https://stackoverflow.com/questions/11424547/php-redis-error
SarcasmIO
а sudo systemctl status redis.service ?
Oleksii
SarcasmIO
exec bin bash ?
Oleksii
и сам redis работает,я через fastoredis к нему подключаюсь,все ок
Oleksii
Failed to get D-Bus connection: Unknown error -1
Oleksii
SarcasmIO
Oleksii
Call to undefined method
Maksim (Ellrion)
ошибка явно связана или с автолоудинго или с отсутствием класса Redis.
SarcasmIO
зайди в баш и выполни, sudo service status redis
SarcasmIO
или как там у тя в 16-й бубунте
SarcasmIO
или чо у тя в докере
Maksim (Ellrion)
потому как в пакете вызов \Redis который клиент, но его мб нет и дергается фасад а у сервиса под фасадом нет метода
SarcasmIO
Эмин
выполните команду php -m | grep redis
SarcasmIO
именно скрин, интересно как оно подсвечивает пакет predis