use Drupal\Core\Language\LanguageInterface;
/**
* Generates a machine name from a string.
*
* This is basically the same as what is done in
* \Drupal\Core\Block\BlockBase::getMachineNameSuggestion() and
* \Drupal\system\MachineNameController::transliterate(), but it seems
* that so far there is no common service for handling this.
*
* @param string $string
*
* @return string
*
* @see \Drupal\Core\Block\BlockBase::getMachineNameSuggestion()
* @see \Drupal\system\MachineNameController::transliterate()
*/
protected function getMachineName($string) {
$transliterated = \Drupal::transliteration()->transliterate($string, LanguageInterface::LANGCODE_DEFAULT, '_');
$transliterated = mb_strtolower($transliterated);
$transliterated = preg_replace('@[^a-z0-9_.]+@', '_', $transliterated);
return $transliterated;
}