/** * Lists all Events entities. * */ public function indexAction() { $em = $this->getDoctrine()->getManager(); $entities = $em->getRepository('AgendaBundle:Events')->findAll(); $normalizer = new ObjectNormalizer(); $encoder = new JsonEncoder(); $dateCallback = function ($dateTime) { return $dateTime instanceof \DateTime ? $dateTime->format(\DateTime::ISO8601) : ''; }; $userCallback = function ($user) { return array("email" => $user->getEmail(), "roles" => $user->getRoles(), "id_organisme" => $user->getIdOrganisme()->getId()); }; $normalizer->setCallbacks(array('start' => $dateCallback, 'end' => $dateCallback, 'idUser' => (object) $userCallback)); $serializer = new Serializer(array($normalizer), array($encoder)); $jsonObject = $serializer->serialize($entities, 'json'); $response = new Response(); $response->setContent($jsonObject); return $response; }
/** * Cette action permet de retourner les évenements en Json * @return Response */ public function indexAction() { $em = $this->getDoctrine()->getManager(); $entities = $em->getRepository('WcsWildResaBundle:Events')->findAll(); $normalizer = new ObjectNormalizer(); $encoder = new JsonEncoder(); $dateCallback = function ($dateTime) { return $dateTime instanceof \DateTime ? $dateTime->format(\DateTime::ISO8601) : ''; }; // ne conserver que le type de la machine $machineCallback = function ($machines) { $result = []; foreach ($machines as $mach) { $result[] = $mach->getTypeMachine(); } return $result; }; $normalizer->setCallbacks(array('start' => $dateCallback, 'end' => $dateCallback, 'machines' => $machineCallback)); $serializer = new Serializer(array($normalizer), array($encoder)); $jsonObject = $serializer->serialize($entities, 'json'); return new Response($jsonObject); }
/** * @expectedException \InvalidArgumentException */ public function testUncallableCallbacks() { $this->normalizer->setCallbacks(array('bar' => null)); $obj = new ObjectConstructorDummy('baz', 'quux', true); $this->normalizer->normalize($obj, 'any'); }
public function benchSymfonyObjectNormalizer() { $normalizer = new ObjectNormalizer(); $normalizer->setCallbacks(array('createdAt' => function (\DateTime $date) { return $date->format(\DateTime::RFC3339); })); $normalizers = array($normalizer); $encoders = array(new JsonEncoder()); $symfony = new Serializer($normalizers, $encoders); return $symfony->serialize($this->data, 'json'); }