Introduction au Zend Framework

 Apprendre Zend Framework

appendix

 Guide de référence Zend Framework


  •  Zend_Gdata
  •  Zend_Http
  •  Zend_InfoCard
  •  Zend_Json
  •  Zend_Layout
  •  Zend_Ldap
  •  Zend_Loader
  •  Zend_Locale
  •  Zend_Log
  •  Zend_Mail
  •  Zend_Markup
  •  Zend_Measure
  •  Zend_Memory
  •  Zend_Mime
  •  Zend_Navigation
  •  Zend_Oauth
  •  Zend_OpenId
  •  Zend_Paginator
  •  Zend_Pdf
  •  Zend_ProgressBar
  •  Zend_Queue
  •  Zend_Reflection
  •  Zend_Registry
  •  Zend_Rest

  •  Zend_Search_Lucene
  •  Zend_Serializer
  •  Zend_Server
  •  Zend_Service
  •  Zend_Session
  •  Zend_Soap
  •  Zend_Tag
  •  Zend_Test
  •  Zend_Text
  •  Zend_TimeSync
  •  Zend_Tool
  •  Zend_Tool_Framework
  •  Zend_Tool_Project
  •  Zend_Translate
  •  Zend_Uri
  •  Zend_Validate
  •  Zend_Version
  •  Zend_View
  •  Zend_Wildfire
  •  Zend_XmlRpc
  • ZendX_Console_Process_Unix
  • ZendX_JQuery
  • Translation 61.2% Update 2010-11-28 - Revision 23149 - Version ZF 1.11.x

    47.4. Manipuler des mesures

    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 Zend_Measure_* pour manipuler et travailler ces données, après qu'elles aient été normalisées.

    47.4.1. Convertir

    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 convertTo(). 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.

    La méthode convertTo 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".

    Exemple 47.9. Convertir

    $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::TON3);

    47.4.2. Ajouter et soustraire

    Les mesures peuvent être ajoutées en utilisant add() et soustraites en utilisant sub(). 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.

    Exemple 47.10. Ajouter des mesures

    // Définition des objets
    $unite1 = new Zend_Measure_Length(200Zend_Measure_Length::CENTIMETER);
    $unite2 = new Zend_Measure_Length(1Zend_Measure_Length::METER);

    // ajouter l'$unite2 à l'$unite1
    $somme $unite1->add($unite2);

    echo 
    $somme// affiche "300 cm"


    [Note] Conversion automatique

    Ajouter un objet à l'autre le convertira automatiquement dans l'unité correcte. Il n'est pas nécessaire d'appeler convertTo() avant d'ajouter des unités différentes.

    Exemple 47.11. Soustraire des mesures

    La soustraction des mesures fonctionne comme l'addition.

    // Définition des objets
    $unite1 = new Zend_Measure_Length(200Zend_Measure_Length::CENTIMETER);
    $unite2 = new Zend_Measure_Length(1Zend_Measure_Length::METER);

    // soustriare l'$unite2 de l'$unite1
    $somme $unite1->sub($unite2);

    echo 
    $somme// affiche "100 cm"


    47.4.3. Vérifier l'égalité des mesures

    Les mesures peuvent également être comparées, mais sans conversion automatique de l'unité. De plus, equals() retourne TRUE, seulement si la valeur et l'unité de mesure sont identiques.

    Exemple 47.12. Mesures différentes

    // Définition des mesures
    $unite1 = new Zend_Measure_Length(100Zend_Measure_Length::CENTIMETER);
    $unite2 = new Zend_Measure_Length(1Zend_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"


    Exemple 47.13. Mesures identiques

    // Définition des mesures
    $unite1 = new Zend_Measure_Length(100Zend_Measure_Length::CENTIMETER);
    $unite2 = new Zend_Measure_Length(1Zend_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"


    47.4.4. Comparer les mesures

    Pour déterminer si une mesure est plus ou moins grande qu'une autre, il faut utiliser compare(), 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.

    Exemple 47.14. Différence

    $unite1 = new Zend_Measure_Length(100Zend_Measure_Length::CENTIMETER);
    $unite2 = new Zend_Measure_Length(1Zend_Measure_Length::METER);
    $unite3 = new Zend_Measure_Length(1.2Zend_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"


    47.4.5. Changer manuellement des valeurs

    Pour changer explicitement la valeur d'une mesure, il faut utiliser setValue() pour surcharger la valeur courante. Les paramètres sont identiques à ceux du constructeur.

    Exemple 47.15. Changer une valeur

    $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.2Zend_Measure_Length::KILOMETER);
    echo 
    $unite// affiche "1200 km"

    $unite->setValue("1.234,56"Zend_Measure_Length::MILLIMETER,$locale);
    echo 
    $unite// affiche "1234.56 mm"


    47.4.6. Changer manuellement de type

    Pour changer le type d'une mesure sans altérer sa valeur, il faut utiliser setType().

    Exemple 47.16. Changer de type

    $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"

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...