/** * Prepare the database connection instance. * * @param \Illuminate\Database\Connection $connection * @return \Illuminate\Database\Connection */ protected function prepare(Connection $connection) { $connection->setFetchMode($this->app['config']['database.fetch']); if ($this->app->bound('events')) { $connection->setEventDispatcher($this->app['events']); } // The database connection can also utilize a cache manager instance when cache // functionality is used on queries, which provides an expressive interface // to caching both fluent queries and Eloquent queries that are executed. $app = $this->app; $connection->setCacheManager(function () use($app) { return $app['cache']; }); // We will setup a Closure to resolve the paginator instance on the connection // since the Paginator isn't used on every request and needs quite a few of // our dependencies. It'll be more efficient to lazily resolve instances. $connection->setPaginator(function () use($app) { return $app['paginator']; }); // Here we'll set a reconnector callback. This reconnector can be any callable // so we will set a Closure to reconnect from this manager with the name of // the connection, which will allow us to reconnect from the connections. $connection->setReconnector(function ($connection) { $this->reconnect($connection->getName()); }); return $connection; }
public function __construct(Connection $connection, RepositoryContract $config) { $dbconfig = $config->get('database.connections.' . $connection->getName()); $this->dsn = static::parseDSN($dbconfig); $this->username = $dbconfig['username']; $this->password = $dbconfig['password']; }
/** * Generate the unique cache key for the query. * * @return string */ public function generateCacheKey() { $name = $this->connection->getName(); return md5($name . $this->toSql() . serialize($this->bindings)); }
/** * Prepare the database connection instance. * * @param \Illuminate\Database\Connection $connection * @return \Illuminate\Database\Connection */ protected function prepare(Connection $connection) { $connection->setFetchMode($this->app['config']['database.fetch']); if ($this->app->bound('events')) { $connection->setEventDispatcher($this->app['events']); } // Here we'll set a reconnector callback. This reconnector can be any callable // so we will set a Closure to reconnect from this manager with the name of // the connection, which will allow us to reconnect from the connections. $connection->setReconnector(function ($connection) { $this->reconnect($connection->getName()); }); return $connection; }
/** * Create a new event instance. * * @param \Illuminate\Database\Connection $connection * @return void */ public function __construct($connection) { $this->connection = $connection; $this->connectionName = $connection->getName(); }