যদি আপনার ডেটা ইতিমধ্যে সিরিয়ালযুক্ত হয়:
ক) একটি জেএসওএন প্রতিক্রিয়া পাঠান
public function someAction()
{
$response = new Response();
$response->setContent(file_get_contents('path/to/file'));
$response->headers->set('Content-Type', 'application/json');
return $response;
}
খ) একটি জেএসএনপি প্রতিক্রিয়া পাঠান (কলব্যাক সহ)
public function someAction()
{
$response = new Response();
$response->setContent('/**/FUNCTION_CALLBACK_NAME(' . file_get_contents('path/to/file') . ');');
$response->headers->set('Content-Type', 'text/javascript');
return $response;
}
যদি আপনার ডেটা সিরিয়ালাইজ করা প্রয়োজন:
গ) একটি জেএসওএন প্রতিক্রিয়া পাঠান
public function someAction()
{
$response = new JsonResponse();
$response->setData([some array]);
return $response;
}
d) একটি JSONP প্রতিক্রিয়া পাঠান (কলব্যাক সহ)
public function someAction()
{
$response = new JsonResponse();
$response->setData([some array]);
$response->setCallback('FUNCTION_CALLBACK_NAME');
return $response;
}
e) সিমফনি 3.xxx এ গ্রুপগুলি ব্যবহার করুন
আপনার সত্তার ভিতরে গ্রুপ তৈরি করুন
<?php
namespace Mindlahus;
use Symfony\Component\Serializer\Annotation\Groups;
class SomeSuperClassName
{
public $foo;
public $date;
public function getBar() // is* methods are also supported
{
return $this->bar;
}
}
আপনার অ্যাপ্লিকেশনটির যুক্তির ভিতরে আপনার মতবাদ অবজেক্টকে সাধারণ করুন
<?php
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory;
use Doctrine\Common\Annotations\AnnotationReader;
use Symfony\Component\Serializer\Mapping\Loader\AnnotationLoader;
use Symfony\Component\Serializer\Serializer;
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
use Symfony\Component\Serializer\Encoder\JsonEncoder;
...
$repository = $this->getDoctrine()->getRepository('Mindlahus:SomeSuperClassName');
$SomeSuperObject = $repository->findOneById($id);
$classMetadataFactory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader()));
$encoder = new JsonEncoder();
$normalizer = new ObjectNormalizer($classMetadataFactory);
$callback = function ($dateTime) {
return $dateTime instanceof \DateTime
? $dateTime->format('m-d-Y')
: '';
};
$normalizer->setCallbacks(array('date' => $callback));
$serializer = new Serializer(array($normalizer), array($encoder));
$data = $serializer->normalize($SomeSuperObject, null, array('groups' => array('group1')));
$response = new Response();
$response->setContent($serializer->serialize($data, 'json'));
$response->headers->set('Content-Type', 'application/json');
return $response;