Je collecte des données au format XML via une API et je souhaite les désérialiser dans une liste d'objets. J'utilise Symfony2 et je trouve JMSSerializerBundle mais je ne sais pas vraiment comment l'utiliser.Désérialise le xml en objet avec Symfony2
Je sais que Sf2 permet de sérialiser/désérialiser un objet de/vers un tableau, mais je cherche quelque chose de plus spécifique. Par exemple, pour cette classe:
class Screenshot
{
/**
* @var integer $id
*/
private $id;
/**
* @var string $url_screenshot
*/
private $url_screenshot;
public function __construct($id, $url_screenshot) {
$this->id = $id;
$this->url_screenshot = $url_screenshot;
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set url_screenshot
*
* @param string $urlScreenshot
*/
public function setUrlScreenshot($urlScreenshot)
{
$this->url_screenshot = $urlScreenshot;
}
/**
* Get url_screenshot
*
* @return string
*/
public function getUrlScreenshot()
{
return $this->url_screenshot;
}
/**
* Serializes the Screenshot object.
*
* @return string
*/
public function serialize()
{
return serialize(array(
$this->id,
$this->url_screenshot
));
}
/**
* Unserializes the Screenshot object.
*
* @param string $serialized
*/
public function unserialize($serialized)
{
list(
$this->id,
$this->url_screenshot
) = unserialize($serialized);
}
public function __toString() {
return "id: ".$this->id
."screenshot: ".$this->url_screenshot;
}
}
Je voudrais sérialisation/désérialisation à/de ce genre de xml:
<?xml version="1.0" encoding="UTF-8" ?>
<screenshots>
<screenshot>
<id>1</id>
<url_screenshot>screenshot_url1</url_screenshot>
</screenshot>
<screenshot>
<id>2</id>
<url_screenshot>screenshot_url2</url_screenshot>
</screenshot>
<screenshot>
<id>3</id>
<url_screenshot>screenshot_url3</url_screenshot>
</screenshot>
</screenshots>
Je veux vraiment utiliser quelque chose intégré/intégrer dans Sf2 (quelque chose "smooth") et préfèrent éviter les parseurs xml faits maison.
Merci pour votre réponse. – Mikolaj
Vous êtes les bienvenus. Vous pouvez me remercier en l'upvotant et en l'acceptant :) –
En fait, mon coup me manque :) Voici mon commentaire: Merci pour votre réponse. En effet la classe affichée n'est qu'un exemple et les 2 fonctions sont des essais simples. Je ne veux pas sérialiser/désérialiser vers/depuis xml avec des fonctions maison. Je sais que JMSSerializerBundle peut fournir ce que je veux mais je n'ai pas réussi à l'utiliser correctement ... Je cherche surtout un exemple pour l'utilisation de JMSSB ou une autre façon de le faire "automatiquement", quelque chose d'évolutif avec/via Symfony2. – Mikolaj