_objectManager = $objectManager; $this->_allowedTypes = [ self::TYPE_DB, self::TYPE_FILESYSTEM, self::TYPE_SYSTEM_SNAPSHOT, self::TYPE_MEDIA, self::TYPE_SNAPSHOT_WITHOUT_MEDIA, ]; } /** * Create new backup instance * * @param string $type * @return BackupInterface * @throws LocalizedException */ public function create($type) { if (!in_array($type, $this->_allowedTypes)) { throw new LocalizedException( new Phrase( 'Current implementation not supported this type (%1) of backup.', [$type] ) ); } $class = 'Magento\Framework\Backup\\' . ucfirst($type); return $this->_objectManager->create($class); } }