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

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

附言 1  ·  3个月前

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

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
最佳答案

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

3个月前 评论
讨论数量: 6

容器 或者 Macroable

3个月前 评论

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

3个月前 评论

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

3个月前 评论

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

3个月前 评论
fitchee (楼主) 3个月前
乳娃娃 (作者) 3个月前

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

3个月前 评论
fitchee (楼主) 3个月前

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

需要composer.json文件 加上

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

之后就可以了

1周前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!