objectManager = $objectManager; } /** * Create instance of Mysql adapter * * @param string $className * @param array $config * @param LoggerInterface|null $logger * @param SelectFactory|null $selectFactory * @return Mysql * @throws \InvalidArgumentException */ public function create( $className, array $config, LoggerInterface $logger = null, SelectFactory $selectFactory = null ) { if (!in_array(Mysql::class, class_parents($className, true) + [$className => $className])) { throw new \InvalidArgumentException('Invalid class, ' . $className . ' must extend ' . Mysql::class . '.'); } $arguments = [ 'config' => $config ]; if ($logger) { $arguments['logger'] = $logger; } if ($selectFactory) { $arguments['selectFactory'] = $selectFactory; } return $this->objectManager->create( $className, $arguments ); } }