<?php /** * Zend Framework (http://framework.zend.com/) * * @link http://github.com/zendframework/zf2 for the canonical source repository * @copyright Copyright (c) 2005-2016 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ namespace Zend\Db\Metadata\Source; use Zend\Db\Adapter\Adapter; use Zend\Db\Exception\InvalidArgumentException; use Zend\Db\Metadata\MetadataInterface; /** * Source metadata factory. */ class Factory { /** * Create source from adapter * * @param Adapter $adapter * @return MetadataInterface * @throws InvalidArgumentException If adapter platform name not recognized. */ public static function createSourceFromAdapter(Adapter $adapter) { $platformName = $adapter->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}'"); } } }