公告:九九网站目录为广大站长提供免费收录网站服务,会员可在线完成投稿无需添加友情链接。只收录内容正规合法的网站;快审网站软文10元

点击这里在线咨询客服
新站提交
  • 网站:8462
  • 待审:16
  • 小程序:9
  • 文章:3610
  • 会员:21113

 

场景

相信做php开发的小伙伴都会遇到这样的情况,使用第三方的包时会遇到各种bug,官方又没来得及更新修复的,特别是大版本升级的时候最常见,又或者项目有需求需要改到包的代码的情况。

实例

1.用thinkphp6为例

在项目目录中创建一个文件夹名为patch然后创建一个文件名为Autoload.php

代码为 以PhpAmqpLib\Connection\AbstractConnection为例

/**
 * 加载器,将需要改进的composer库需要修改的类放在此处加载
 */spl_autoload_register(function($cls){
    $map = [PhpAmqpLib\Connection\AbstractConnection=>__DIR__./AbstractConnection.php,// 修复PhpAmqpLib 8.1的问题// ....更多要修改的类];if(isset($map[$cls])) {include$map[$cls];returntrue;
    }
},true,true);

patch目录下创建AbstractConnection.php文件,复制PhpAmqpLib\Connection\AbstractConnection过来,最后根据自身需求修改即可。

还差一步即可大功告成,在项目根目录中找到composer.json文件,找到autoload,然后再files中填上前面Autoload.php的相对路径

"autoload": {"psr-4": {"app\\":"app"},"psr-0": {"":"extend/"},"files": ["patch/Autoload.php"]
}

总结

这样就可以很好统一管理自己需要修改的包代码,同时又不用影响包原本的代码,提交代码的时候更不用把vendor的代码都提到仓库管理中。

分享到:

  admin

注册时间:

网站:0 个   小程序:3 个  文章:0 篇

  • 462

    网站

  • 9

    小程序

  • 3610

    文章

  • 113

    会员

赶快注册账号,推广您的网站吧!
热门网站
最新入驻小程序

跳一跳2022-08-22

跳一跳是微信开发的一款小游戏,有

数独大挑战2018-06-03

数独一种数学游戏,玩家需要根据9

答题星2018-06-03

您可以通过答题星轻松地创建试卷

全阶人生考试2018-06-03

各种考试题,题库,初中,高中,大学四六

运动步数有氧达人2018-06-03

记录运动步数,积累氧气值。还可偷

每日养生app2018-06-03

每日养生,天天健康