1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- <?php namespace System\DB;
- use System\Config;
- class Manager {
- /**
- * The established database connections.
- *
- * @var array
- */
- public static $connections = array();
- /**
- * Get a database connection. If no database name is specified, the default
- * connection will be returned as defined in the db configuration file.
- *
- * Note: Database connections are managed as singletons.
- *
- * @param string $connection
- * @return Connection
- */
- public static function connection($connection = null)
- {
- if (is_null($connection))
- {
- $connection = Config::get('db.default');
- }
- if ( ! array_key_exists($connection, static::$connections))
- {
- $config = Config::get('db.connections');
- if ( ! array_key_exists($connection, $config))
- {
- throw new \Exception("Database connection [$connection] is not defined.");
- }
- static::$connections[$connection] = new Connection($connection, (object) $config[$connection], new Connector);
- }
- return static::$connections[$connection];
- }
- /**
- * Begin a fluent query against a table.
- *
- * @param string $table
- * @param string $connection
- * @return Query
- */
- public static function table($table, $connection = null)
- {
- return static::connection($connection)->table($table);
- }
- /**
- * Magic Method for calling methods on the default database connection.
- */
- public static function __callStatic($method, $parameters)
- {
- return call_user_func_array(array(static::connection(), $method), $parameters);
- }
- }
|