From b7d101cdfb8947326391b3caba80d8cf325e7bf2 Mon Sep 17 00:00:00 2001 From: Romain Quetiez Date: Tue, 27 Sep 2016 14:42:35 +0000 Subject: [PATCH] Optimization: cache icons files (scan directories for the Icon selection edition widget) benefiting to each dashboard page (20% faster with PHP7 + OpCache + APCu) SVN:trunk[4423] --- application/forms.class.inc.php | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/application/forms.class.inc.php b/application/forms.class.inc.php index 5493171e4..8021d5e93 100644 --- a/application/forms.class.inc.php +++ b/application/forms.class.inc.php @@ -1367,6 +1367,29 @@ class RunTimeIconSelectionField extends DesignerIconSelectionField } static protected function FindIconsOnDisk($sBaseDir, $sDir = '') + { + $sKey = md5($sBaseDir.'/'.$sDir); + $sCacheFile = utils::GetCachePath().'available-icons-'.$sKey.'.php'; + if (file_exists($sCacheFile)) + { + require_once($sCacheFile); + $aFiles = AvailableIcons::$aIconFiles; + } + else + { + $aFiles = self::_FindIconsOnDisk($sBaseDir, $sDir); + $sAvailableIcons = '