72 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php namespace Illuminate\Database\Connectors;
 | |
| 
 | |
| use PDO;
 | |
| 
 | |
| class Connector {
 | |
| 
 | |
| 	/**
 | |
| 	 * The default PDO connection options.
 | |
| 	 *
 | |
| 	 * @var array
 | |
| 	 */
 | |
| 	protected $options = array(
 | |
| 		PDO::ATTR_CASE => PDO::CASE_NATURAL,
 | |
| 		PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
 | |
| 		PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL,
 | |
| 		PDO::ATTR_STRINGIFY_FETCHES => false,
 | |
| 		PDO::ATTR_EMULATE_PREPARES => false,
 | |
| 	);
 | |
| 
 | |
| 	/**
 | |
| 	 * Get the PDO options based on the configuration.
 | |
| 	 *
 | |
| 	 * @param  array  $config
 | |
| 	 * @return array
 | |
| 	 */
 | |
| 	public function getOptions(array $config)
 | |
| 	{
 | |
| 		$options = array_get($config, 'options', array());
 | |
| 
 | |
| 		return array_diff_key($this->options, $options) + $options;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Create a new PDO connection.
 | |
| 	 *
 | |
| 	 * @param  string  $dsn
 | |
| 	 * @param  array   $config
 | |
| 	 * @param  array   $options
 | |
| 	 * @return \PDO
 | |
| 	 */
 | |
| 	public function createConnection($dsn, array $config, array $options)
 | |
| 	{
 | |
| 		$username = array_get($config, 'username');
 | |
| 
 | |
| 		$password = array_get($config, 'password');
 | |
| 
 | |
| 		return new PDO($dsn, $username, $password, $options);
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Get the default PDO connection options.
 | |
| 	 *
 | |
| 	 * @return array
 | |
| 	 */
 | |
| 	public function getDefaultOptions()
 | |
| 	{
 | |
| 		return $this->options;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Set the default PDO connection options.
 | |
| 	 *
 | |
| 	 * @param  array  $options
 | |
| 	 * @return void
 | |
| 	 */
 | |
| 	public function setDefaultOptions(array $options)
 | |
| 	{
 | |
| 		$this->options = $options;
 | |
| 	}
 | |
| 
 | |
| }
 |