protected function generateContentsFromResources(Collection $resources, $name) { $contents = ''; $contents .= $this->getFormat(); $contents .= $this->line(2); $contents .= sprintf('# %s', $name); $contents .= $this->line(2); $resources->each(function ($resource) use(&$contents) { if ($resource->getActions()->isEmpty()) { return; } $contents .= $resource->getDefinition(); if ($description = $resource->getDescription()) { $contents .= $this->line(); $contents .= $description; } if (($parameters = $resource->getParameters()) && !$parameters->isEmpty()) { $this->appendParameters($contents, $parameters); } $resource->getActions()->each(function ($action) use(&$contents, $resource) { $contents .= $this->line(2); $contents .= $action->getDefinition(); if ($description = $action->getDescription()) { $contents .= $this->line(); $contents .= $description; } if (($attributes = $action->getAttributes()) && !$attributes->isEmpty()) { $this->appendAttributes($contents, $attributes); } if (($parameters = $action->getParameters()) && !$parameters->isEmpty()) { $this->appendParameters($contents, $parameters); } if ($request = $action->getRequest()) { $this->appendRequest($contents, $request, $resource); } if ($response = $action->getResponse()) { $this->appendResponse($contents, $response, $resource); } if ($transaction = $action->getTransaction()) { foreach ($transaction->value as $value) { if ($value instanceof Annotation\Request) { $this->appendRequest($contents, $value, $resource); } elseif ($value instanceof Annotation\Response) { $this->appendResponse($contents, $value, $resource); } else { throw new RuntimeException('Unsupported annotation type given in transaction.'); } } } }); $contents .= $this->line(2); }); return stripslashes(trim($contents)); }