/** * * @param string $cacheDir * @param string $metadataDir * @param bool $debug */ public function __construct($cacheDir, $metadataDir, $debug = false) { $serializerBuilder = SerializerBuilder::create(); $serializerBuilder->setCacheDir($cacheDir)->setDebug($debug)->addMetadataDir($metadataDir); $propertyNamingStrategy = new SerializedNameAnnotationStrategy(new CamelCaseNamingStrategy()); $serializerBuilder->setPropertyNamingStrategy($propertyNamingStrategy); $serializerBuilder->addDefaultSerializationVisitors(); $serializerBuilder->addDefaultDeserializationVisitors(); $jsonSerializationVisitor = new JsonSerializationVisitor($propertyNamingStrategy); $jsonSerializationVisitor->setOptions(JSON_PRETTY_PRINT); $xmlSerializationVisitor = new XmlSerializationVisitor($propertyNamingStrategy); $xmlSerializationVisitor->setDefaultRootName('config'); $serializerBuilder->setSerializationVisitor('json', $jsonSerializationVisitor); $serializerBuilder->setSerializationVisitor('xml', $xmlSerializationVisitor); $this->serializer = $serializerBuilder->build(); }