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 $pluginDir, Connection $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. }