From 9ec0a61156192484ca90a8dc88b7c23b26129755 Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Sat, 2 Sep 2017 15:10:44 +0200 Subject: Performances: reorder links when they're written instead of read relates to #891 --- application/LinkDB.php | 17 ++++++++--------- application/Updater.php | 8 ++++++++ 2 files changed, 16 insertions(+), 9 deletions(-) (limited to 'application') diff --git a/application/LinkDB.php b/application/LinkDB.php index 22c1f0ab..eace625e 100644 --- a/application/LinkDB.php +++ b/application/LinkDB.php @@ -289,13 +289,15 @@ You use the community supported version of the original Shaarli project, by Seba return; } + $this->urls = []; + $this->ids = []; $this->links = FileUtils::readFlatDB($this->datastore, []); $toremove = array(); foreach ($this->links as $key => &$link) { if (! $this->loggedIn && $link['private'] != 0) { // Transition for not upgraded databases. - $toremove[] = $key; + unset($this->links[$key]); continue; } @@ -329,14 +331,10 @@ You use the community supported version of the original Shaarli project, by Seba } $link['shorturl'] = smallHash($link['linkdate']); } - } - // If user is not logged in, filter private links. - foreach ($toremove as $offset) { - unset($this->links[$offset]); + $this->urls[$link['url']] = $key; + $this->ids[$link['id']] = $key; } - - $this->reorder(); } /** @@ -346,6 +344,7 @@ You use the community supported version of the original Shaarli project, by Seba */ private function write() { + $this->reorder(); FileUtils::writeFlatDB($this->datastore, $this->links); } @@ -528,8 +527,8 @@ You use the community supported version of the original Shaarli project, by Seba return $a['created'] < $b['created'] ? 1 * $order : -1 * $order; }); - $this->urls = array(); - $this->ids = array(); + $this->urls = []; + $this->ids = []; foreach ($this->links as $key => $link) { $this->urls[$link['url']] = $key; $this->ids[$link['id']] = $key; diff --git a/application/Updater.php b/application/Updater.php index 40a15906..0702158a 100644 --- a/application/Updater.php +++ b/application/Updater.php @@ -436,6 +436,14 @@ class Updater } return true; } + + /** + * Save the datastore -> the link order is now applied when links are saved. + */ + public function updateMethodReorderDatastore() + { + $this->linkDB->save($this->conf->get('resource.page_cache')); + } } /** -- cgit v1.2.3