扩展被供应商使用的Laravel类

4

我的需求

扩展Laravel类,这里是一个供应商使用的类:https://github.com/laracasts/flashFlash/Message.php 类。

为什么我需要

为了添加一些类参数,以供自定义目的。

我尝试了什么

我找到了谷歌和浏览其他问题中的所有内容。

我创建了自己的服务提供者:

use Laracasts\Flash\FlashServiceProvider as BaseServiceProvider;

class FlashServiceProvider extends BaseServiceProvider
{

    public function register()
    {
        $this->app->singleton( 'flash', function() {
            return $this->app->make( 'App\Extensions\Laracasts\Flash\FlashNotifier' );
        } );
    }
}

我甚至成功将自定义函数添加到了App\Extensions\Laracasts\Flash\FlashNotifier类中。

仍然无法正常工作

尽管我已经成功扩展了FlashNotifier类,但它仍存在问题,因为它继续使用原始的Messages类,而不是我的类。

问题

如何强制使用我的版本Messages类,而不是原始版本,以便我的扩展FlashNotifier类可以使用它?


是的,我做了。App\Providers\FlashServiceProvider::class(甚至尝试删除原始提供程序行Laracasts\Flash\FlashServiceProvider::class)。 - Kesse
你能发布一下 Git 仓库的 URL 吗? - Jeff Puckett
@JeffPuckett 这已经在问题中提到了。 - Kesse
是的,我是原始软件包的贡献者,我在询问您的应用程序存储库。 - Jeff Puckett
覆盖它不是问题,所以我很好奇你在哪里搞错了。 - Jeff Puckett
显示剩余2条评论
1个回答

0

不必扩展类,您可以采取不同的方法。

创建laracasts/flash的分支,然后将其加载到您的项目中

从VCS存储库加载包的Composer文档

来自文档

有几种用例可用。 最常见的是维护第三方库的自己的分支。 如果您正在为项目使用某个库,并且决定在库中更改某些内容,则希望您的项目使用已修补版本...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接