一、前言

如题所示,博主在下载laravel5.4Predis扩展的时候遇到的错误,本来只是个composer下载的报错,只是处理这个问题的时候,又遇到很多知识点,索性记录一下,也方便同样遇到这个问题的朋友们。

二、普通解决方案

经过各种搜索查询,网上普遍的解决方案主要是下面两种。

1、设置国内的下载源

有一部分前辈说这个问题是因为源地址的问题,换成国内的源即可解决。

composer config repo.packagist composer https://packagist.phpcomposer.com

这种方式确实能替换源地址,只不过对于博主来说并没有解决实际问题。

2、设置compoer缓冲大小

后续百度发现有人说是缓存问题,缓存大小是:cache-files-maxsize

(1)查看composer配置文件

composer config -l[cache-ttl] 15552000
[cache-files-ttl] 15552000
[cache-files-maxsize] 300MiB (1073741824)
[bin-compat] auto
[discard-changes] false
[autoloader-suffix]
[sort-packages] true
[optimize-autoloader] true
[classmap-authoritative] false
[apcu-autoloader] false

缓存大小只有300M,这么说来的话,如果更新的包比较大,还真有可能下载不下来,因此更给为1024M试试。

(2)修改配置文件:

//修改缓存大小为1024MB

composer config --global cache-files-maxsize 1024MiB

其他的:

composer config --global data-dir /www/.composer
composer config --global cache-dir /www/.composer

修改的样式都是这样的,其实格式和更改源路径的时候差不多,只不过一时没想到,耗费了不少时间,这里需要注意格式是MiB。另外,对博主来说,修改完之后还是下载扩展包失败,那就没办法了,只能祭出我的大杀器。

三、手动引入Predis下载包

博主用尽浑身解数加上等待composer下载实在是浪费时间,无奈只好下载扩展包,然后通过composer自动加载机制引入扩展包。只是想法很美好,原理很简单,实施很艰难呐。

1、下载predis的包

下载链接: https://makeoss.oss-cn-hangzhou.aliyuncs.com/%E7%BC%96%E7%A8%8B/predis.zip

下载完成后,把包放到vendor下面即可。

2、执行 composer dumpautoload

一般都是把扩展包放到vendor之后,执行 composer dumpautoload 即可,但是博主这里执行之后,使用包的时候报错:

Class 'Predis\Client' not found

代表这个扩展包没有被框架自动加载。

3、修改composer.json,实现自动加载

既然要composer自动加载不现实了,那咱们只能手动更改了。根据composer自动加载规则,单独文件的话可以直接在autoload里面的files直接加上路径,比如一些函数文件等。

像咱们这种扩展包,需要在classmap里面给出目录,然后执行composer dump-autoload,自动加载才生效,它会把这个自动加载写入自动加载的配置文件中,这样我们的predis扩展才能用的到。

感兴趣的话,可以去vendor/composer中看看autoload_classmap.php,我们会看到新增了predis加载标准,这样在框架运行的时候,自然就能依据psr-4自动加载规范找到咱们需要的方法。

  "autoload": {"classmap": ["database","vendor/predis"],"psr-4": {"App\\": "app/"},"files":["app/Helpers/functions.php"]},

4、执行 composer dumpautoload

执行命令之后,刷新,错误消失 ,可以正常获取存储的值了

四、总结

出现这个问题,本质上还是对于composer的理解不够透彻,总以为下载个包就可以了,只是当这个包下载不下来的时候,我们又如何手动下载这个包,并把包通过autoload加载进框架呢?composer的自动加载部分如何添加,类的自动加载又要经过哪些步骤?这些都是我们要了解的知识,加油吧各位!

end


composer报错:received xxx bytes out of the 以及composer手动引入扩展包相关推荐

  1. 解决composer报错:Could not find a version of package xxx/yyy

    解决composer报错:Could not find a version of package xxx/yyy matching your minimum-stability (stable). R ...

  2. Flask 数据迁移 报错 Table 'xxx' is already defined for this MetaData instance

    Flask 数据迁移 报错 Table 'xxx' is already defined for this MetaData instance 原因是已经存在 db.Model应该会熟悉一些, db. ...

  3. zkfc 异常退出问题,报错Received stat error from Zookeeper. code:CONNECTIONLOSS

    zkfc 异常退出问题,报错Received stat error from Zookeeper. code:CONNECTIONLOSS 参考文章: (1)zkfc 异常退出问题,报错Receive ...

  4. composer 报错 The “https://mirrors.aliyun.com/composer/p....json“ file could not be downloaded (HTTP/1

    composer 报错 The "https://mirrors.aliyun.com/composer/p....json" file could not be download ...

  5. JS报错-TypeError: xxx is not a function

    在今天的工作中,有个勾选框的onchage事件绑定的函数明明有实现.但是触发时,一直报错TypeError: xxx is not a function.一直以为是错误Uncaught Referen ...

  6. JavaScript报错:xxx.filter is not a function

    问题 JavaScript报错:xxx.filter is not a function 解决办法 将xxx改为数组类型,filter只支持数组过滤 let xxx = [ { }, { } ]

  7. linux执行.sh文件时,报错:XXX.sh: Permission denied(没有权限)

    linux执行.sh文件时,报错:XXX.sh: Permission denied(没有权限) 解决方法:修改对该文件的权限 例如报错: bash: ./zkServer.sh: Permissio ...

  8. MySQL 报错 ‘Variable ‘XXX‘ is a read only variable‘

    MySQL 报错 'Variable 'XXX' is a read only variable' 设置参数时报错 [SQL] set global innodb_buffer_pool_size=5 ...

  9. java ssl 报错 Received fatal alert: illegal_parameter

    (未验证,仅供参考) 有一种解决办法是加启动字段 tomcat - SSLException: Received fatal alert: illegal_parameter after Java 1 ...

最新文章

  1. SPIEC-EASI的微生物网络构建示例
  2. Load 方法 暨 程序的加载顺序
  3. ddnspod php 脚本_使用DNSPOD的域名解析实现DDNS域名动态的脚本
  4. 军规22 充分使用持续集成和持续部署
  5. hdu 1058 Humble Numbers
  6. 一道说难不难的js题目
  7. SpringCloud项目:实现推送消息到RabbitMQ消息中间件
  8. C/C++程序训练6—歌德巴赫猜想的证明
  9. 这几年养成的几个比较好的工作习惯
  10. 快启动win10pe制作详细图文教程
  11. 数字滤波器 matlab 仿真,基于MATLAB的经典数字滤波器的设计与仿真
  12. jquery禁止复制、禁用右键、文本选择功能、复制按键
  13. 暨南大学21考研计算机上岸吐槽贴经验贴流水账
  14. html文章标题列表,内容页(文章及产品页)标题该怎么写
  15. 橘子学ES03之Docker安装ELK+cerebro
  16. 浅谈 Unity、iOS、Android 闭包的使用方法
  17. 虎年,用Python画一个小老虎,祝大家新年虎虎生威,大吉大利
  18. ctfshow web入门-sql注入
  19. eclipse新建java项目报错:Failed to init ct.sym for ....../jrt-fs.jar
  20. 计算机休眠后游戏,win10,win7玩游戏频繁进入睡眠模式,求解。

热门文章

  1. matlab配对交易回测,精品案例 | 经典投资策略之配对交易策略
  2. 散列表的设计与实现_python基础之字典与集合实现
  3. python opencv 圆形roi
  4. 深度学习损失函数大全
  5. requests.exceptions.TooManyRedirects: Exceeded 30 redirects
  6. 提升注意力模块性能dcanet
  7. torch.stack(), torch.cat()用法详解
  8. elasticsearch update 无结果
  9. python肘部法则 最优分类
  10. Qt Creator 设置默认编码格式