请教一下,我修改了 Laravel\Scout\Builder 的源码 ,有什么办法能避免修改源码吗

Rt,因为需要所以加了一个skip和count的功能,但是直接在源码修改了,之后不好管理

附言 1  ·  4年前

问题已解决,谢谢,解决方案就是我评论所述

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

找到了一个好的办法,复制源文件, 修改好以后放到单独一个目录里,比如 reload/ ,然后在composer.json的autoload段的 classmap 添加 reload, 然后composer dump-autoload,或者直接在 boostrap/app.php里面require一次。不要改类名,也不要改命名空间,自动加载类的时候就会先加载你改过的这个类, 忽略原版那个

4年前 评论
讨论数量: 6

容器 或者 Macroable

4年前 评论

继承这个类,重写其中的方法,用的时候用自己写的类

4年前 评论

找到了一个好的办法,复制源文件, 修改好以后放到单独一个目录里,比如 reload/ ,然后在composer.json的autoload段的 classmap 添加 reload, 然后composer dump-autoload,或者直接在 boostrap/app.php里面require一次。不要改类名,也不要改命名空间,自动加载类的时候就会先加载你改过的这个类, 忽略原版那个

4年前 评论

继承之后再派生类中修改,然后再入口文件里面用class_alias替换子类为父类

4年前 评论
fitchee (楼主) 4年前
乳娃娃 (作者) 4年前

Laravel\Scout\Builder::macro('skip', function () {...})
就可以给这个类添加一个 skip 方法了,,,

4年前 评论
fitchee (楼主) 4年前

@fitchee
直接在 boostrap/app.php 里面 require 是 OK的,修改classmap 不行哈
file
file

需要composer.json文件 加上

"exclude-from-classmap": [
          "vendor/laravel/framework/src/Illuminate/Queue/Failed/DatabaseFailedJobProvider.php"
  ]

之后就可以了

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!