ConnectionFactory.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace app\framework\Database\Connectors;
  3. use app\framework\Database\MySqlConnection;
  4. use Illuminate\Database\PostgresConnection;
  5. use Illuminate\Database\SQLiteConnection;
  6. use Illuminate\Database\SqlServerConnection;
  7. class ConnectionFactory extends \Illuminate\Database\Connectors\ConnectionFactory
  8. {
  9. /**
  10. * Create a new connection instance.
  11. *
  12. * @param string $driver
  13. * @param \PDO|\Closure $connection
  14. * @param string $database
  15. * @param string $prefix
  16. * @param array $config
  17. * @return \Illuminate\Database\Connection
  18. *
  19. * @throws \InvalidArgumentException
  20. */
  21. protected function createConnection($driver, $connection, $database, $prefix = '', array $config = [])
  22. {
  23. if ($this->container->bound($key = "db.connection.{$driver}")) {
  24. return $this->container->make($key, [$connection, $database, $prefix, $config]);
  25. }
  26. switch ($driver) {
  27. case 'mysql':
  28. return new MySqlConnection($connection, $database, $prefix, $config);
  29. case 'pgsql':
  30. return new PostgresConnection($connection, $database, $prefix, $config);
  31. case 'sqlite':
  32. return new SQLiteConnection($connection, $database, $prefix, $config);
  33. case 'sqlsrv':
  34. return new SqlServerConnection($connection, $database, $prefix, $config);
  35. }
  36. throw new \InvalidArgumentException("Unsupported driver [$driver]");
  37. }
  38. }