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

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

附言 1  ·  4年前

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

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

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

4年前 评论
讨论数量: 6

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

4年前 评论

容器 或者 Macroable

4年前 评论

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

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年前 评论

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