![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/vendor/voku/stop-words/src/voku/helper/ |
<?php declare(strict_types=1); namespace voku\helper; /** * Phonetic-Helper-Class * * @package voku\helper */ final class StopWords { /** * @var array */ private static $availableLanguages = array( 'ar', 'bg', 'ca', 'cz', 'da', 'de', 'el', 'en', 'eo', 'es', 'et', 'fi', 'fr', 'hi', 'hr', 'hu', 'id', 'it', 'ka', 'lt', 'lv', 'nl', 'no', 'pl', 'pt', 'ro', 'ru', 'sk', 'sv', 'tr', 'uk', 'vi' ); /** * @var array */ private $stopWords = array(); /** * Load language-data from one language. * * @param string $language * * @throws StopWordsLanguageNotExists */ private function loadLanguageData(string $language = 'de') { if (\in_array($language, self::$availableLanguages, true) === false) { throw new StopWordsLanguageNotExists('language not supported: ' . $language); } $this->stopWords[$language] = $this->getData($language); } /** * Get data from "/data/*.php". * * @param string $file * * @return array <p>Will return an empty array on error.</p> */ 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; } }