* @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:----mFO/GRKKDzESByhuZhjNF/GaaCYh03uSnG02+26CT2n5zRFrUBNd3J//2H8VmxeCRpAbOZvN4r4rI1+jP1FwXID3Pg7r3kzdlqyM82BLdmGwEBFwDJey2/7uTJP230jIZa1UwoT1yFrwtBpwSCzvPU6SEWMI0/f09j2OaWVPR1Tr0G6zbITXARU45+BQzpH4jK09WFxlbyhYovA+1FArZy8GFNfSzyf/kjmbhp1C6LxR+SmE382rOkiPIrxgWN/K6ChuYIPVMsWAfb4ZidU94F2mIw/sw+q0KFSMmEOh7X3Mqu2grByf38o/tAHzfrtNglGJuKCoqdjBsbkLh14Sas61i0TRYG2Vd7VjjKzdvfzZvKkUhAKJlafVD1Xu59b0sgLfx9IeGt7IKSZuF7izX/4mxMwScusQFfdQZKyrOQ6cX77xOVHl/VgnnumpbNKqRsndkYJH2IHhCdjtBz6muwsmPB+nn7yz4cvklZ65Qx8H9AFK1UvHCwwGGG+dday5pbdjAdd7khi3krwDNdnsSgOp51desyttFB58wyoKnuAiHn1Y6ClvruGHuSfQO1Plvgc7BMHKqwjnxuesSOMcsWhRYyL6jWNuVoVuznkj/3sGX5uYvqOR356gRuPK/7sbtaKGSGXjw5cR69/tJ/RL4CIjAkd0i8UdiZ6K77+fxQc=----ATTACHMENT:----NDY4ODcyNTQ5NjY4MDAxMCA5OTc2MTg2NTk0NzcyODQ4IDM4MTQ4OTI2Mjc1MTQwMDg=