findByPayload($data); if ($stats) { $stats->count++; } else { $stats = new ImportStat(); $stats->payload = $data; $stats->count = 1; $stats->type = 'param'; $stats->save(); $stats->free(true); } } /** * Compute similars. * * @param string $name Name * @param string $function Function that determines similarity index */ public function similarity($name, $function = 'soundex') { $stats = new ImportStat(); $stats->param = call_user_func($function, $name); $stats->payload = $name; $stats->type = $function; $stats->save(); $stats->free(true); } /** * Compute soundex. * * @param string $name Name */ public function soundex($name) { $this->similarity($name); } /** * Compute metaphone. * * @param string $name Name */ public function metaphone($name) { $this->similarity($name, 'metaphone'); } /** * Compute similar words indexes. * * @param string $name Name */ public function similar($name) { $this->soundex($name); $this->metaphone($name); } }