123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- <?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))
- {
- if (is_null($config = Config::get('db.connections.'.$connection)))
- {
- throw new \Exception("Database connection [$connection] is not defined.");
- }
- static::$connections[$connection] = new Connection($connection, (object) $config, 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);
- }
- }
|