private function text_optimize (Component $c)
  {
    $o    = [];
    $prev = null;
    if ($c->hasChildren ())
      foreach ($c->getChildren () as $child) {
        if ($prev
            && $prev instanceof Text
            && !$prev->getBindings ()
            && $child instanceof Text
            && !$child->getBindings ()
        ) {
          // safe to merge
          $prev->props->value .= $child->props->value;
          continue;
        }
        $o[]  = $child;
        $prev = $child;
      }
    $c->setChildren ($o);
  }
private function text_optimize (Component $c)
  {
    $o    = [];
    $prev = null;
    if ($c->hasChildren ())
      foreach ($c->getChildren () as $child) {
        if ($prev
            && $prev instanceof Text
            && !$prev->getBindings ()
            && $child instanceof Text
            && !$child->getBindings ()
        ) {
          // safe to merge
          $prev->props->value .= $child->props->value;
          continue;
        }
        $o[]  = $child;
        $prev = $child;
      }
    $c->setChildren ($o);
  }
private function text_optimize ( Component $ c ) { $ o = [ ] ; $ prev = null ; if ( $ c -> hasChildren ( ) ) foreach ( $ c -> getChildren ( ) as $ child ) { if ( $ prev && $ prev instanceof Text && ! $ prev -> getBindings ( ) && $ child instanceof Text && ! $ child -> getBindings ( ) ) { // safe to merge $ prev -> props -> value .= $ child -> props -> value ; continue ; } $ o [ ] = $ child ; $ prev = $ child ; } $ c -> setChildren ( $ o ) ; }
Merges adjacent Text children of the specified container whenever that merge can be safely done.

> Note: Although the parser doesn't generate redundant literals, they may occur after macro substitutions are
performed.

@param Component $c The container component.
Merges adjacent Text children of the specified container whenever that merge can be safely done .