/**
  * @param string|array $match
  * @param BaseEntity $entity
  * @param Control $controlContainer
  * @param $vars
  * @param $useControl
  * @return mixed
  */
 private function getReplacement($match, $entity, $controlContainer, $vars, $useControl)
 {
     if ($match === 'controls') {
         // Unter-Controls ausgeben
         return $controlContainer->renderChildren();
     } elseif (is_array($match)) {
         if (array_key_exists($match[0], $vars)) {
             // Zusammengesetzter Wert
             $variable = $match[0];
             $property = $match[1];
             return $vars[$variable]->{$property};
         } elseif (Configuration::get($match[0] . '.' . $match[1]) !== null) {
             // Konfigurations-Wert
             return Configuration::get($match[0] . '.' . $match[1]);
         }
     } elseif (array_key_exists($match, $vars)) {
         // Ein Wert im Variablen-Array
         return $this->getWertFromVars($match, $vars);
     } elseif ($entity !== null && $match === $entity->primaryKey) {
         // Primärschlüssel des Entity
         return $entity->id;
     } elseif ($controlContainer !== null && $controlContainer->get($match) !== null) {
         // Control ausgeben [nur HTML]
         return $controlContainer->get($match)->toHtml();
     } elseif ($entity !== null && $entity->hasField($match)) {
         // String-Repräsentation eines Felds [oder das Control]
         return $this->getWertFromEntity($match, $entity, $useControl);
     } elseif ($entity !== null && $entity->getParserText($match) !== '') {
         // Text aus dem Entity
         return $entity->getParserText($match);
     }
     return '';
 }