Laravel - 注册装饰者

问题描述 投票:2回答:1

我正在尝试在Laravel容器中为Mailer服务实现Decorator Pattern。遵循this page的语法,以及official documentation

我在MailerDecorator(在AppServiceProvider配置中注册)app.php方法注册register

$this->app->extend(Mailer::class, function ($mailer) {
    return new MailerDecorator($mailer);
});

不幸的是,Decorator没有注册,应用程序仍在使用旧的实现。

有没有办法调试容器?我错过了什么吗?

谢谢!

php laravel dependency-injection laravel-5.4
1个回答
1
投票

Laravel Mailer类使用别名mailer绑定,因此您可以尝试使用mailer别名而不是Mailer::class注册Decorator。

$this->app->extend('mailer', function ($mailer) {
    return new MailerDecorator($mailer);
});
© www.soinside.com 2019 - 2024. All rights reserved.