Saya sedang mengembangkan aplikasi game dan menggunakan Symfony 2.0. Saya memiliki banyak permintaan AJAX ke backend. Dan lebih banyak tanggapan yang mengubah entitas menjadi JSON. Sebagai contoh:
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');
}
}
Dan semua pengontrol saya melakukan hal yang sama: dapatkan entitas dan menyandikan beberapa bidangnya ke JSON. Saya tahu bahwa saya dapat menggunakan normalizer dan menyandikan semua entitas. Tetapi bagaimana jika suatu entitas telah mengayunkan tautan ke entitas lain? Atau grafik entitas sangat besar? Apakah Anda punya saran?
Saya memikirkan tentang beberapa skema encoding untuk entitas ... atau menggunakan NormalizableInterface
untuk menghindari bersepeda ..,