Skip to content

Commit

Permalink
SQLiteJournal: checking for extension pdo_sqlite is lazy, service cac…
Browse files Browse the repository at this point in the history
…he.journal is created always
  • Loading branch information
dg committed Jul 18, 2016
1 parent 9a41df4 commit 7212326
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 11 deletions.
3 changes: 3 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@
"latte/latte": "~2.4",
"tracy/tracy": "^2.4"
},
"suggest": {
"ext-pdo_sqlite": "to use SQLiteStorage or SQLiteJournal"
},
"conflict": {
"nette/nette": "<2.2"
},
Expand Down
12 changes: 4 additions & 8 deletions src/Bridges/CacheDI/CacheExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,20 +29,16 @@ public function loadConfiguration()
{
$builder = $this->getContainerBuilder();

if (extension_loaded('pdo_sqlite')) {
$builder->addDefinition($this->prefix('journal'))
->setClass(Nette\Caching\Storages\IJournal::class)
->setFactory(Nette\Caching\Storages\SQLiteJournal::class, [$this->tempDir . '/cache/journal.s3db']);
}
$builder->addDefinition($this->prefix('journal'))
->setClass(Nette\Caching\Storages\IJournal::class)
->setFactory(Nette\Caching\Storages\SQLiteJournal::class, [$this->tempDir . '/cache/journal.s3db']);

$builder->addDefinition($this->prefix('storage'))
->setClass(Nette\Caching\IStorage::class)
->setFactory(Nette\Caching\Storages\FileStorage::class, [$this->tempDir . '/cache']);

if ($this->name === 'cache') {
if (extension_loaded('pdo_sqlite')) {
$builder->addAlias('nette.cacheJournal', $this->prefix('journal'));
}
$builder->addAlias('nette.cacheJournal', $this->prefix('journal'));
$builder->addAlias('cacheStorage', $this->prefix('storage'));
}
}
Expand Down
7 changes: 4 additions & 3 deletions src/Caching/Storages/SQLiteJournal.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,16 @@ class SQLiteJournal implements IJournal
*/
public function __construct($path)
{
if (!extension_loaded('pdo_sqlite')) {
throw new Nette\NotSupportedException('SQLiteJournal requires PHP extension pdo_sqlite which is not loaded.');
}
$this->path = $path;
}


private function open()
{
if (!extension_loaded('pdo_sqlite')) {
throw new Nette\NotSupportedException('SQLiteJournal requires PHP extension pdo_sqlite which is not loaded.');
}

if ($this->path !== ':memory:' && !is_file($this->path)) {
touch($this->path); // ensures ordinary file permissions
}
Expand Down

0 comments on commit 7212326

Please sign in to comment.