code: public function generateFromMetadata(array $metadata)
      {
          $this->metadata            = $metadata;
          $this->visitedAssociations = [];
          $str                       = [];
  
          foreach ($metadata as $class) {
              $parent = $this->getParent($class);
  
              if ($parent) {
                  $str[] = $this->getClassString($parent) . '^' . $this->getClassString($class);
              }
  
              $associations = $class->getAssociationNames();
  
              if (empty($associations) && ! isset($this->visitedAssociations[$class->getName()])) {
                  $str[] = $this->getClassString($class);
  
                  continue;
              }
  
              foreach ($associations as $associationName) {
                  if ($parent && in_array($associationName, $parent->getAssociationNames())) {
                      continue;
                  }
  
                  if ($this->visitAssociation($class->getName(), $associationName)) {
                      $str[] = $this->getAssociationString($class, $associationName);
                  }
              }
          }
  
          return implode(',', $str);
      }
docs: Generate a YUML compatible `dsl_text` to describe a given array
  of entities
  
  @param  $metadata \Doctrine\Common\Persistence\Mapping\ClassMetadata[]
  
  @return string