Spaces:
No application file
No application file
File size: 2,177 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
<?php
namespace Mautic\PluginBundle\Facade;
use Mautic\PluginBundle\Helper\ReloadHelper;
use Mautic\PluginBundle\Model\PluginModel;
use Symfony\Contracts\Translation\TranslatorInterface;
class ReloadFacade
{
public function __construct(
private PluginModel $pluginModel,
private ReloadHelper $reloadHelper,
private TranslatorInterface $translator
) {
}
/**
* This method finds all plguins that needs to be enabled, disabled, installed and updated
* and do all those actions.
*
* Returns humanly understandable message about its doings.
*
* @return string
*/
public function reloadPlugins()
{
$plugins = $this->pluginModel->getAllPluginsConfig();
$pluginMetadata = $this->pluginModel->getPluginsMetadata();
$installedPlugins = $this->pluginModel->getInstalledPlugins();
$installedPluginTables = $this->pluginModel->getInstalledPluginTables($pluginMetadata);
$installedPluginsSchemas = $this->pluginModel->createPluginSchemas($installedPluginTables);
$disabledPlugins = $this->reloadHelper->disableMissingPlugins($plugins, $installedPlugins);
$enabledPlugins = $this->reloadHelper->enableFoundPlugins($plugins, $installedPlugins);
$updatedPlugins = $this->reloadHelper->updatePlugins($plugins, $installedPlugins, $pluginMetadata, $installedPluginsSchemas);
$installedPlugins = $this->reloadHelper->installPlugins($plugins, $installedPlugins, $pluginMetadata, $installedPluginsSchemas);
$persist = array_values((array) ($disabledPlugins + $enabledPlugins + $updatedPlugins + $installedPlugins));
$this->pluginModel->saveEntities($persist);
// Alert the user to the number of additions
return $this->translator->trans(
'mautic.plugin.notice.reloaded',
[
'%added%' => count($installedPlugins),
'%disabled%' => count($disabledPlugins),
'%updated%' => count($updatedPlugins),
],
'flashes'
);
}
}
|