Zend_Serializer-Introduction.xml 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.serializer.introduction">
  5. <title>Introduction</title>
  6. <para>
  7. <classname>Zend_Serializer</classname> utilise une interface basée sur des adaptateurs
  8. afin de générer des représentations stockables de types php et inversement.
  9. </para>
  10. <example id="zend.serializer.introduction.example.dynamic">
  11. <title>Utiliser <classname>Zend_Serializer</classname></title>
  12. <para>
  13. Pour instancier un sérialiseur, vous devriez utiliser la méthode de fabrique
  14. d'adaptateurs:
  15. </para>
  16. <programlisting language="php"><![CDATA[
  17. $serializer = Zend_Serializer::factory('PhpSerialize');
  18. // $serializer est instance de Zend_Serializer_Adapter_AdapterInterface,
  19. // précisémment Zend_Serializer_Adapter_PhpSerialize
  20. try {
  21. $serialized = $serializer->serialize($data);
  22. // $serialized est une chaine
  23. $unserialized = $serializer->unserialize($serialized);
  24. // ici $data == $unserialized
  25. } catch (Zend_Serializer_Exception $e) {
  26. echo $e;
  27. }
  28. ]]></programlisting>
  29. </example>
  30. <para>
  31. La méhode <methodname>serialize</methodname> génère une chaine. Pour regénérer la donnée
  32. utilisez la méthode <methodname>unserialize</methodname>.
  33. </para>
  34. <para>
  35. Si une erreur survient à la sérialisation ou désérialisation,
  36. <classname>Zend_Serializer</classname> enverra une
  37. <classname>Zend_Serializer_Exception</classname>.
  38. </para>
  39. <para>
  40. Pour configurer l'adaptateur, vous pouvez passer un tableau ou un objet instance de
  41. <classname>Zend_Config</classname> à la méthode <methodname>factory</methodname> ou aux
  42. méthode <methodname>un-/serialize</methodname>:
  43. </para>
  44. <programlisting language="php"><![CDATA[
  45. $serializer = Zend_Serializer::factory('Wddx', array(
  46. 'comment' => 'serialized by Zend_Serializer',
  47. ));
  48. try {
  49. $serialized = $serializer->serialize($data, array('comment' => 'change comment'));
  50. $unserialized = $serializer->unserialize($serialized, array(/* options pour unserialize */));
  51. } catch (Zend_Serializer_Exception $e) {
  52. echo $e;
  53. }
  54. ]]></programlisting>
  55. <para>
  56. Les options passées à <methodname>factory</methodname> sont valides pour l'objet crée.
  57. Vous pouvez alors changer ces options grâce à la méthode <methodname>setOption(s)</methodname>.
  58. Pour changer des options pour un seul appel, passez celles-ci en deuxième arguement des méthodes
  59. <methodname>serialize</methodname> ou <methodname>unserialize</methodname>.
  60. </para>
  61. <example id="zend.serializer.introduction.example.static.php">
  62. <title>Utiliser l'interface statique de Zend_Serializer</title>
  63. <para>
  64. Vous pouvez enregistrer une adaptateur spécifique comme adaptateur par défaut à utiliser
  65. avec <classname>Zend_Serializer</classname>. Par défaut, l'adaptateur enregistré est
  66. <classname>PhpSerialize</classname> mais vous pouvez le changer au moyen de la méthode
  67. statique <methodname>setDefaultAdapter()</methodname>.
  68. </para>
  69. <programlisting language="php"><![CDATA[
  70. Zend_Serializer::setDefaultAdapter('PhpSerialize', $options);
  71. // ou
  72. $serializer = Zend_Serializer::factory('PhpSerialize', $options);
  73. Zend_Serializer::setDefaultAdapter($serializer);
  74. try {
  75. $serialized = Zend_Serializer::serialize($data, $options);
  76. $unserialized = Zend_Serializer::unserialize($serialized, $options);
  77. } catch (Zend_Serializer_Exception $e) {
  78. echo $e;
  79. }
  80. ]]></programlisting>
  81. </example>
  82. </sect1>