关于laravel 5.3 使用redis缓存出现 找不到Class 'PredisClient' not found的问题
Posted Ming迷彩
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于laravel 5.3 使用redis缓存出现 找不到Class 'PredisClient' not found的问题相关的知识,希望对你有一定的参考价值。
昨天使用5.3.版本的laravel框架开发公司新项目,
发现将cache和session设置为了redis,执行了一下首页访问。
如图:
laravel 版本号
简单配置一下控制器路由,
Route::get(\'home\', \'HomeController@index\');
Route::get(\'/\', \'HomeController@index\');
怎么配置控制器就不细说了。
说问题重点了(敲黑板!!!!!):
访问出现错误!!!
说找不到一个类:找不到Class \'Predis\\Client\' not found
查了查源码,发现少了一个vendor/目录下少了一个包predis,
执行:composer require predis/predis 安装这个包就好。
注:版本<5.3可以成功解决问题。>5.3的,失败!
控制台错误信息如下:
Updating dependencies (including require-dev)
Failed to decode response: zlib_decode(): data error
Retrying with degraded mode, check https://getcomposer.org/doc/articles/troubleshooting.md#degraded-mode for more info
Your requirements could not be resolved to an installable set of packages.
Problem 1
- The requested package laravel/passport (locked at v1.0.0, required as 1.0.8) is satisfiable by laravel/passport[v1.0.0] but these conf
lict with your requirements or minimum-stability.
Problem 2
- Installation request for laravel/passport 1.0.8 -> satisfiable by laravel/passport[v1.0.8].
- laravel/passport v1.0.8 requires symfony/psr-http-message-bridge ^0.3.0 -> satisfiable by symfony/psr-http-message-bridge[v0.3] but th
ese conflict with your requirements or minimum-stability.
Installation failed, reverting ./composer.json to its original content.
中文翻译:【更新的依赖(包括需要开发)
无法解码的回应:zlib_decode():数据错误
重试与降级模式,检查HTTPS:/ / getcomposer。org /文件/物品/故障排除。MD #降级模式的更多信息
你的要求不可能解决,对包的安装设置。
问题1
-请求的包laravel /护照(锁定在V1.0.0,需通过laravel 1.0.8)/护照[ V1.0.0 ]但这些配置可满足
冲突与您的要求或最小稳定。
问题2
安装要求laravel /护照1.0.8 ->满足由laravel /护照[┊]。
- laravel /护照/ PSR symfony┊需要HTTP消息桥^ 0.3.0┊->满足由symfony / PSR HTTP消息桥[ V0.3 ]但
这些冲突与您的要求或最小稳定。
安装失败,回复到原来的内容。/ composer.json。】
解决方法:[]中括号中为可选项
修改 项目Composer.json文件 + 删除Composer.lock +[执行composer clearcache] + [执行composer update] +执行:composer require predis/predis
这个错误,我调试了很久,网上没找到解决方法,所以花了很多时间才解决,具体是什么原因,我也不能乱说。
总结一下错误原因:
- 使用redis才会报错,如果你项目中没用用系统提供的redis方法,就不会遇到。
- 版本问题,只要laravel 5.3.*才有这个问题,因为以前版本都可以直接执行composer require predis/predis 解决。
- predis 官网维护没有及时更新 导致新版laravel 出现 请求的包laravel /passport (锁定在V1.0.0,需通过laravel 1.0.8)/passport [ V1.0.0 ]
- 还么想到,希望大家知道的补充,,,,,
先这样吧,希望能帮到遇到同样问题的同道。
原创博客,转载请注明出处!!!谢谢
====MING
以上是关于关于laravel 5.3 使用redis缓存出现 找不到Class 'PredisClient' not found的问题的主要内容,如果未能解决你的问题,请参考以下文章