public function execute() { $params = $this->extractRequestParams(); $search = $params['search']; $limit = $params['limit']; $namespaces = $params['namespace']; $suggest = $params['suggest']; // Some script that was loaded regardless of wgEnableOpenSearchSuggest, likely cached. if ($suggest && !$this->getConfig()->get('EnableOpenSearchSuggest')) { $searches = array(); } else { // Open search results may be stored for a very long time $this->getMain()->setCacheMaxAge($this->getConfig()->get('SearchSuggestCacheExpiry')); $this->getMain()->setCacheMode('public'); $searcher = new StringPrefixSearch(); $searches = $searcher->searchWithVariants($search, $limit, $namespaces); } // Set top level elements $result = $this->getResult(); $result->addValue(null, 0, $search); $result->addValue(null, 1, $searches); }