![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/PluginBundle/Facade/ |
<?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' ); } }