vendor/contao/manager-plugin/src/PluginLoader.php line 43

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. /*
  4.  * This file is part of Contao.
  5.  *
  6.  * (c) Leo Feyer
  7.  *
  8.  * @license LGPL-3.0-or-later
  9.  */
  10. namespace Contao\ManagerPlugin;
  11. use Contao\ManagerPlugin\Bundle\BundlePluginInterface;
  12. use Contao\ManagerPlugin\Config\ConfigPluginInterface;
  13. use Contao\ManagerPlugin\Config\ExtensionPluginInterface;
  14. use Contao\ManagerPlugin\Routing\RoutingPluginInterface;
  15. /**
  16.  * This class has been auto-generated. It will be overwritten at every run of
  17.  * "composer install" or "composer update".
  18.  *
  19.  * @see \Contao\ManagerPlugin\Composer\Installer
  20.  */
  21. class PluginLoader
  22. {
  23.     public const BUNDLE_PLUGINS BundlePluginInterface::class;
  24.     public const CONFIG_PLUGINS ConfigPluginInterface::class;
  25.     public const EXTENSION_PLUGINS ExtensionPluginInterface::class;
  26.     public const ROUTING_PLUGINS RoutingPluginInterface::class;
  27.     /**
  28.      * @var array
  29.      */
  30.     private $plugins;
  31.     /**
  32.      * @var array
  33.      */
  34.     private $disabled = [];
  35.     public function __construct(string $installedJson null, array $plugins null)
  36.     {
  37.         if (null !== $installedJson) {
  38.             @trigger_error('Passing the path to the Composer installed.json as first argument is no longer supported in version 2.3.'E_USER_DEPRECATED);
  39.         }
  40.         $this->plugins $plugins ?: [
  41.             'city-mountain/coursemanagement-bundle' => new \CityMountain\CourseManagementBundle\ContaoManager\Plugin(),
  42.             'city-mountain/els-config' => new \CityMountain\ELSConfig\ContaoManager\Plugin(),
  43.             'contao/calendar-bundle' => new \Contao\CalendarBundle\ContaoManager\Plugin(),
  44.             'contao/core-bundle' => new \Contao\CoreBundle\ContaoManager\Plugin(),
  45.             'contao/installation-bundle' => new \Contao\InstallationBundle\ContaoManager\Plugin(),
  46.             'contao/listing-bundle' => new \Contao\ListingBundle\ContaoManager\Plugin(),
  47.             'infiniment/export-bundle' => new \Infiniment\ExportBundle\ContaoManager\Plugin(),
  48.             'infiniment/resetpassword-bundle' => new \Infiniment\ResetpasswordBundle\ContaoManager\Plugin(),
  49.             'madeyourday/contao-rocksolid-columns' => new \MadeYourDay\RockSolidColumns\ContaoManagerPlugin(),
  50.             'madeyourday/contao-rocksolid-custom-elements' => new \MadeYourDay\RockSolidCustomElements\ContaoManagerPlugin(),
  51.             'madeyourday/contao-rocksolid-icon-picker' => new \MadeYourDay\RockSolidIconPicker\ContaoManagerPlugin(),
  52.             'madeyourday/contao-rocksolid-slider' => new \MadeYourDay\RockSolidSlider\ContaoManagerPlugin(),
  53.             'madeyourday/contao-rocksolid-theme-assistant' => new \MadeYourDay\RockSolidThemeAssistant\ContaoManagerPlugin(),
  54.             'menatwork/contao-multicolumnwizard-bundle' => new \MenAtWork\MultiColumnWizardBundle\ContaoManager\Plugin(),
  55.             'city-mountain/cmtool-bundle' => new \CityMountain\ToolBundle\ContaoManager\Plugin(),
  56.             'contao/manager-bundle' => new \Contao\ManagerBundle\ContaoManager\Plugin(),
  57.         ];
  58.     }
  59.     /**
  60.      * Returns all active plugin instances.
  61.      *
  62.      * @return array<string,BundlePluginInterface>
  63.      */
  64.     public function getInstances(): array
  65.     {
  66.         return array_diff_key($this->pluginsarray_flip($this->disabled));
  67.     }
  68.     /**
  69.      * Returns the active plugin instances of a given type (see class constants).
  70.      *
  71.      * @return array<string,BundlePluginInterface>
  72.      */
  73.     public function getInstancesOf(string $typebool $reverseOrder false): array
  74.     {
  75.         $plugins array_filter(
  76.             $this->getInstances(),
  77.             function ($plugin) use ($type) {
  78.                 return is_a($plugin$type);
  79.             }
  80.         );
  81.         if ($reverseOrder) {
  82.             $plugins array_reverse($pluginstrue);
  83.         }
  84.         return array_diff_key($pluginsarray_flip($this->disabled));
  85.     }
  86.     /**
  87.      * @return string[]
  88.      */
  89.     public function getDisabledPackages(): array
  90.     {
  91.         return $this->disabled;
  92.     }
  93.     public function setDisabledPackages(array $packages): void
  94.     {
  95.         $this->disabled $packages;
  96.     }
  97. }