| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.measure.edit">
- <title>Manipuler des mesures</title>
- <para>
- L'analyse et la normalisation de l'entrée, combinées avec la récupération suivant les
- notations régionalisées rend des données accessibles aux utilisateurs dans différentes
- régions. Beaucoup de méthodes additionnelles existent dans les composants
- <classname>Zend_Measure_*</classname> pour manipuler et travailler ces données, après
- qu'elles aient été normalisées.
- </para>
- <itemizedlist>
- <listitem>
- <para><link linkend="zend.measure.edit.convert">Convertir</link></para>
- </listitem>
- <listitem>
- <para>
- <link linkend="zend.measure.edit.add">Ajouter et soustraire</link>
- </para>
- </listitem>
- <listitem>
- <para>
- <link linkend="zend.measure.edit.equal">Comparer avec un booléen</link>
- </para>
- </listitem>
- <listitem>
- <para>
- <link linkend="zend.measure.edit.compare">Comparer "plus/moins grand
- que"</link>
- </para>
- </listitem>
- <listitem>
- <para>
- <link linkend="zend.measure.edit.changevalue">Changer manuellement des
- valeurs</link>
- </para>
- </listitem>
- <listitem>
- <para>
- <link linkend="zend.measure.edit.changetype">Changer manuellement de
- type</link>
- </para>
- </listitem>
- </itemizedlist>
- <sect2 id="zend.measure.edit.convert">
- <title>Convertir</title>
- <para>
- Le dispositif le plus important est probablement la conversion dans différentes
- unités de la mesure. La conversion d'une unité peut être faite à tout moment en
- utilisant la méthode <methodname>convertTo()</methodname>. Des unités de mesure peuvent seulement
- être converties en d'autres unités du même type (classe). Par conséquent, il n'est pas
- possible de convertir (par exemple : une longueur en poids), qui encouragerait des
- pratiques de programmation pauvres et entraînerait la propagation d'erreurs sans lever
- d'exception.
- </para>
- <para>
- La méthode <methodname>convertTo()</methodname> accepte un paramètre facultatif. Avec ce
- paramètre vous pouvez définir une précision pour l'élément retourné. La précision par
- défaut est "2".
- </para>
- <example id="zend.measure.edit.convert.example-1">
- <title>Convertir</title>
- <programlisting language="php"><![CDATA[
- $locale = new Zend_Locale('de');
- $machaine = "1.234.567,89";
- $unite = new Zend_Measure_Weight($machaine,'POND', $locale);
- print "Kilo : ".$unite->convertTo('KILOGRAM');
- // affiche "Kilo : 617283.945 kg"
- // l'utilisation de constantes est considérée comme
- // une meilleure pratique que les chaînes
- print "Tonne : ".$unite->convertTo(Zend_Measure_Weight::TON);
- // affiche "Tonne : 617.283945 t"
- // définition de la précision pour l'affichage
- print "Tonne :".$unit->convertTo(Zend_Measure_Weight::TON, 3);
- ]]></programlisting>
- </example>
- </sect2>
- <sect2 id="zend.measure.edit.add">
- <title>Ajouter et soustraire</title>
- <para>
- Les mesures peuvent être ajoutées en utilisant <methodname>add()</methodname> et
- soustraites en utilisant <methodname>sub()</methodname>. Le résultat sera du même type
- que l'objet original. Les objets dynamiques supportent un interface fluide de
- programmation, où des ordres complexes d'opération peuvent être imbriqués sans risque
- d'effets secondaires changeant les objets d'entrée.
- </para>
- <para>
- <example id="zend.measure.edit.add.example-1">
- <title>Ajouter des mesures</title>
- <programlisting language="php"><![CDATA[
- // Définition des objets
- $unite1 = new Zend_Measure_Length(200, Zend_Measure_Length::CENTIMETER);
- $unite2 = new Zend_Measure_Length(1, Zend_Measure_Length::METER);
- // ajouter l'$unite2 à l'$unite1
- $somme = $unite1->add($unite2);
- echo $somme; // affiche "300 cm"
- ]]></programlisting>
- </example>
- </para>
- <note>
- <title>Conversion automatique</title>
- <para>
- Ajouter un objet à l'autre le convertira automatiquement dans l'unité
- correcte. Il n'est pas nécessaire d'appeler <link
- linkend="zend.measure.edit.convert"><methodname>convertTo()</methodname></link> avant d'ajouter
- des unités différentes.
- </para>
- </note>
- <para>
- <example id="zend.measure.edit.add.example-2">
- <title>Soustraire des mesures</title>
- <para>La soustraction des mesures fonctionne comme l'addition.</para>
- <programlisting language="php"><![CDATA[
- // Définition des objets
- $unite1 = new Zend_Measure_Length(200, Zend_Measure_Length::CENTIMETER);
- $unite2 = new Zend_Measure_Length(1, Zend_Measure_Length::METER);
- // soustriare l'$unite2 de l'$unite1
- $somme = $unite1->sub($unite2);
- echo $somme; // affiche "100 cm"
- ]]></programlisting>
- </example>
- </para>
- </sect2>
- <sect2 id="zend.measure.edit.equal">
- <title>Vérifier l'égalité des mesures</title>
- <para>
- Les mesures peuvent également être comparées, mais sans conversion automatique de
- l'unité. De plus, <methodname>equals()</methodname> retourne <constant>TRUE</constant>, seulement si la
- valeur et l'unité de mesure sont identiques.
- </para>
- <para>
- <example id="zend.measure.edit.equal.example-1">
- <title>Mesures différentes</title>
- <programlisting language="php"><![CDATA[
- // Définition des mesures
- $unite1 = new Zend_Measure_Length(100, Zend_Measure_Length::CENTIMETER);
- $unite2 = new Zend_Measure_Length(1, Zend_Measure_Length::METER);
- if ($unite1->equals($unite2)) {
- print "Les mesures sont identiques";
- } else {
- print "Les mesures sont différentes";
- }
- // affiche "Les mesures sont différentes"
- ]]></programlisting>
- </example> <example id="zend.measure.edit.equal.example-2">
- <title>Mesures identiques</title>
- <programlisting language="php"><![CDATA[
- // Définition des mesures
- $unite1 = new Zend_Measure_Length(100, Zend_Measure_Length::CENTIMETER);
- $unite2 = new Zend_Measure_Length(1, Zend_Measure_Length::METER);
- $unite2->setType(Zend_Measure_Length::CENTIMETER);
- if ($unite1->equals($unite2)) {
- print "Les mesures sont identiques";
- } else {
- print "Les mesures sont différentes";
- } // affiche "Les mesures sont identiques"
- ]]></programlisting>
- </example>
- </para>
- </sect2>
- <sect2 id="zend.measure.edit.compare">
- <title>Comparer les mesures</title>
- <para>
- Pour déterminer si une mesure est plus ou moins grande qu'une autre, il faut
- utiliser <methodname>compare()</methodname>, qui renvoie 0, -1 ou 1 selon la différence entre les
- deux objets. Les mesures identiques retourneront 0. Plus petit retournera -1 et plus
- grand retournera +1.
- </para>
- <para>
- <example id="zend.measure.edit.compare.example-1">
- <title>Différence</title>
- <programlisting language="php"><![CDATA[
- $unite1 = new Zend_Measure_Length(100, Zend_Measure_Length::CENTIMETER);
- $unite2 = new Zend_Measure_Length(1, Zend_Measure_Length::METER);
- $unite3 = new Zend_Measure_Length(1.2, Zend_Measure_Length::METER);
- print "Egalité : ".$unite2->compare($unite1);
- // affiche "Egalité : 0"
- print "Plus petit que : ".$unite2->compare($unite3);
- // affiche "Plus petit que : -1"
- print "Plus grand que : ".$unite3->compare($unite2);
- // affiche "Plus grand que : 1"
- ]]></programlisting>
- </example>
- </para>
- </sect2>
- <sect2 id="zend.measure.edit.changevalue">
- <title>Changer manuellement des valeurs</title>
- <para>
- Pour changer explicitement la valeur d'une mesure, il faut utiliser
- <methodname>setValue()</methodname> pour surcharger la valeur courante. Les paramètres sont
- identiques à ceux du constructeur.
- </para>
- <para>
- <example id="zend.measure.edit.changevalue.example-1">
- <title>Changer une valeur</title>
- <programlisting language="php"><![CDATA[
- $locale = new Zend_Locale('de_AT');
- $unite = new Zend_Measure_Length(1,Zend_Measure_Length::METER);
- $unite->setValue(1.2);
- echo $unite; // affiche "1.2 m"
- $unite->setValue(1.2, Zend_Measure_Length::KILOMETER);
- echo $unite; // affiche "1200 km"
- $unite->setValue("1.234,56", Zend_Measure_Length::MILLIMETER,$locale);
- echo $unite; // affiche "1234.56 mm"
- ]]></programlisting>
- </example>
- </para>
- </sect2>
- <sect2 id="zend.measure.edit.changetype">
- <title>Changer manuellement de type</title>
- <para>
- Pour changer le type d'une mesure sans altérer sa valeur, il faut utiliser
- <methodname>setType()</methodname>.
- </para>
- <example id="zend.measure.edit.changetype.example-1">
- <title>Changer de type</title>
- <programlisting language="php"><![CDATA[
- $unite = new Zend_Measure_Length(1,Zend_Measure_Length::METER);
- echo $unite; // affiche "1 m"
- $unite->setType(Zend_Measure_Length::KILOMETER);
- echo $unite; // affiche "1000 km"
- ]]></programlisting>
- </example>
- </sect2>
- </sect1>
|