Reputation: 2494
Background
Attempting to use PhpRedis in Laravel 5.3 on a Mac OSX local server
running Apache 2.4.18, Php 7.0.14 and homebrew
...without requiring additional (non-official) composer libraries
Redis is installed via homebrew install redis
and working
tested by redis-cli ping
which gives PONG
PhpRedis installed via homebrew install php70-redis
and working
tested by php -r "if (new Redis() == true){ echo \"\r\n OK \r\n\"; }"
which gives OK
Setup
With the documentation and this SO Laravel 4 solution I do the following:
alias
definition in app/config/app.php from'Redis' => 'Illuminate\Support\Facades\Redis'
'LRedis' => 'Illuminate\Support\Facades\Redis'
redis
database definition in config/database.php'client' => 'phpredis',
composer dump-autoload
and php artisan optimize
use that renamed alias in an example route code:
Route::get('redistesturl', function () {
$app = LRedis::connection();
$app->set("name", "Bob Cool");
print_r($app->get("name"));
});
Errors
FatalThrowableError in Database.php line 62:
Class 'Predis\Client' not found
Also tested calling redis within route as per SO answer mentioned above :
$redis = Illuminate\Support\Facades\Redis::connection();
...but get same error
If I try to access LRedis
class from within a controller like this:
use Illuminate\Support\Facades\Redis;
class MyController extends Controller
{
public function redistest(){
$redis = LRedis::connection();
$redis->set('name', 'Bob Cool');
return $redis->get('name');
}
}
I get the following error:
FatalThrowableError in Preferences.php line 15:
Class 'App\Http\Controllers\LRedis' not found
Notes
Tested Predis
and got it working fine by only adding the official predis
library as specified in the docs.
I can get PhpRedis to work fine on my system (with the same route & controller examples) if I use an additional library like this one by following this Laracast ...however this question is specifically:
"How to set up PhpRedis in Laravel 5+ without additional composer libraries?"
Upvotes: 11
Views: 4561
Reputation: 51
FatalThrowableError in Preferences.php line 15:
Class 'App\Http\Controllers\LRedis' not found
You have not include namespace for LRedis class
<?php
use LRedis
Upvotes: 1
Reputation: 1593
You need to PHP Redis binary.
https://github.com/phpredis/phpredis/blob/develop/INSTALL.markdown
pecl install redis
Upvotes: 0