Estoy desarrollando una aplicación de juego y usando Symfony 2.0. Tengo muchas solicitudes AJAX al backend. Y más respuestas está convirtiendo la entidad a JSON. Por ejemplo:
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');
}
}
Y todos mis controladores hacen lo mismo: obtienen una entidad y codifican algunos de sus campos en JSON. Sé que puedo usar normalizadores y codificar todas las entidades. Pero, ¿qué pasa si una entidad tiene enlaces cíclicos a otra entidad? ¿O el gráfico de entidades es muy grande? ¿Tienes alguna sugerencia?
Pienso en algún esquema de codificación para entidades ... o en usar NormalizableInterface
para evitar el ciclo ...,