/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
setup/src/Magento/Setup/Module/ConnectionFactory.php
104 строки
4 KB
Alexandra Zota
ACP2E-4019: CE copyright updates for 2.4.9-beta1
22 окт 2025, 11:23
22 окт 2025, 11:23
6c2f6e6
Код
Авторство
О чём код?
<?php /** * Copyright 2015 Adobe * All Rights Reserved. */ namespace Magento\Setup\Module; use Magento\Framework\Model\ResourceModel\Type\Db\Pdo\Mysql; use Laminas\ServiceManager\ServiceLocatorInterface; /** * Connection adapter factory * * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class ConnectionFactory implements \Magento\Framework\Model\ResourceModel\Type\Db\ConnectionFactoryInterface { /** * @var ServiceLocatorInterface */ private $serviceLocator; /** * Constructor * * @param ServiceLocatorInterface $serviceLocator */ public function __construct(ServiceLocatorInterface $serviceLocator) { $this->serviceLocator = $serviceLocator; } /** * @inheritDoc */ public function create(array $connectionConfig) { $quote = new \Magento\Framework\DB\Platform\Quote(); $selectFactory = new \Magento\Framework\DB\SelectFactory( new \Magento\Framework\DB\Select\SelectRenderer( [ 'distinct' => [ 'renderer' => new \Magento\Framework\DB\Select\DistinctRenderer(), 'sort' => 100, 'part' => 'distinct' ], 'columns' => [ 'renderer' => new \Magento\Framework\DB\Select\ColumnsRenderer($quote), 'sort' => 200, 'part' => 'columns' ], 'union' => [ 'renderer' => new \Magento\Framework\DB\Select\UnionRenderer(), 'sort' => 300, 'part' => 'union' ], 'from' => [ 'renderer' => new \Magento\Framework\DB\Select\FromRenderer($quote), 'sort' => 400, 'part' => 'from' ], 'where' => [ 'renderer' => new \Magento\Framework\DB\Select\WhereRenderer(), 'sort' => 500, 'part' => 'where' ], 'group' => [ 'renderer' => new \Magento\Framework\DB\Select\GroupRenderer($quote), 'sort' => 600, 'part' => 'group' ], 'having' => [ 'renderer' => new \Magento\Framework\DB\Select\HavingRenderer(), 'sort' => 700, 'part' => 'having' ], 'order' => [ 'renderer' => new \Magento\Framework\DB\Select\OrderRenderer($quote), 'sort' => 800, 'part' => 'order' ], 'limit' => [ 'renderer' => new \Magento\Framework\DB\Select\LimitRenderer(), 'sort' => 900, 'part' => 'limitcount' ], 'for_update' => [ 'renderer' => new \Magento\Framework\DB\Select\ForUpdateRenderer(), 'sort' => 1000, 'part' => 'forupdate' ], ] ) ); $objectManagerProvider = $this->serviceLocator->get(\Magento\Setup\Model\ObjectManagerProvider::class); $mysqlFactory = new \Magento\Framework\DB\Adapter\Pdo\MysqlFactory($objectManagerProvider->get()); $resourceInstance = new Mysql($connectionConfig, $mysqlFactory); return $resourceInstance->getConnection( $this->serviceLocator->get(\Magento\Framework\DB\Logger\Quiet::class), $selectFactory ); } }