stopWords[$language] = $this->getData($language); } /** * Get data from "/data/*.php". * * @param string $file * * @return array
Will return an empty array on error.
*/ private function getData(string $file): array { static $RESULT_STOP_WORDS_CACHE = array(); if (isset($RESULT_STOP_WORDS_CACHE[$file])) { return $RESULT_STOP_WORDS_CACHE[$file]; } $file = __DIR__ . '/stopwords/' . $file . '.php'; if (file_exists($file)) { /** @noinspection PhpIncludeInspection */ $RESULT_STOP_WORDS_CACHE[$file] = require $file; } else { $RESULT_STOP_WORDS_CACHE[$file] = array(); } return $RESULT_STOP_WORDS_CACHE[$file]; } /** * Get the stop-words from one language. * * @param string $language * * @return array * * @throws StopWordsLanguageNotExists */ public function getStopWordsFromLanguage(string $language = 'de'): array { if (\in_array($language, self::$availableLanguages, true) === false) { throw new StopWordsLanguageNotExists('language not supported: ' . $language); } if (!isset($this->stopWords[$language])) { $this->loadLanguageData($language); } return $this->stopWords[$language]; } private function loadLanguageDataAll() { foreach (self::$availableLanguages as $language) { if (!isset($this->stopWords[$language])) { $this->loadLanguageData($language); } } } /** * Get all stop-words from all languages. * * @return array * * @throws StopWordsLanguageNotExists */ public function getStopWordsAll(): array { $this->loadLanguageDataAll(); return $this->stopWords; } }