Tôi đang phát triển ứng dụng trò chơi và sử dụng Symfony 2.0. Tôi có nhiều yêu cầu AJAX đối với phần phụ trợ. Và nhiều phản hồi hơn đang chuyển đổi thực thể thành JSON. Ví dụ:
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');
}
}
Và tất cả các bộ điều khiển của tôi đều làm điều tương tự: lấy một thực thể và mã hóa một số trường của nó thành JSON. Tôi biết rằng tôi có thể sử dụng trình chuẩn hóa và mã hóa tất cả các yêu cầu. Nhưng điều gì sẽ xảy ra nếu một thực thể có các liên kết theo chu kỳ đến thực thể khác? Hay biểu đồ thực thể rất lớn? Bạn có đề nghị nào không?
Tôi nghĩ về một số giản đồ mã hóa cho các thực thể ... hoặc sử dụng NormalizableInterface
để tránh lặp lại ..,