Tour d'horizon du package

Tour d'horizon du package – Tour d'horizon des classes de Calendar

Tour d'horizon du package

Lorsque vous travaillez avec PEAR::Calendar, il y'a un total de 12 classes (publiques) disponibles pour vous aider à résoudre les problèmes que vous rencontrez. On peut les grouper en classes de dates, dates tabulaires, validation et décorations.

Classes de dates

Elles fournissent une représentation de toutes les unités humaines basiques de dates. Elles héritent toutes de Calendar et fournissent les méthodes définies par la suite :

  • Calendar_Year - représente une année et peut contruire des objets Calendar_Month, Calendar_Month_Weekdays et Calendar_Month_Weeks.

    Inclure avec :

    <?php
    require_once 'Calendar/Year.php';
    ?>

  • Calendar_Month - représente un mois et peut construire des objets Calendar_Day.

    Inclure avec :

    <?php
    require_once 'Calendar/Month.php';
    ?>

  • Calendar_Day - représente un jour et peut contstruire des objets Calendar_Hour.

    Inclure avec :

    <?php
    require_once 'Calendar/Day.php';
    ?>

  • Calendar_Hour - représente une heure et peut construire des objets Calendar_Minute.

    Inclure avec :

    <?php
    require_once 'Calendar/Hour.php';
    ?>

  • Calendar_Minute - représente une minute et peut construire des objets Calendar_Second.

    Inclure avec :

    <?php
    require_once 'Calendar/Minute.php';
    ?>

  • Calendar_Second - représente une seconde et ne peut construire aucun objet.

    Inclure avec :

    <?php
    require_once 'Calendar/Second.php';
    ?>

Classes de Dates Tabulaires

Permet de construire des calendriers au format tabulaire. Ce sont toutes des sous classes de Calendar, elles disposent donc des mêmes méthodes.

  • Calendar_Month_Weekdays - construit des objets Calendar_Day en réglant les états isFirst(), isLast() et isEmpty() afin d'afficher un mois sous forme tabulaire.

    Inclure avec :

    <?php
    require_once 'Calendar/Month/Weekdays.php';
    ?>

  • Calendar_Month_Weeks - construit des objets Calendar_Week en représentant un mois en fonction des semaines tabulaires qu'il contient (consultez la FAQ pour la représentation des semaines).

    Inclure avec :

    <?php
    require_once 'Calendar/Month/Weeks.php';
    ?>

  • Calendar_Week - construit 7 objets Calendar_Day. S'ils sont étendus par un objet Calendar_Month_Weeks, ils représentent une semaine tabulaire d'un mois et ils réglent l' état isEmpty() si nécessaire pour les jours appropriés.

    Inclure avec :

    <?php
    require_once 'Calendar/Week.php';
    ?>

Classes de Validation

Permet de valider des dates. Calendar fournit les méthodes isValid() afin de faire une vérification simple sur n'importe quelle date et getValidator() qui renvoie une instance de Calendar_Validator pour une validation plus fine.

  • Calendar_Validator - n'est pas instancié automatiquement dans votre code (vous devez inclure / le créer). Pour le créer utilisez la méthode Calendar::getValidator() que vous pouvez utiliser sur n'importe quelle sous classe de Calendar. Cette méthode permet d'avoir des informations de validité détaillées et ainsi de trouver la source de l'erreur pour des objets de Date ou de Date Tabulaire.

  • Calendar_Validation_Error - représente une erreur de validation, fournit des méthodes pour détermnier la source de l'erreur. Les méthodes disponibles sont getUnit() (renvoie Year ou Month), getValue() (la valeur de l'erreur), getMessage() (le message d'erreur de validation) et toString() qui renvoie une combinaison des trois méthodes précédentes. Les messages d'erreur de validation sont en Anglais par défaut. Il sont définis par les constantes CALENDAR_VALUE_TOOSMALL et CALENDAR_VALUE_TOOLARGE qui peuvent être redéfinies dans votre code.

Les Décorateurs

Fournit un mécanisme permettant d'ajouter des fonctionnalités aux principaux objets Calendar (les sous classes de Calendar) sans avoir besoin de les étendre (et prendre le risque d'écraser des champs accidentellement). Pour créer un décorateur, vous devez passer un objet Calendar au constructeur. Vous pourrez alors faire des appels au décorateur au lieu de les faire sur l'objet d'origine. Cela vous permettra de réécrire les méthodes de Calendar, ajouter de nouvelles méthodes ou même appliquer des décorateurs multiples au même objet Calendar. Les décorateurs peuvent être injecté (via une sélection ou le décorateur Calendar_Decorator_Wrapper ) dans la boucle générant le calendrier afin de modifier son contenu (pour par exemple convertir des valeurs numériques en textes : 1 -> janvier).

PEAR::Calendar fournit des implémentations de décorateurs afin d'effectuer les tâches communes. Celles-ci ne correspondront pas aux besoins de tous et sont fournies en tant que code optionnel (afin de ne pas détériorer les performances si vous ne les utilisez pas).

  • Calendar_Decorator - C'est la classe de base des décorateurs. Etendez cette classe pour créer vos propres décorateurs. Elle fournit la même API que la classe Calendar qu'elle agrémente et renvoie simplement les appels vers elle. Exemple;

    <?php
    require_once 'Calendar/Decorator.php';

    class 
    ChristmasDecorator extends Calendar_Decorator
    {
        function 
    ChristmasDecorator(&$Calendar)
        {
            
    parent::Calendar_Decorator($Calendar);
        }
        
    // Quelques méthodes ajoutées
        
    function getDaysToChristmas()
        {
            
    $today parent::thisDay(true);
            
    $Christmas = new Calendar_Day(date('Y'), 1225);
            
    $xmasday $Christmas->thisDay(TRUE);
            
    $diff $xmasday $today;
            if (
    $diff 0) {
                
    $NextChristmas = new Calendar_Day($Christmas->nextYear(), 1225);
                
    $nextxmasday $NextChristmas->thisDay(true);
                
    $diff $today $nextxmasday;
            }
            return (
    $diff 86400);
        }
    }
    ?>

  • Calendar_Decorator_Uri - Fournit un décorateur permettant de générer des URLs (Par exemple prec. / suivant).

    Inclure avec :

    <?php
    require_once 'Calendar/Decorator/Uri.php';
    ?>

  • Calendar_Decorator_Textual - permet d'obtenir des mois et jours sous forme de textes à partir d'un objet calendar.

    Inclure avec :

    <?php
    require_once 'Calendar/Decorator/Textual.php';
    ?>

  • Calendar_Decorator_Wrapper - permet d'ajouter des décorateurs aux fils de l'objet Calendar que vous utilisez. Le fils sera englobé par le décorateur spécifié au moment de l'appel à fetch() ou à fetchAll(), après un appel à build().

    Inclure avec :

    <?php
    require_once 'Calendar/Decorator/Wrapper.php';
    ?>

Ajoutez juste de l'eau chaude.. (Previous) Résumé de l'API Calendar (Next)
Last updated: Sun, 29 Aug 2010 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.