背景
尝试在Mac OSX本地服务器上使用Laravel 5.3中的PhpRedis
运行Apache 2.4.18,Php 7.0.14和homebrew
......不需要额外的(非官方)作曲家库
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
设置
使用documentation和此SO Laravel 4 solution,我执行以下操作:
alias
定义
'Redis' => 'Illuminate\Support\Facades\Redis'
'LRedis' => 'Illuminate\Support\Facades\Redis'
redis
数据库定义中
'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
还根据SO answer mentioned above测试了在路线中调用redis:
$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
库使其工作正常。
如果我按照like this one使用额外的库this Laracast,我可以让PhpRedis在我的系统上正常工作(使用相同的路由和控制器示例)那么这个问题具体是:
"如何在没有其他作曲家库的情况下在Laravel 5+ 中设置PhpRedis?"
答案 0 :(得分:1)
FatalThrowableError in Preferences.php line 15:
Class 'App\Http\Controllers\LRedis' not found
您没有为 LRedis 类包含命名空间
<?php
use LRedis
答案 1 :(得分:0)
您需要 PHP Redis 二进制文件。
https://github.com/phpredis/phpredis/blob/develop/INSTALL.markdown
pecl install redis