<?php 
 
declare(strict_types=1); 
 
namespace MySQLReplication\BinLog; 
 
use MySQLReplication\Exception\MySQLReplicationException; 
 
enum BinLogAuthPluginMode: string 
{ 
    case MysqlNativePassword = 'mysql_native_password'; 
    case CachingSha2Password = 'caching_sha2_password'; 
 
    public static function make(string $authPluginName): self 
    { 
        $authPlugin = self::tryFrom($authPluginName); 
        if ($authPlugin === null) { 
            throw new MySQLReplicationException( 
                MySQLReplicationException::BINLOG_AUTH_NOT_SUPPORTED, 
                MySQLReplicationException::BINLOG_AUTH_NOT_SUPPORTED_CODE 
            ); 
        } 
 
        return $authPlugin; 
    } 
} 
 
 |