2017-09-22 4 views
0

J'utilise le symfony de composant sérialiseur, et il y avait un exemple de sérialisation et objet au format JSON, suivant:Comment codeur csv avec Symfony

$encoders = array(new XmlEncoder(), new JsonEncoder()); 
    $normalizers = array(new ObjectNormalizer()); 

    $person = new \AppBundle\Entity\Person(); 
    $person->setName('foo'); 
    $person->setAge(99); 
    $person->setSportsman(false); 

    // return new JsonResponse($person); // empty 

    $serializer = new Serializer($normalizers, $encoders); 

    /** 
    * 1 param - object to be serialized 
    * 2 param - proper encoder, in this case JsonEncoder 
    * @var [type] 
    */ 
    $jsonContent = $serializer->serialize($person, 'json'); 

    return new Response($jsonContent); 

L'exemple ci-dessus renvoie quelque chose comme ceci:

{"id":null,"age":99,"name":"foo","sportsman":false} 

Mais je veux savoir Comment faire la même chose, à la place CSVJSON

+2

https://symfony.com/blog/new-in-symfony-3-2-csv-and-yaml- encodeurs-pour-serializer ??? –

Répondre

1

CSV et YAML encodeur ont été ajoutés depuis Symfony 3,2

// instantiation, when using it as a component 
use Symfony\Component\Serializer\Serializer; 
use Symfony\Component\Serializer\Encoder\CsvEncoder; 
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer; 

$serializer = new Serializer([new ObjectNormalizer()], [new CsvEncoder()]); 

// instantiation, when using it inside the Symfony framework 
$serializer = $container->get('serializer'); 

// encoding contents in CSV format 
$serializer->encode($data, 'csv'); 

// decoding CSV contents 
$data = $serializer->decode(file_get_contents('data.csv'), 'csv'); 

Vous pouvez trouver plus d'informations là-bas: https://symfony.com/blog/new-in-symfony-3-2-csv-and-yaml-encoders-for-serializer