public static function create(SerializerInterface $serializer, array $options = [])
{
$chainGuesser = ChainGuesserFactory::create($serializer);
$naming = new Naming();
$merger = new JsonSchemaMerger();
$resolver = new Resolver($serializer);
$dateFormat = isset($options['date-format']) ? $options['date-format'] : \DateTime::RFC3339;
$chainGuesser->addGuesser(new DateTimeGuesser($dateFormat));
$chainGuesser->addGuesser(new SimpleTypeGuesser());
$chainGuesser->addGuesser(new ArrayGuesser());
$chainGuesser->addGuesser(new MultipleGuesser());
$chainGuesser->addGuesser(new ObjectGuesser($naming, $resolver));
$chainGuesser->addGuesser(new DefinitionGuesser());
$chainGuesser->addGuesser(new ItemsGuesser());
$chainGuesser->addGuesser(new AnyOfGuesser());
$chainGuesser->addGuesser(new AllOfGuesser($resolver));
$chainGuesser->addGuesser(new OneOfGuesser());
$chainGuesser->addGuesser(new ObjectOneOfGuesser($merger, $resolver));
$chainGuesser->addGuesser(new PatternPropertiesGuesser());
$chainGuesser->addGuesser(new AdditionalItemsGuesser());
$chainGuesser->addGuesser(new AdditionalPropertiesGuesser());
return $chainGuesser;
}
public static function build($options = []) { $serializer = self::buildSerializer(); $chainGuesser = JsonSchemaGuesserFactory::create($serializer, $options); $naming = new Naming(); $modelGenerator = new ModelGenerator($naming, $chainGuesser, $chainGuesser); $normGenerator = new NormalizerGenerator($naming, isset($options['reference']) ? $options['reference'] : true); return new self($serializer, $chainGuesser, $modelGenerator, $normGenerator); }