1
0
mirror of https://github.com/flarum/core.git synced 2025-08-08 01:16:52 +02:00

Get rid of event subscribers that resolve services too early

Refs flarum/core#1578.
This commit is contained in:
Franz Liedke
2018-12-18 00:11:36 +01:00
parent d963704249
commit b47c791e39
5 changed files with 171 additions and 143 deletions

View File

@@ -10,8 +10,14 @@
*/
use Flarum\Akismet\Listener;
use Flarum\Approval\Event\PostWasApproved;
use Flarum\Extend;
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'))
@@ -20,7 +26,18 @@ return [
(new Extend\Frontend('admin'))
->js(__DIR__.'/js/dist/admin.js'),
function (Dispatcher $events) {
$events->subscribe(Listener\FilterNewPosts::class);
function (Dispatcher $events, Container $container) {
$container->bind(Akismet::class, function ($app) {
$settings = $app->make(SettingsRepositoryInterface::class);
return new Akismet(
$settings->get('flarum-akismet.api_key'),
$app->url()
);
});
$events->listen(Saving::class, Listener\ValidatePost::class);
$events->listen(PostWasApproved::class, Listener\SubmitHam::class);
$events->listen(Hidden::class, Listener\SubmitSpam::class);
},
];