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)
Maksim (Ellrion)
это пакет его вызывает RedisCache от Botman
ну так тогда мб ты не у того класса метод вызываешь?
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
Maksim (Ellrion)
сделай composer update/install
тогда уж просто composer dumpa
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
причем я регал через свой сервис провайдер
SarcasmIO
и указывал вместо LaravelCache
SarcasmIO
сразу Redis
Oleksii
dumpautoload + ты сделал тест с отдельным файлом в тинкере ж пробывал,таже ошибка
Maksim (Ellrion)
вот прям в корне создай 1.php и в нем всего 1 строка
SarcasmIO
а сам фасад работает где-либо в проекте? попробуй где-то засетить что то в редиску
Maksim (Ellrion)
и запусти php 1.php
Oleksii
и запусти 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); }); }
Maksim (Ellrion)
сделал,таже ошибка
не ври. не может быть той же ошибки
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
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
а sudo systemctl status redis.service ?
ща я ребилд делаю docker`a
Oleksii
а sudo systemctl status redis.service ?
так я ж не могу так проверить в докере
SarcasmIO
exec bin bash ?
Oleksii
и сам redis работает,я через fastoredis к нему подключаюсь,все ок
SarcasmIO
и сам redis работает,я через fastoredis к нему подключаюсь,все ок
мб после того как ты подключился, что то закрыло соединение с редиской
Oleksii
Failed to get D-Bus connection: Unknown error -1
Oleksii
Call to undefined method
Maksim (Ellrion)
ошибка явно связана или с автолоудинго или с отсутствием класса Redis.
SarcasmIO
зайди в баш и выполни, sudo service status redis
SarcasmIO
или как там у тя в 16-й бубунте
SarcasmIO
или чо у тя в докере
Maksim (Ellrion)
потому как в пакете вызов \Redis который клиент, но его мб нет и дергается фасад а у сервиса под фасадом нет метода
Эмин
выполните команду php -m | grep redis
SarcasmIO
именно скрин, интересно как оно подсвечивает пакет predis