vendor/shopware/core/Framework/Plugin/KernelPluginLoader/DbalKernelPluginLoader.php line 11

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Shopware\Core\Framework\Plugin\KernelPluginLoader;
  3. use Composer\Autoload\ClassLoader;
  4. use Doctrine\DBAL\Connection;
  5. /**
  6.  * @package core
  7.  */
  8. class DbalKernelPluginLoader extends KernelPluginLoader
  9. {
  10.     /**
  11.      * @var Connection
  12.      */
  13.     private $connection;
  14.     public function __construct(ClassLoader $classLoader, ?string $pluginDirConnection $connection)
  15.     {
  16.         parent::__construct($classLoader$pluginDir);
  17.         $this->connection $connection;
  18.     }
  19.     protected function loadPluginInfos(): void
  20.     {
  21.         $sql = <<<'SQL'
  22.         # dbal-plugin-loader
  23.         SELECT
  24.                `name`,
  25.                `base_class` AS baseClass,
  26.                IF(`active` = 1 AND `installed_at` IS NOT NULL, 1, 0) AS active,
  27.                `path`,
  28.                `version`,
  29.                `autoload`,
  30.                `managed_by_composer` AS managedByComposer,
  31.                composer_name as composerName
  32.         FROM `plugin`
  33.         ORDER BY `installed_at`;
  34. SQL;
  35.         $plugins $this->connection->executeQuery($sql)->fetchAll();
  36.         foreach ($plugins as $i => $plugin) {
  37.             $plugins[$i]['active'] = (bool) $plugin['active'];
  38.             $plugins[$i]['managedByComposer'] = (bool) $plugin['managedByComposer'];
  39.             $plugins[$i]['autoload'] = json_decode($plugin['autoload'], true);
  40.         }
  41.         $this->pluginInfos $plugins;
  42.     }
  43. }