connector.php 890 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
<?php namespace Laravel\Database\Connectors; use PDO;

abstract class Connector {

	/**
	 * The PDO connection options.
	 *
	 * @var array
	 */
	protected $options = array(
			PDO::ATTR_CASE => PDO::CASE_LOWER,
			PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
			PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL,
			PDO::ATTR_STRINGIFY_FETCHES => false,
			PDO::ATTR_EMULATE_PREPARES => false,
	);

	/**
19
	 * Establish a PDO database connection.
20 21 22 23 24 25 26
	 *
	 * @param  array  $config
	 * @return PDO
	 */
	abstract public function connect($config);

	/**
27
	 * Get the PDO connection options for the configuration.
28 29 30 31 32 33 34 35 36 37
	 *
	 * Developer specified options will override the default connection options.
	 *
	 * @param  array  $config
	 * @return array
	 */
	protected function options($config)
	{
		$options = (isset($config['options'])) ? $config['options'] : array();

Taylor Otwell committed
38
		return $this->options + $options;
39 40 41
	}

}