/** * Get Setting object * @param string $module * @param string $key * @return CustomSetting */ public static function getCustomSetting($module, $key) { // Check cache if (Settings::isCacheEnabled()) { $cache_key = 'module_custom_settings_all'; $cacher = Cacher::getInstance()->getDefaultCacher(); if (!self::$cached_settings) { self::$cached_settings = $cacher->get($cache_key); } } if (!self::$cached_settings) { // To prevent more iterations self::$cached_settings['empty']['empty'] = ''; $settings = new CustomSettingRepository(); foreach ($settings->getAsArrayOfObjects() as $setting) { /** @var CustomSetting $setting */ self::$cached_settings[$setting->getModule()][$setting->getKey()] = $setting; } } // Save cache if (Settings::isCacheEnabled()) { $cacher->set($cache_key, self::$cached_settings, 86400); } return isset(self::$cached_settings[$module][$key]) ? self::$cached_settings[$module][$key] : NULL; }