/** * Get an array of all available generators * @return array */ private function getGenerators() { if (self::$generators === null) { $query = $this->mDbSource; if (!$query instanceof ApiQuery) { // If the parent container of this pageset is not ApiQuery, // we must create it to get module manager $query = $this->getMain()->getModuleManager()->getModule('query'); } $gens = array(); $prefix = $query->getModulePath() . '+'; $mgr = $query->getModuleManager(); foreach ($mgr->getNamesWithClasses() as $name => $class) { if (is_subclass_of($class, 'ApiQueryGeneratorBase')) { $gens[$name] = $prefix . $name; } } ksort($gens); self::$generators = $gens; } return self::$generators; }