我在Laravel 5.2中遇到了错误“Class 'Predis\Client' not found”。

58
我想在 Laravel 5.2 中使用 Redis,但是出现了“Class 'Predis\Client' not found”这样的错误,请问该如何解决?

你的解释不足以解决问题。请查看此链接http://stackoverflow.com/help/how-to-ask。 - smartrahat
2
@smartrahat 对我来说,这个解释已经足够了 - 问题很明确和清晰。 - Kamil Kiełczewski
10个回答

84
  1. 首先,如果你还没有安装REDIS,请下载REDIS
  2. 进入下载redis的文件夹并运行以下命令:

    cd your-redis-folder-name
    make
    
  3. 进入您的项目目录并安装composer:

    composer require predis/predis

  4. 进入您的 .env 文件并添加队列驱动程序:

    QUEUE_DRIVER=redis
    
  5. 使用Mail::queue()通过队列发送邮件。请查看文档
  6. 然后在终端中运行:

  7. php artisan queue:listen 
    

    发送。


cd your-redis-folder-name make 这句话是什么意思?当我执行这个命令时,会出现以下错误信息:The term 'make' is not recognized as the name of a cmdlet. 当我输入 cd my-redis-extracted-folders make 时,会出现错误:A positional parameter cannot be found that accepts argument 'make'. - undefined

44

在项目文件夹中的控制台中输入以下内容:

composer require predis/predis

就是这样了。


7

5
顺便提一下,如果您正在使用 Laravel 的 worker,以及 Ubuntu 的 supervisor,即使您已经执行了相应操作,这个错误仍然不会消失。
composer require predis/predis

记住,孩子们,一旦启动,supervisor会缓存你的所有php代码。因此,在启动supervisor工作进程后安装predis(https://laravel.com/docs/5.6/queues#supervisor-configuration),直到你执行特定操作之前都不会有任何区别。
sudo supervisorctl stop laravel-worker:*

然后再次启动它

sudo supervisorctl start laravel-worker:*

我在过去一年的三个项目中,已经卡了一两个小时。


4
我们已经添加了composer.json文件中的“predis/predis”:“~1.0”,这有助于正常工作。

2

您也可以尝试将Redis作为本地服务器运行,下载并运行run Redis server文件

如果仍然有问题,请使用composer require predis/predis


1
我解决了这个问题,只需要在app文件夹中的类文件上面包含use Predis;即可。 如果您已经通过composer require predis/predis安装了predis。

0

仅查看现有的示例路径和文件名非常容易。大多数路径名或自动加载文件名都拼写错误。

1-访问 https://github.com/predis/predis/tags

2-在主机中创建名为 redis 的文件夹

3-下载 predis 并将其上传到您的网站目录(www)中的 redis 文件夹中

4-在 predis 文件夹(redis)之外创建 index.php

5- 将此代码粘贴到 index.php 中进行测试

require 'redis/Autoload.php';
Predis\Autoloader::register();
$client = new Predis\Client();
$client->set('foo', 'bar');
$value = $client->get('foo');
echo $value;

0

在安装predis/predis包后,运行composer dump可能是必要的。


0
我的问题是在部署composer lock文件之前,我通过Envoyer更新了.env文件以使用redis作为会话和缓存驱动程序,这导致composer install在部署时失败。
解决方法是将会话和缓存驱动程序更改回文件,然后部署更新的composer lock文件并运行composer install,然后再将会话和缓存驱动程序更新回redis并重新部署。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接