From d747946e49624665ba0dd40a8e39645a2a51a489 Mon Sep 17 00:00:00 2001 From: Alexander Skvortsov Date: Tue, 8 Dec 2020 13:37:23 -0500 Subject: [PATCH] Use proper Event and Service Provider extenders --- extensions/akismet/extend.php | 28 +++++-------------- .../akismet/src/Provider/AkismetProvider.php | 26 +++++++++++++++++ 2 files changed, 33 insertions(+), 21 deletions(-) create mode 100644 extensions/akismet/src/Provider/AkismetProvider.php diff --git a/extensions/akismet/extend.php b/extensions/akismet/extend.php index b67d3a2b6..0e9a96d37 100644 --- a/extensions/akismet/extend.php +++ b/extensions/akismet/extend.php @@ -8,15 +8,11 @@ */ use Flarum\Akismet\Listener; +use Flarum\Akismet\Provider\AkismetProvider; use Flarum\Approval\Event\PostWasApproved; use Flarum\Extend; -use Flarum\Http\UrlGenerator; use Flarum\Post\Event\Hidden; use Flarum\Post\Event\Saving; -use Flarum\Settings\SettingsRepositoryInterface; -use Illuminate\Contracts\Container\Container; -use Illuminate\Contracts\Events\Dispatcher; -use TijsVerkoyen\Akismet\Akismet; return [ (new Extend\Frontend('forum')) @@ -27,21 +23,11 @@ return [ new Extend\Locales(__DIR__.'/locale'), - function (Dispatcher $events, Container $container) { - $container->bind(Akismet::class, function ($app) { - /** @var SettingsRepositoryInterface $settings */ - $settings = $app->make(SettingsRepositoryInterface::class); - /** @var UrlGenerator $url */ - $url = $app->make(UrlGenerator::class); + (new Extend\Event()) + ->listen(Hidden::class, Listener\SubmitSpam::class) + ->listen(PostWasApproved::class, Listener\SubmitHam::class) + ->listen(Saving::class, Listener\ValidatePost::class), - return new Akismet( - $settings->get('flarum-akismet.api_key'), - $url->to('forum')->base() - ); - }); - - $events->listen(Saving::class, Listener\ValidatePost::class); - $events->listen(PostWasApproved::class, Listener\SubmitHam::class); - $events->listen(Hidden::class, Listener\SubmitSpam::class); - }, + (new Extend\ServiceProvider()) + ->register(AkismetProvider::class), ]; diff --git a/extensions/akismet/src/Provider/AkismetProvider.php b/extensions/akismet/src/Provider/AkismetProvider.php new file mode 100644 index 000000000..9ef071a9f --- /dev/null +++ b/extensions/akismet/src/Provider/AkismetProvider.php @@ -0,0 +1,26 @@ +app->bind(Akismet::class, function () { + /** @var SettingsRepositoryInterface $settings */ + $settings = $this->app->make(SettingsRepositoryInterface::class); + /** @var UrlGenerator $url */ + $url = $this->app->make(UrlGenerator::class); + + return new Akismet( + $settings->get('flarum-akismet.api_key'), + $url->to('forum')->base() + ); + }); + } +}