*/ class SynonymParser { /** * Parse the meilisearch synonyms response from an json string to an array. * * @param string $baseWord * @param string $jsonString * @return array */ public function parseJson($baseWord, $jsonString) { $decodedResponse = json_decode($jsonString); $synonyms = []; if (!empty($baseWord)) { if (is_array($decodedResponse->{$baseWord})) { $synonyms = $decodedResponse->{$baseWord}; } } else { if (isset($decodedResponse->synonymMappings->managedMap)) { $synonyms = (array)$decodedResponse->synonymMappings->managedMap; } } return $synonyms; } /** * @param string $baseWord * @param array $synonyms * @return string * @throws \Apache_Meilisearch_InvalidArgumentException */ public function toJson($baseWord, $synonyms) { if (empty($baseWord) || empty($synonyms)) { throw new \Apache_Meilisearch_InvalidArgumentException('Must provide base word and synonyms.'); } return json_encode([$baseWord => $synonyms]); } }