code: public function render(ElementInterface $oElement)
      {
          // Add form-controll class
          $sElementType = $oElement->getAttribute('type');
          if (!in_array($sElementType, $this->options->getIgnoredViewHelpers()) &&
              !($oElement instanceof Collection)
          ) {
              if ($sElementClass = $oElement->getAttribute('class')) {
                  if (!preg_match('/(\s|^)form-control(\s|$)/', $sElementClass)) {
                      $oElement->setAttribute('class', trim($sElementClass . ' form-control'));
                  }
              } else {
                  $oElement->setAttribute('class', 'form-control');
              }
          }
  
          $sMarkup = parent::render($oElement);
  
          // Addon prepend
          if ($aAddOnPrepend = $oElement->getOption('add-on-prepend')) {
              $sMarkup = $this->renderAddOn($aAddOnPrepend) . $sMarkup;
          }
  
          // Addon append
          if ($aAddOnAppend = $oElement->getOption('add-on-append')) {
              $sMarkup .= $this->renderAddOn($aAddOnAppend);
          }
  
          if ($aAddOnAppend || $aAddOnPrepend) {
              $sSpecialClass = '';
              // Input size
              if ($sElementClass = $oElement->getAttribute('class')) {
                  if (preg_match('/(\s|^)input-lg(\s|$)/', $sElementClass)) {
                      $sSpecialClass .= ' input-group-lg';
                  } elseif (preg_match('/(\s|^)input-sm(\s|$)/', $sElementClass)) {
                      $sSpecialClass .= ' input-group-sm';
                  }
              }
              return sprintf(
                  static::$inputGroupFormat,
                  trim($sSpecialClass),
                  $sMarkup
              );
          }
          return $sMarkup;
      }
docs: Render an element
  @param ElementInterface $oElement
  @return string