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

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