setLocale($locale); } if (AppServices::get('request') instanceof IncomingRequest) { $requestLocale = AppServices::get('request')->getLocale(); } else { $requestLocale = Locale::getDefault(); } // Use '?:' for empty string check $locale = $locale ?: $requestLocale; return new MY_Language($locale); } public static function pluginManager(bool $getShared = true): PluginManager { if ($getShared) { return static::getSharedInstance('pluginManager'); } $manager = new PluginManager(); if ($manager->canLoadPlugins()) { $manager->discoverPlugins(); $manager->registerPluginEvents(); } else { log_message('debug', 'PluginManager: skipping init, plugin_config table not found.'); } return $manager; } private static HTMLPurifier $htmlPurifier; public static function htmlPurifier($getShared = true): object { if ($getShared) { return static::getSharedInstance('htmlPurifier'); } if (!isset(static::$htmlPurifier)) { $config = HTMLPurifier_Config::createDefault(); static::$htmlPurifier = new HTMLPurifier($config); } return static::$htmlPurifier; } }