diff --git a/src/Core/Addon/AddonHelper.php b/src/Core/Addon/AddonHelper.php index 98a999c23f..1dd8dc93f5 100644 --- a/src/Core/Addon/AddonHelper.php +++ b/src/Core/Addon/AddonHelper.php @@ -23,6 +23,27 @@ interface AddonHelper */ public function getAvailableAddons(): array; + /** + * Installs an addon. + * + * @param string $addonId name of the addon + * + * @return bool true on success or false on failure + */ + public function installAdodn(string $addonId): bool; + + /** + * Uninstalls an addon. + * + * @param string $addonId name of the addon + */ + public function uninstallAddon(string $addonId): void; + + /** + * Reload (uninstall and install) all updated addons. + */ + public function reloadAddons(): void; + /** * Checks if the provided addon is enabled */ diff --git a/src/Core/Addon/AddonProxy.php b/src/Core/Addon/AddonProxy.php index aaa6a23689..dead7cbb3e 100644 --- a/src/Core/Addon/AddonProxy.php +++ b/src/Core/Addon/AddonProxy.php @@ -30,6 +30,36 @@ final class AddonProxy implements AddonHelper return Addon::getAvailableList(); } + /** + * Installs an addon. + * + * @param string $addonId name of the addon + * + * @return bool true on success or false on failure + */ + public function installAdodn(string $addonId): bool + { + return Addon::install($addonId); + } + + /** + * Uninstalls an addon. + * + * @param string $addonId name of the addon + */ + public function uninstallAddon(string $addonId): void + { + Addon::uninstall($addonId); + } + + /** + * Reload (uninstall and install) all updated addons. + */ + public function reloadAddons(): void + { + Addon::reload(); + } + /** * Checks if the provided addon is enabled */