code: private function moveParamAnnotations($content)
      {
          $doc = new DocBlock($content);
          $params = $doc->getAnnotationsOfType('param');
  
          // nothing to do if there are no param annotations
          if (empty($params)) {
              return $content;
          }
  
          $others = $doc->getAnnotationsOfType(['throws', 'return']);
  
          if (empty($others)) {
              return $content;
          }
  
          // get the index of the final line of the final param annotation
          $end = end($params)->getEnd();
  
          $line = $doc->getLine($end);
  
          // move stuff about if required
          foreach ($others as $other) {
              if ($other->getStart() < $end) {
                  // we're doing this to maintain the original line indexes
                  $line->setContent($line->getContent().$other->getContent());
                  $other->remove();
              }
          }
  
          return $doc->getContent();
      }
docs: Move all param annotations in before throws and return annotations.
  
  @param string $content
  
  @return string