Sto sviluppando un'app di gioco e utilizzo Symfony 2.0. Ho molte richieste AJAX al backend. E più risposte stanno convertendo l'entità in JSON. Per esempio:
class DefaultController extends Controller
{
public function launchAction()
{
$user = $this->getDoctrine()
->getRepository('UserBundle:User')
->find($id);
// encode user to json format
$userDataAsJson = $this->encodeUserDataToJson($user);
return array(
'userDataAsJson' => $userDataAsJson
);
}
private function encodeUserDataToJson(User $user)
{
$userData = array(
'id' => $user->getId(),
'profile' => array(
'nickname' => $user->getProfile()->getNickname()
)
);
$jsonEncoder = new JsonEncoder();
return $jsonEncoder->encode($userData, $format = 'json');
}
}
E tutti i miei controller fanno la stessa cosa: ottenere un'entità e codificare alcuni dei suoi campi in JSON. So di poter utilizzare i normalizzatori e codificare tutte le entità. Ma cosa succede se un'entità ha ciclato i collegamenti ad un'altra entità? O il grafico delle entità è molto grande? Hai qualche suggerimento?
Penso a qualche schema di codifica per entità ... o utilizzo NormalizableInterface
per evitare il ciclismo ..,