Estou desenvolvendo um aplicativo de jogo e usando Symfony 2.0. Tenho muitas solicitações AJAX para o back-end. E mais respostas está convertendo entidade em JSON. Por exemplo:
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 todos os meus controladores fazem a mesma coisa: obtêm uma entidade e codificam alguns de seus campos para JSON. Eu sei que posso usar normalizadores e codificar todas as entidades. Mas e se uma entidade tiver um ciclo de links para outra entidade? Ou o gráfico de entidades é muito grande? Você tem alguma sugestão?
Eu penso em algum esquema de codificação para entidades ... ou usando NormalizableInterface
para evitar ciclos ...,