Introduction
| Avertissement |
Quelques classes de PEAR::Calendar requièrent
PEAR::Date. Il manque quelques fichiers à
la version 1.3.1beta de PEAR::Date, ce qui fait qu'elle
ne fonctionne pas.
Assurez-vous d'avoir PEAR::Date 1.4 ou supérieure
d'installé.
|
PEAR::Calendar est un paquet pour
générer des calendriers en tant que
structures de données. Il ne formate rien et ne se base sur aucune couche
d'abstraction, ce qui permet de l'utiliser dans différents cas. En même temps, ce
paquet fournit une API facile d'utilisation qui rend le formattage facile, par exemple un
calendrier HTML, tout en permettant de "connecter" le calendrier à votre couche
d'abstraction.
PEAR::Calendar a été
développé à cause de
l'absence d'alternatives en PHP. Il existe plusieurs
classes / utilitaires mais elles sont toutes dédiée à un rendu
spécifique (typiquement du HTML avec des possibilités limitées de
personnalisation sans avoir à retoucher le code) et dépendent souvent sur
un type particulier de données (comprendre MySQL). Cela pose de grosses
restrictions sur les cas où elles peuvent être appliquées. Par
contraste, PEAR::Calendar se borne à éliminer
les calculs de la génération de calendriers, permettant à l'utilisateur
final de traverser simplement une structure de données préparée.
Quelques bénéfices / fonctionnalités de
PEAR::Calendar :
Vous pouvez obtenir le rendu que vous voulez (comme du (X)HTML, WML, SOAP,
XML-RPC, ASCII en ligne de commande ou ce que vous voulez).
Générer un calendrier devient aussi simple que boucler sur le
résultat d'une requête SQL.
Tous les "objets date" sont traités de l'année à la seconde (cela
signifie que vous pouvez générer un calendrier complet de l'année
avec des mois et des jours tout comme vous pouvez générer un "agenda
par semaine / jour")
Permet de générer des calendriers "tabulaires" facilement.
Toute date peut facilement être validée (est-ce que le 29 Fév 2003
est valide ?).
Fonctionne bien avec de gros nombres et des API orientées objet.
La navigation dans les calendriers est facile (fournir un lien du 1er Janvier 2004 au 31
décembre 2004 n'est pas un problème).
Il retourne des valeurs numériques pour toutes les opérations, ce qui
signifie que vous n'êtes pas obligés d'utiliser les noms anglais pour les mois
par exemple. Vous les
générerez vous-mêmes avec des fonctions PHP telles que strftime()
et setlocale().
La représentation des dates peut être obtenue sous un format lisible par
l'homme, ou en tant que timestamp Unix, selon le moteur de calendrier que vous
utilisez.
Vous pouvez ajouter vos propres fonctionnalités au calendrier en créant
des Decorators.
Vous permet d'écrire des applications N-tierces, avec des couches.
Le "moteur de calcul" du calendrier est abstrait, ce qui signifie que vous n'êtes
pas obligés d'utiliser le calendrier Gregorien - vous pouvez écrire un
calendrier Tolkiénien
si vous voulez. Actuellement, des "moteurs" basés sur Unixtimestamps (par
défaut) et PEAR::Date ont été
implémentés.
Exemple 34-1. Un exemple simple <?php
require_once 'Calendar/Month.php';
$Month = new Calendar_Month(2003, 10); // October 2003
$Month->build(); // Construire les jours du mois
// On boucle dans les jours..
while ($Day = $Month->fetch()) {
echo $Day->thisDay(), '<br />';
}
?> |
|
Note : il y'a plusieurs exemples complets fournis avec le paquet
PEAR::
Calendar.