mirror of
https://github.com/e107inc/e107.git
synced 2025-08-19 12:51:52 +02:00
Restored JSON core image generator for performance
PDO SQLite was performing unacceptably poorly. Let's just load the entire integrity image into RAM…
This commit is contained in:
@@ -16,8 +16,12 @@ require_once("e_file_inspector_interface.php");
|
||||
*/
|
||||
abstract class e_file_inspector implements e_file_inspector_interface
|
||||
{
|
||||
protected $currentVersion;
|
||||
private $validatedBitmask;
|
||||
|
||||
protected $defaultDirsCache;
|
||||
protected $customDirsCache;
|
||||
|
||||
/**
|
||||
* Check the integrity of the provided path
|
||||
*
|
||||
@@ -105,10 +109,12 @@ abstract class e_file_inspector implements e_file_inspector_interface
|
||||
*/
|
||||
public function getCurrentVersion()
|
||||
{
|
||||
if ($this->currentVersion) return $this->currentVersion;
|
||||
|
||||
$checksums = $this->getChecksums("index.php");
|
||||
$versions = array_keys($checksums);
|
||||
usort($versions, 'version_compare');
|
||||
return array_pop($versions);
|
||||
return $this->currentVersion = array_pop($versions);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -138,6 +144,27 @@ abstract class e_file_inspector implements e_file_inspector_interface
|
||||
return false;
|
||||
}
|
||||
|
||||
protected function pathToDefaultPath($path)
|
||||
{
|
||||
if (!$this->customDirsCache)
|
||||
{
|
||||
$this->defaultDirsCache = e107::getInstance()->defaultDirs();
|
||||
$customDirs = e107::getInstance()->e107_dirs ? e107::getInstance()->e107_dirs : [];
|
||||
$this->customDirsCache = array_diff_assoc($customDirs, $this->defaultDirsCache);
|
||||
}
|
||||
foreach ($this->customDirsCache as $dirType => $customDir)
|
||||
{
|
||||
if (!isset($this->defaultDirsCache[$dirType])) continue;
|
||||
|
||||
$defaultDir = $this->defaultDirsCache[$dirType];
|
||||
if ($customDir === $defaultDir) continue;
|
||||
|
||||
if (substr($path, 0, strlen($customDir)) === $customDir)
|
||||
$path = $defaultDir . substr($path, strlen($customDir));
|
||||
}
|
||||
return $path;
|
||||
}
|
||||
|
||||
private function getValidatedBitmask()
|
||||
{
|
||||
if ($this->validatedBitmask !== null) return $this->validatedBitmask;
|
||||
|
Reference in New Issue
Block a user