Zend_ProgressBarIntroductionZend_ProgressBar est un composant pour créer et mettre à jour les barres de progression dans différents environnements. Il consiste en un backend unique, qui affiche la progression au travers de l'un des multiples adaptateurs. A chaque mise à jour, il prend un chemin absolu et un message d'état, et appelle ensuite l'adaptateur avec certaines valeurs précalculées comme le pourcentage et le temps restant estimé. Utilisation basique de Zend_ProgressbarZend_ProgressBar est assez simple d'utilisation. Vous créez simplement une nouvelle instance de Zend_Progressbar, en définissant des valeurs minimum et maximum, et en choisissant un adaptateur pour afficher les données. Si vous voulez travailler avec un fichier, vous pouvez faire comme ceci :
Dans un premier temps, une instance de Zend_ProgressBar, avec une valeur minimum de 0, une valeur maximum correspondant à la taille totale du fichier et un adaptateur spécifique. Ensuite on travaille avec le fichier et à chaque boucle la barre de progression est mise à jour avec le nombre d'octets courant. A la fin de la boucle, le statut de la barre de progression est réglé à terminé. Zend_ProgressBar possède aussi une méthode refresh() qui recalcule le temps restant estimé et met à jour l'adaptateur. Ceci est pratique quand il n'y a aucune donnée à mettre à jour mais que vous souhaitez que la barre de progression soit mise à jour. Adaptateurs standardZend_ProgressBar est fourni avec les deux adaptateurs suivants : Zend_ProgressBar_Adapter_ConsoleZend_ProgressBar_Adapter_Console est un adaptateur de type texte pour les terminaux. Il peut automatiquement détecter la largeur du terminal mais supporte aussi des largeurs personnalisées. Vous pouvez définir quels éléments seront affichés avec la barre de progression et personnaliser leur ordre. Vous pouvez aussi définir le style de la barre de progression elle-même.
Vous pouvez paramétrer les options de l'adaptateur soit via les méthodes
Zend_ProgressBar_Adapter_JsPushZend_ProgressBar_Adapter_JsPush est un adaptateur qui vous permet de mettre à jour une barre de progression dans un navigateur au travers de Javascript. Ceci veut dire qu'une seconde connexion n'est pas nécessaire pour recueillir le statut du processus courant, mais que le processus lui-même envoie son statut directement au navigateur.
Vous pouvez paramétrer les options de l'adaptateur soit avec les méthodes
L'utilisation de cet adaptateur est assez simple. Premièrement vous créez une barre de
progression pour le navigateur, soit avec Javascript ou auparavant en pur HTML. Ensuite vous
définissez une méthode de mise à jour et optionnellement une méthode de finalisation en
Javascript, les deux acceptant un objet JSON en tant qu'unique argument. Ensuite vous
appelez une page Web avec un processus chronophage dans une balise
Example #1 Exemple basique du fonctionnement côté-client Cet exemple illustre un paramétrage basique du HTML, CSS et JavaScript pour l'adaptateur JsPush :
Ceci créera un simple conteneur avec une bordure noire et un bloc qui indique le
niveau du processus courant. Vous ne devez pas masquer l' Plutôt que de créer votre barre de progression personnalisée, vous pouvez utiliser une de celles disponibles dans les librairies JavaScript comme Dojo, jQuery etc. Par exemple, il existe :
Zend_ProgressBar_Adapter_JsPullZend_ProgressBar_Adapter_JsPull est l'opposé de jsPush, car il requiert de venir récupérer les nouvelles mises à jour, plutôt que d'envoyer les mises à jour vers le navigateur. Généralement, vous devriez utiliser l'adaptateur avec l'option de persistance de Zend_ProgressBar. Lors de l'appel, l'adaptateur envoie une chaîne JSON vers le navigateur, qui est comparable à la chaîne JSON envoyée par l'adaptateur jsPush. La seule différence est qu'il contient un paramètre supplémentaire finished, qui vaut FALSE quand update() est appelée ou TRUE quand finish() est appelée. Vous pouvez paramétrer les options de l'adaptateur soit avec les méthodes set*() soit en fournissant un tableau ("array") ou une instance de Zend_Config contenant les options en tant que premier paramètre du constructeur. Les options disponibles sont :
|