当前位置: 首页 > 后端技术 > PHP

谈谈我是如何为 Laravel 贡献源码

时间:2023-03-29 23:44:09 PHP

说说我如何为Laravel贡献源码事件的起源发生在调试一个模型事件的时候。当时,一个字符串ID被随机插入到数据库中,而不是一个标准的uuid。然后发现在我的模型事件中找不到当前ID的模型。当然,我们不可能总是遇到问题,遇到的问题也有可能是我们自己的错误。这个时候我们可以去Laravel的问题库看看我们能解决什么问题。进步首先消除了我们自己代码中的错误。然后一步步调试打印返回变量,发现belongsToMany::sync方法返回的ID不正确。再往下看,这个整数的大小很眼熟,我想应该是整数类型的大小溢出了。然后看了下源码InteractsWithPivotTable::caseKey,基本确定是整数溢出了。这里只是简单的强制按照变量类型进行转换。因为PHP是一种弱类型语言,当长字符是数字字符串时,将无法得到正确的结果。但是我在模型中设置了主键类型为字符串,这应该不是我想要的结果。然后我向框架提出了一个问题。Laravel组织的成员Tillkruss告诉我,我可以提交PR并立即行动。说实话,解决这个问题很简单,因为只要拿到主键类型,然后进行强制转移,马上就可以提交代码,然后就被拒了。原来是忘记写测试代码了,查看了其他数据库的测试代码。找了一个比较适合自己的测试,写了一个数据库。提交。合并成功。具体修改的代码可以查看这里5.7完善caseKey方法的返回值结束第一次提交大型项目的PR,真心觉得不能这么随便。写代码的时候,请清楚说明这段代码的原因,你会发现framework中有很多注释,不要忘记写测试文件提交PR时,请详细描述你有哪些改动和补充这次做了新功能。随意表达您的想法,社区中有很多人会帮助您。最后,欢迎加入Laravel学习交流群,群号:584453488