protected function SqliteProfilerStorage::initDb in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/symfony/http-kernel/Profiler/SqliteProfilerStorage.php \Symfony\Component\HttpKernel\Profiler\SqliteProfilerStorage::initDb()
Throws
\RuntimeException When neither of SQLite3 or PDO_SQLite extension is enabled
Overrides PdoProfilerStorage::initDb
File
- vendor/
symfony/ http-kernel/ Profiler/ SqliteProfilerStorage.php, line 24
Class
- SqliteProfilerStorage
- SqliteProfilerStorage stores profiling information in a SQLite database.
Namespace
Symfony\Component\HttpKernel\ProfilerCode
protected function initDb() {
if (null === $this->db || $this->db instanceof \SQLite3) {
if (0 !== strpos($this->dsn, 'sqlite')) {
throw new \RuntimeException(sprintf('Please check your configuration. You are trying to use Sqlite with an invalid dsn "%s". The expected format is "sqlite:/path/to/the/db/file".', $this->dsn));
}
if (class_exists('SQLite3')) {
$db = new \SQLite3(substr($this->dsn, 7, strlen($this->dsn)), \SQLITE3_OPEN_READWRITE | \SQLITE3_OPEN_CREATE);
if (method_exists($db, 'busyTimeout')) {
// busyTimeout only exists for PHP >= 5.3.3
$db
->busyTimeout(1000);
}
}
elseif (class_exists('PDO') && in_array('sqlite', \PDO::getAvailableDrivers(), true)) {
$db = new \PDO($this->dsn);
}
else {
throw new \RuntimeException('You need to enable either the SQLite3 or PDO_SQLite extension for the profiler to run properly.');
}
$db
->exec('PRAGMA temp_store=MEMORY; PRAGMA journal_mode=MEMORY;');
$db
->exec('CREATE TABLE IF NOT EXISTS sf_profiler_data (token STRING, data STRING, ip STRING, method STRING, url STRING, time INTEGER, parent STRING, created_at INTEGER, status_code INTEGER)');
$db
->exec('CREATE INDEX IF NOT EXISTS data_created_at ON sf_profiler_data (created_at)');
$db
->exec('CREATE INDEX IF NOT EXISTS data_ip ON sf_profiler_data (ip)');
$db
->exec('CREATE INDEX IF NOT EXISTS data_method ON sf_profiler_data (method)');
$db
->exec('CREATE INDEX IF NOT EXISTS data_url ON sf_profiler_data (url)');
$db
->exec('CREATE INDEX IF NOT EXISTS data_parent ON sf_profiler_data (parent)');
$db
->exec('CREATE UNIQUE INDEX IF NOT EXISTS data_token ON sf_profiler_data (token)');
$this->db = $db;
}
return $this->db;
}