| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- <!-- EN-Revision: 11495 -->
- <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"><code>Convertir</code></link></para>
- </listitem>
- <listitem>
- <para><link linkend="zend.measure.edit.add"><code>Ajouter et soustraire</code></link></para>
- </listitem>
- <listitem>
- <para><link linkend="zend.measure.edit.equal"><code>Comparer avec un booléen</code></link></para>
- </listitem>
- <listitem>
- <para><link linkend="zend.measure.edit.compare"><code>Comparer "plus/moins grand que"</code></link></para>
- </listitem>
- <listitem>
- <para><link linkend="zend.measure.edit.changevalue"><code>Changer manuellement des
- valeurs</code></link></para>
- </listitem>
- <listitem>
- <para><link linkend="zend.measure.edit.changetype"><code>Changer manuellement de type</code></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 <code>convertTo()</code>. 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 <code>convertTo</code> 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 "<code>2</code>".</para>
- <example id="zend.measure.edit.convert.example-1">
- <title>Convertir</title>
- <programlisting role="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 <code>add()</code> et soustraites en utilisant
- <code>sub()</code>. Chaque addition créera un nouvel objet pour le résultat. L'objet courant ne sera jamais
- changé par la classe. Le nouvel objet sera du même type que l'objet de début. Les objets dynamiques supportent
- un modèle 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 role="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"><code>convertTo()</code></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 role="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,
- <code>equals()</code> retourne <code>TRUE</code>, 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 role="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 role="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
- <code>compare()</code>, 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 role="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 <code>setValue()</code> 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 role="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 <code>setType()</code>.</para>
- <example id="zend.measure.edit.changetype.example-1">
- <title>Changer de type</title>
- <programlisting role="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>
|