Zend_Serializer-Introduction.xml 3.6 KB

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