Как настроить PhpRedis в Laravel 5+?
Фон
Попытка использовать PhpRedis в Laravel 5.3 на локальном сервере Mac OSX
работает Apache 2.4.18, Php 7.0.14 и доморощенный
... не требуя дополнительных (неофициальных) библиотек композитора
Redis устанавливается через homebrew install redis
и работает
проверено redis-cli ping
который дает PONG
PhpRedis установлен через homebrew install php70-redis
и работает
проверено php -r "if (new Redis() == true){ echo \"\r\n OK \r\n\"; }"
который дает OK
Настроить
С документацией и этим решением SO Laravel 4 я делаю следующее:
- изменить (или прокомментировать и добавить)
alias
определение в app/config/app.php из'Redis' => 'Illuminate\Support\Facades\Redis'
в'LRedis' => 'Illuminate\Support\Facades\Redis'
- добавить определение клиента в
redis
определение базы данных в config/database.php'client' => 'phpredis',
- бежать
composer dump-autoload
а такжеphp artisan optimize
используйте этот переименованный псевдоним в примере кода маршрута:
Route::get('redistesturl', function () { $app = LRedis::connection(); $app->set("name", "Bob Cool"); print_r($app->get("name")); });
ошибки
FatalThrowableError in Database.php line 62:
Class 'Predis\Client' not found
Также проверен вызов redis в маршруте согласно ответу SO, упомянутому выше:
$redis = Illuminate\Support\Facades\Redis::connection();
... но получить ту же ошибку
Если я попытаюсь получить доступ LRedis
Класс внутри контроллера, как это:
use Illuminate\Support\Facades\Redis;
class MyController extends Controller
{
public function redistest(){
$redis = LRedis::connection();
$redis->set('name', 'Bob Cool');
return $redis->get('name');
}
}
Я получаю следующую ошибку:
FatalThrowableError in Preferences.php line 15:
Class 'App\Http\Controllers\LRedis' not found
Заметки
проверенный Predis
и получил нормально работать, только добавив официальный predis
библиотека, как указано в документах.
Я могу заставить PhpRedis нормально работать в моей системе (с теми же примерами маршрутов и контроллеров), если я использую дополнительную библиотеку, подобную этой, следуя этому Laracast... однако этот вопрос конкретно:
"Как настроить PhpRedis в Laravel 5+ без дополнительных библиотек композитора?"
2 ответа
FatalThrowableError in Preferences.php line 15:
Class 'App\Http\Controllers\LRedis' not found
Вы не включили пространство имен для класса LRedis
<?php
use LRedis
Вам нужен двоичный файл PHP Redis.
https://github.com/phpredis/phpredis/blob/develop/INSTALL.markdown
pecl install redis