getPlatform()->getName(); switch ($platformName) { case 'MySQL': return new MysqlMetadata($adapter); case 'SQLServer': return new SqlServerMetadata($adapter); case 'SQLite': return new SqliteMetadata($adapter); case 'PostgreSQL': return new PostgresqlMetadata($adapter); case 'Oracle': return new OracleMetadata($adapter); default: throw new InvalidArgumentException("Unknown adapter platform '{$platformName}'"); } } }