diff --git a/src/Support/ExtensionManager.php b/src/Support/ExtensionManager.php index a7022b899..86e7dabaa 100644 --- a/src/Support/ExtensionManager.php +++ b/src/Support/ExtensionManager.php @@ -53,8 +53,6 @@ class ExtensionManager $enabled[] = $extension; - $this->load($extension); - $this->migrate($extension); $this->setEnabled($enabled); @@ -76,8 +74,6 @@ class ExtensionManager { $this->disable($extension); - $this->load($extension); - $this->migrateDown($extension); } @@ -125,15 +121,6 @@ class ExtensionManager return in_array($extension, $this->getEnabled()); } - protected function load($extension) - { - if (file_exists($file = $this->getExtensionsDir() . '/' . $extension . '/bootstrap.php')) { - $className = require $file; - - $ext = new $className($this->app); - } - } - protected function getExtensionsDir() { return public_path('extensions'); diff --git a/src/Support/ExtensionsServiceProvider.php b/src/Support/ExtensionsServiceProvider.php index 6f47f7e2f..9b89b4eb6 100644 --- a/src/Support/ExtensionsServiceProvider.php +++ b/src/Support/ExtensionsServiceProvider.php @@ -23,19 +23,19 @@ class ExtensionsServiceProvider extends ServiceProvider $config = $this->app->make('Flarum\Core\Settings\SettingsRepository')->get('extensions_enabled'); $extensions = json_decode($config, true); - $providers = []; - - foreach ($extensions as $extension) { - if (file_exists($file = public_path().'/extensions/'.$extension.'/bootstrap.php')) { - $providerName = require $file; - $providers[$extension] = $this->app->register($providerName); - } - } $events = $this->app->make('events'); - foreach ($providers as $provider) { - $provider->listen($events); + foreach ($extensions as $extension) { + if (file_exists($file = public_path().'/extensions/'.$extension.'/bootstrap.php')) { + $provider = require $file; + + if (is_string($provider)) { + $this->app->register($provider)->listen($events); + } elseif (is_callable($provider)) { + $provider($events); + } + } } } }