Use lifecycle interface for frontend extender (#2211)

This commit is contained in:
Alexander Skvortsov 2020-07-17 05:49:52 -04:00 committed by GitHub
parent 7f27f1180b
commit 368a9836bd
3 changed files with 29 additions and 16 deletions

View File

@ -9,8 +9,6 @@
namespace Flarum\Admin;
use Flarum\Extension\Event\Disabled;
use Flarum\Extension\Event\Enabled;
use Flarum\Foundation\AbstractServiceProvider;
use Flarum\Foundation\ErrorHandling\Registry;
use Flarum\Foundation\ErrorHandling\Reporter;
@ -118,7 +116,7 @@ class AdminServiceProvider extends AbstractServiceProvider
$events = $this->app->make('events');
$events->listen(
[Enabled::class, Disabled::class, ClearingCache::class],
ClearingCache::class,
function () {
$recompile = new RecompileFrontendAssets(
$this->app->make('flarum.assets.admin'),

View File

@ -9,8 +9,6 @@
namespace Flarum\Extend;
use Flarum\Extension\Event\Disabled;
use Flarum\Extension\Event\Enabled;
use Flarum\Extension\Extension;
use Flarum\Foundation\Event\ClearingCache;
use Flarum\Frontend\Assets;
@ -23,7 +21,7 @@ use Flarum\Locale\LocaleManager;
use Flarum\Settings\Event\Saved;
use Illuminate\Contracts\Container\Container;
class Frontend implements ExtenderInterface
class Frontend implements ExtenderInterface, LifecycleInterface
{
private $frontend;
@ -115,13 +113,9 @@ class Frontend implements ExtenderInterface
$events = $container->make('events');
$events->listen(
[Enabled::class, Disabled::class, ClearingCache::class],
function () use ($container, $abstract) {
$recompile = new RecompileFrontendAssets(
$container->make($abstract),
$container->make(LocaleManager::class)
);
$recompile->flush();
ClearingCache::class,
function () use ($container) {
$this->recompile($container);
}
);
@ -185,4 +179,27 @@ class Frontend implements ExtenderInterface
{
return $extension ? $extension->getId() : 'site-custom';
}
public function onEnable(Container $container, Extension $extension)
{
if (! empty($this->js) || ! empty($this->css)) {
$this->recompile($container);
}
}
public function onDisable(Container $container, Extension $extension)
{
if (! empty($this->js) || ! empty($this->css)) {
$this->recompile($container);
}
}
private function recompile($container)
{
$recompile = new RecompileFrontendAssets(
$container->make('flarum.assets.'.$this->frontend),
$container->make(LocaleManager::class)
);
$recompile->flush();
}
}

View File

@ -9,8 +9,6 @@
namespace Flarum\Forum;
use Flarum\Extension\Event\Disabled;
use Flarum\Extension\Event\Enabled;
use Flarum\Formatter\Formatter;
use Flarum\Foundation\AbstractServiceProvider;
use Flarum\Foundation\ErrorHandling\Registry;
@ -134,7 +132,7 @@ class ForumServiceProvider extends AbstractServiceProvider
$events = $this->app->make('events');
$events->listen(
[Enabled::class, Disabled::class, ClearingCache::class],
ClearingCache::class,
function () {
$recompile = new RecompileFrontendAssets(
$this->app->make('flarum.assets.forum'),