Zend_Currency-Usage.xml 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.currency.usage">
  5. <title>Utiliser Zend_Currency</title>
  6. <sect2 id="zend.currency.usage.generic">
  7. <title>Utilisation de base</title>
  8. <para>
  9. La manière la plus simple consiste à se reposer sur la locale de l'utilisateur. Lorsque vous créez
  10. une instance de <classname>Zend_Currency</classname> sans préciser d'options, la locale du client sera alors
  11. utilisée.
  12. </para>
  13. <example id="zend.currency.usage.generic.example-1">
  14. <title>Créer une monnaie avec les paramètres du client</title>
  15. <para>
  16. Imaginons un client dont la locale est "en_US" dans son navigateur. Dans ce cas,
  17. <classname>Zend_Currency</classname> détectera automatiquement la monnaie à utiliser.
  18. </para>
  19. <programlisting language="php"><![CDATA[
  20. $currency = new Zend_Currency();
  21. // Voyons les paramètres par défaut régis par la locale utilisateur
  22. // var_dump($currency);
  23. ]]></programlisting>
  24. <para>
  25. L'objet crée va alors contenir une monnaie "US Dollar" car il s'agit de la monnaie affectée
  26. aux USA. D'autres options ont aussi été affectées comme le signe "$" ou l'abbréviation
  27. "USD".
  28. </para>
  29. </example>
  30. <note>
  31. <title>La détection automatique par locale ne fonctionne pas toujours</title>
  32. <para>
  33. La détection automatique par locale ne fonctionne pas toujours car
  34. <classname>Zend_Currency</classname> nécessite une locale incluant la région. Si le client
  35. utilise une locale courte ("en"), <classname>Zend_Currency</classname> ne sait pas quelle
  36. région parmi les 30 possibles choisir. Une exception sera alors levée.
  37. </para>
  38. <para>
  39. Un client peut aussi déregler la locale dans son navigateur, ou la supprimer. Ainsi le paramètre
  40. de l'environnement sera alors utilisé pour la locale, ce qui peut mener à des comportements non
  41. attendus ou des exceptions.
  42. </para>
  43. </note>
  44. </sect2>
  45. <sect2 id="zend.currency.usage.locale">
  46. <title>Créer une monnaie basée sur une locale</title>
  47. <para>
  48. Pour éviter ce genre de problème, précisez manuellement la locale à utiliser.
  49. </para>
  50. <programlisting language="php"><![CDATA[
  51. $currency = new Zend_Currency('en_US');
  52. // Utilisation de l'option 'locale'
  53. // $currency = new Zend_Currency(array('locale' => 'en_US'));
  54. // Voir la monnaie avec les paramètres actuels fixés à 'en_US'
  55. // var_dump($currency);
  56. ]]></programlisting>
  57. <para>
  58. Dans l'exemple ci-dessus, nous ne sommes plus dépendant du client.
  59. </para>
  60. <para>
  61. <classname>Zend_Currency</classname> supporte aussi l'utilisation d'une locale globale.
  62. Mettez une instance de <classname>Zend_Locale</classname> dans le registre comme montré
  63. ci-après. Dans un tel cas, l'option locale n'est plus obligatoire pour chaque instance
  64. et la même locale sera utilisée partout, tout le temps.
  65. </para>
  66. <programlisting language="php"><![CDATA[
  67. // dans le bootstrap
  68. $locale = new Zend_Locale('de_AT');
  69. Zend_Registry::set('Zend_Locale', $locale);
  70. // quelque part dans l'application
  71. $currency = new Zend_Currency();
  72. ]]></programlisting>
  73. </sect2>
  74. <sect2 id="zend.currency.usage.territory">
  75. <title>Création de monnaie basée sur un pays</title>
  76. <para>
  77. <classname>Zend_Currency</classname> est aussi capable de travailler à partir d'un pays
  78. fourni en utilisant <classname>Zend_Locale</classname> en interne.
  79. </para>
  80. <programlisting language="php"><![CDATA[
  81. $currency = new Zend_Currency('US');
  82. // Voir le réglage courant qui vaut 'en_US'
  83. // var_dump($currency);
  84. ]]></programlisting>
  85. <note>
  86. <title>Mettre en majuscule les pays</title>
  87. <para>
  88. Quand vous savez que vous utilisez un pays, vous devez le mettre en majuscule.
  89. Sinon vous pourriez croire que vous recevez un fausse locale. Par exemple quan
  90. vous donnez "om", vous pourriez alors espérer retrouver "ar_OM". Mais en ait
  91. il s'agira de "om" qui est aussi une langue.
  92. </para>
  93. <para>
  94. Ainsi mettez toujours en majuscule l'entrée quand vous savez qu'il s'agit d'un
  95. pays.
  96. </para>
  97. </note>
  98. </sect2>
  99. </sect1>