/** * @return array */ public function generate() { $result = ["swagger" => $this->swagger]; $result["info"] = $this->info !== null ? $this->info->generate() : null; $result = Generator::addItemToArrayIfNotEmpty($result, "host", $this->host); $result = Generator::addItemToArrayIfNotEmpty($result, "basePath", $this->basePath); $result = Generator::addItemToArrayIfNotEmpty($result, "schemes", $this->schemes); $result = Generator::addItemToArrayIfNotEmpty($result, "consumes", $this->consumes); $result = Generator::addItemToArrayIfNotEmpty($result, "produces", $this->produces); foreach ($this->tags as $tag) { $result = Generator::pushGeneratableToArrayKeyIfNotEmpty($result, "tags", $tag); } $result["paths"] = $this->paths !== null ? $this->paths->generate() : null; $result = Generator::addGeneratableToArrayIfNotEmpty($result, "definitions", $this->definitions); $result = Generator::addGeneratableToArrayIfNotEmpty($result, "parameters", $this->parameters); $result = Generator::addGeneratableToArrayIfNotEmpty($result, "responses", $this->responses); $result = Generator::addGeneratableToArrayIfNotEmpty($result, "securityDefinitions", $this->securityDefinitions); foreach ($this->security as $security) { $result = Generator::pushGeneratableToArrayKeyIfNotEmpty($result, "security", $security); } $result = Generator::addGeneratableToArrayIfNotEmpty($result, "externalDocs", $this->externalDocs); if ($this->cache !== null) { $this->cache->save($this->cacheId, $result); } return $result; }