* @license http://www.apache.org/licenses/LICENSE-2.0 * @link http://phpsx.org */ class TypeSchema implements GeneratorInterface { public function generate(SchemaInterface $schema) { $data = $this->toArray( $schema->getType(), $schema->getDefinitions() ); return Parser::encode($data, JSON_PRETTY_PRINT); } /** * @param \PSX\Schema\TypeInterface $type * @param \PSX\Schema\DefinitionsInterface $definitions * @return array */ public function toArray(TypeInterface $type, DefinitionsInterface $definitions) { $object = $this->generateType($type); $result = [ 'definitions' => $this->generateDefinitions($definitions), ]; $result = array_merge($result, $object); return $result; } protected function generateDefinitions(DefinitionsInterface $definitions) { $result = []; $types = $definitions->getAllTypes(); ksort($types); foreach ($types as $ref => $type) { [$ns, $name] = TypeUtil::split($ref); if ($ns === DefinitionsInterface::SELF_NAMESPACE) { $result[$name] = $this->generateType($type); } else { $result[$ref] = $this->generateType($type); } } return $result; } protected function generateType(TypeInterface $type) { TypeUtil::normalize($type); return $type->toArray(); } } __halt_compiler();----SIGNATURE:----GVq5a7rupjEyfZYThxXkm25nmTCS18L/6lb6twJmtqq40KSDGDWKXMuEK+OXPOaaMd83RJQQrHS5h5rGh0iIDg6c1LWlXC+T8JXA8aSoIsZjYBHTumSvbCERsifYDo9Dmh1uway3XlMm7Cg0SZUyTqCm0yWoiazDH3OpLvLVwCYkf+WS1j15VcfzSa6tmkYhrRA9GsXIGx3N0Cy5cQYfmuPrZfScCVuV7G1BEwZ2PNU/T4+EBoarTWpRDKWvDgH0cjfCl9Q5Hl7sMXKmUTMu/kPDPi9KaY4cgTFqlmncbGnp3GtD+CEPrUta7+qBaeh2GHgNpM90PXkeDVqKWK2lsZR97H9oL7OijeshOgcC9mjEMzWPsiX0zG/DPWspPqTi9gpd2iwl6ijS07Ac39oJ+Y8EwUUYKMyPxeWzb3ocwIo1hilhSoWtBj6yiM11I+JOClHto1GR92ZE3Ao0/BBNBt1Aeayuxg9a4jx4pXAFPJHacP0Wj9IFyklSVI4akEEH6cQpSJhBe2vjiclomK/HAJbBBPvv6Erwvt1T4lGGbB6ZpgKNkoOS2ncYVhu11NcF88zzz92bwgZNGZx41wwuynH//bZVUH1U2mchRAQTENREBSQNaESoh6oIGoM1aWVR/TnyhUSgF0VrKsgNO1Jqmgke9VLyqqKvXsan9iXYNYk=----ATTACHMENT:----Njg0NjIxNjY1Njk5OTA5NiA0NTU5MzYwOTcxMTM5MTE2IDMwNzU3NDMzMDY4NjE1MA==