मैं गेम ऐप विकसित कर रहा हूं और सिम्फनी 2.0 का उपयोग कर रहा हूं। बैकएंड के लिए मेरे पास कई AJAX अनुरोध हैं। और अधिक प्रतिक्रियाएँ JSON में इकाई को परिवर्तित कर रही हैं। उदाहरण के लिए:
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');
}
}
और मेरे सभी नियंत्रक एक ही काम करते हैं: एक इकाई प्राप्त करें और इसके कुछ क्षेत्रों को JSON में एन्कोड करें। मुझे पता है कि मैं सामान्यीकरण का उपयोग कर सकता हूं और सभी अधिकारों का एनकोड कर सकता हूं। लेकिन क्या होगा अगर एक इकाई ने अन्य इकाई से लिंक को हटा दिया है? या संस्थाओं का ग्राफ बहुत बड़ा है? क्या तुम्हारे पास कोई सुझाव है?
मैं संस्थाओं के लिए कुछ एन्कोडिंग स्कीमा के बारे में सोचता हूं ... या NormalizableInterface
साइकिल चलाने से बचने के लिए ..,