在Laravel容器中覆盖Singleton

彼得·福克斯

我想知道是否有一种简单的方法可以覆盖Laravel框架核心中的单例服务集?

例如,我正在尝试使用以下提供程序重写app:name命令服务”:

use Hexavel\Console\AppNameCommand;
use Illuminate\Console\Events\ArtisanStarting;
use Illuminate\Contracts\Events\Dispatcher;
use Illuminate\Support\ServiceProvider;

class NameCommandProvider extends ServiceProvider
{
    /**
     * Register any other events for your application.
     *
     * @param  \Illuminate\Contracts\Events\Dispatcher  $events
     * @return void
     */
    public function boot(Dispatcher $events)
    {
        $events->listen(ArtisanStarting::class, function ($event) {
            $event->artisan->resolve('command.app.name');
        }, -1);
    }

    /**
     * Register the service provider.
     *
     * @return void
     */
    public function register()
    {
        $this->app->singleton('command.app.name', function ($app) {
            return new AppNameCommand($app['composer'], $app['files']);
        });
    }
}

我100%的工作都是正常的,因为无论我将服务提供者(在ConsoleSupportServiceProvider之上还是之下)按什么顺序进行大量检查,它仍然会在我的自定义对象上加载原始AppNameCommand。

我已经围绕BUT工作了,如果有可能的话,很高兴知道将来单例服务的行为?(如果有任何区别,则使用Laravel 5.2。)

雷米·佩尔哈特(Remi Pelhate)

实际上,这是一种更清洁的方法。您基本上想扩展一个核心绑定,可以使用以下extend方法来实现

$this->app->extend('command.app.name', function ($command, $app) {
    return new AppNameCommand($app['composer'], $app['files']);
});

杰森·刘易斯有关于Laravel对国际奥委会非常好的文章Tutsplus一定要检查一下 ;)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

覆盖Docker容器中的文件

来自分类Dev

如何覆盖Kubernetes部署文件中pod容器中的文件?

来自分类Dev

如何扩展div以覆盖父容器中的可用空间?

来自分类Dev

容器中的SearchBar / SearchDisplayController覆盖UITableView-iOS 7

来自分类Dev

Bootstrap 3溢出容器中的文本覆盖英雄图像

来自分类Dev

如何在Django模板中覆盖继承的容器?

来自分类Dev

Docker覆盖了容器中的/etc/resolv.conf文件

来自分类Dev

如何在Laravel中覆盖软删除

来自分类Dev

如何避免在Laravel中覆盖路由?

来自分类Dev

如何在Laravel中覆盖软删除

来自分类Dev

如何覆盖 Laravel 源代码中的类?

来自分类Dev

如何在Laravel的容器中重新绑定?

来自分类Dev

Bootstrap容器中的Laravel动态映像

来自分类Dev

如何交换laravel容器中的依赖项

来自分类Dev

如何在 Dockerfile 中设置要在 Docker 容器中覆盖的变量 ENV?

来自分类Dev

CSS 使容器 DIV 覆盖整页

来自分类Dev

Laravel中的数据库类是否使用“ Singleton模式”?

来自分类Dev

防止在Azure容器注册表中覆盖Docker映像标记

来自分类Dev

如何在 HTML 文档中创建一个不可覆盖的容器?

来自分类Dev

在Vim中覆盖覆盖

来自分类Dev

如何在Laravel 4中覆盖View :: make()?

来自分类Dev

覆盖Laravel中的软件包本地化

来自分类Dev

如何在PHPUnit测试中覆盖Laravel的异常处理程序?

来自分类Dev

为什么在Laravel AuthController中覆盖postRegister不起作用?

来自分类Dev

覆盖laravel 5中来自程序包的验证消息

来自分类Dev

如何在Laravel 5中覆盖刀片的默认转义功能?

来自分类Dev

在Laravel Framework 7.29.3中覆盖供应商文件

来自分类Dev

在Laravel Framework 7.29.3中覆盖供应商文件

来自分类Dev

覆盖Laravel中的软件包本地化

Related 相关文章

  1. 1

    覆盖Docker容器中的文件

  2. 2

    如何覆盖Kubernetes部署文件中pod容器中的文件?

  3. 3

    如何扩展div以覆盖父容器中的可用空间?

  4. 4

    容器中的SearchBar / SearchDisplayController覆盖UITableView-iOS 7

  5. 5

    Bootstrap 3溢出容器中的文本覆盖英雄图像

  6. 6

    如何在Django模板中覆盖继承的容器?

  7. 7

    Docker覆盖了容器中的/etc/resolv.conf文件

  8. 8

    如何在Laravel中覆盖软删除

  9. 9

    如何避免在Laravel中覆盖路由?

  10. 10

    如何在Laravel中覆盖软删除

  11. 11

    如何覆盖 Laravel 源代码中的类?

  12. 12

    如何在Laravel的容器中重新绑定?

  13. 13

    Bootstrap容器中的Laravel动态映像

  14. 14

    如何交换laravel容器中的依赖项

  15. 15

    如何在 Dockerfile 中设置要在 Docker 容器中覆盖的变量 ENV?

  16. 16

    CSS 使容器 DIV 覆盖整页

  17. 17

    Laravel中的数据库类是否使用“ Singleton模式”?

  18. 18

    防止在Azure容器注册表中覆盖Docker映像标记

  19. 19

    如何在 HTML 文档中创建一个不可覆盖的容器?

  20. 20

    在Vim中覆盖覆盖

  21. 21

    如何在Laravel 4中覆盖View :: make()?

  22. 22

    覆盖Laravel中的软件包本地化

  23. 23

    如何在PHPUnit测试中覆盖Laravel的异常处理程序?

  24. 24

    为什么在Laravel AuthController中覆盖postRegister不起作用?

  25. 25

    覆盖laravel 5中来自程序包的验证消息

  26. 26

    如何在Laravel 5中覆盖刀片的默认转义功能?

  27. 27

    在Laravel Framework 7.29.3中覆盖供应商文件

  28. 28

    在Laravel Framework 7.29.3中覆盖供应商文件

  29. 29

    覆盖Laravel中的软件包本地化

热门标签

归档