diff options
author | Frédéric Guillot <fred@kanboard.net> | 2018-06-21 14:13:41 -0700 |
---|---|---|
committer | Frédéric Guillot <fred@kanboard.net> | 2018-06-21 14:13:41 -0700 |
commit | a491348d442ab8e6cd2fa403d4365cdad78e52ce (patch) | |
tree | a00f575d82afb2c9051bad95398b4250f4a3d44d /libs/picodb/lib/PicoDb/DriverFactory.php | |
parent | c73ac5f1f818b6b21083f6785b4b2f6d778a6496 (diff) |
Vendoring deprecated composer libs
Diffstat (limited to 'libs/picodb/lib/PicoDb/DriverFactory.php')
-rw-r--r-- | libs/picodb/lib/PicoDb/DriverFactory.php | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/libs/picodb/lib/PicoDb/DriverFactory.php b/libs/picodb/lib/PicoDb/DriverFactory.php new file mode 100644 index 00000000..13151ba7 --- /dev/null +++ b/libs/picodb/lib/PicoDb/DriverFactory.php @@ -0,0 +1,45 @@ +<?php + +namespace PicoDb; + +use LogicException; +use PicoDb\Driver\Mssql; +use PicoDb\Driver\Mysql; +use PicoDb\Driver\Postgres; +use PicoDb\Driver\Sqlite; + +/** + * Class DriverFactory + * + * @package PicoDb + * @author Frederic Guillot + */ +class DriverFactory +{ + /** + * Get database driver from settings or environment URL + * + * @access public + * @param array $settings + * @return Mssql|Mysql|Postgres|Sqlite + */ + public static function getDriver(array $settings) + { + if (! isset($settings['driver'])) { + throw new LogicException('You must define a database driver'); + } + + switch ($settings['driver']) { + case 'sqlite': + return new Sqlite($settings); + case 'mssql': + return new Mssql($settings); + case 'mysql': + return new Mysql($settings); + case 'postgres': + return new Postgres($settings); + default: + throw new LogicException('This database driver is not supported'); + } + } +} |