Zend_Json-Objects.xml 2.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. <sect1 id="zend.json.objects">
  2. <title>كائنات JSON</title>
  3. <para>
  4. عند القيام بعملية ترميز "encoding" لكائنات فى لغة PHP لتصبح فى صيغة JSON ,
  5. كل الـ public properties الخاصة بهذا الكائن سيتم ترميزها لتصبح كائنات JSON.
  6. </para>
  7. <para>
  8. عملية فك ترميز "decoding" كائنات JSON تواجه بعض التحديات ,
  9. لكن حيث أن كائنات JavaScript تتشابه إلى حد ما مع الـ associative arrays الموجودة
  10. فى لغة PHP , فتم أقتراح أن يتم تمرير معرف أسم class , ثم يتم إنشاء نسخة "instance" من هذا
  11. الـ class و يتم تسكينه بأزواج من الـ key/value التى تم إستنباطها من كائن الـ JSON ,
  12. إلا أن البعض يشعرون بأن هذا من الممكن أن يتسبب فى مخاطر امنية .
  13. </para>
  14. <para>
  15. الإعدادات الأساسية لـ <code>Zend_Json</code> ستقوم بفك ترميز كائنات JSON
  16. و تحويلها إلى associative arrays , و لكن إن كنت تود أن يتم إرجاع كائن ,
  17. فيمكنك أن تحدد التالى :
  18. </para>
  19. <programlisting role="php"><![CDATA[<?php
  20. // Decode objects as objects
  21. $phpNative = Zend_Json::decode($encodedValue, Zend_Json::TYPE_OBJECT);
  22. ?>]]></programlisting>
  23. <para>
  24. أى كائنات سيتم فك ترميزها , سيتم إرجاعها على أنها كائنات من <code>StdClass</code>
  25. مع properties تتطابق مع قيم أزواج الـ key/value المستخلصة من صيغة الـ JSON.
  26. </para>
  27. <para>
  28. نصيحة إطار عمل Zend هى أن يقوم كل مبرمج بتحديد كيف سيقوم بفك ترميز كائنات JSON ,
  29. إن كان يجب أن يتم إنشاء كائن JSON من نوع محدد, فيمكن أن يتم إنشائه من خلال أكواد المبرمج
  30. الخاصة ثم يتم تسكينه بالقيم التى تم فك ترميزها بإستخدام <code>Zend_Json</code>.
  31. </para>
  32. </sect1>
  33. <!--
  34. vim:se ts=4 sw=4 et:
  35. -->