Dans l'article précédent, nous avons présenté le concept de PEAR, les règles de codage et les méthodes d'utilisation simples. Vous en avez peut-être une première compréhension. Cette fois, nous présenterons les fonctions de certains modules de la bibliothèque PEAR existante et son utilisation.
1. Convention de dénomination Avant de comprendre le module pear existant, comprenons d'abord la classification organisationnelle et la convention de dénomination de PEAR. L'organisation des modules dans PEAR est similaire à celle du CPAN. Les fichiers pertinents de chaque module sont placés dans son propre répertoire de catégorie, et certains sont placés directement sous le répertoire racine de pear (fichier unique). Puisque PEAR n'a pas d'espace de nom comme Java, le nom de votre classe doit refléter la relation entre le nom de votre module ou le nom de la classe parent et adhérer à certaines conventions. Par exemple, le nom de votre module : "Mp3/common", puis votre fichier php. doit être situé à l'adresse : Mp3/common.php, et le nom de classe de votre module doit être : Mp3_common. De manière générale, si votre module est amélioré à partir d'un module existant, il est recommandé de mettre votre module et le module existant dans le même répertoire. Si vous concevez une nouvelle classe ou un nouveau module, vous pouvez créer vous-même un nouveau répertoire ou les placer dans le même répertoire à des fins similaires. Par exemple, si vous écrivez un nouveau module pour le traitement des journaux, il est recommandé de le placer sous Log/, indiquant qu'il s'agit d'un module d'application pour le traitement des journaux, si le nouveau module est utilisé pour le traitement des MP3, vous pouvez alors créer A ; le nouveau répertoire mp3 est placé sous le répertoire mp3.
2. Modules PEAR existants Puisque la plupart des modules de Pear sont encore en développement, voici les modules dans pear publiés avec php4.05. Il convient de noter que certaines classes abstraites ou classes de base (telles que Mail.php, Log.php, Cache. .php) ne sont pas répertoriés, nous nous concentrons uniquement sur les modules dotés de fonctions spécifiques. Voici une liste de ces modules :
Benchmark/Timer teste l'efficacité d'exécution d'un morceau de votre code PHP.
Benchmark/Benchmark_Iterate teste les performances d'une fonction lorsqu'elle est exécutée en boucle
Cache/Output peut mettre en cache la sortie de votre script php. Il peut être mis en cache de différentes manières (dans des fichiers, des bases de données ou dans la mémoire partagée, cela peut augmenter la charge sur le serveur, donc si vous le souhaitez). passer Pour améliorer l'efficacité en mettant en cache les scripts dynamiques, vous pouvez aussi bien utiliser Zend optimiser. Ce module n'est peut-être pas adapté.
Cache/Graphiques peuvent mettre en cache les images dont vous avez besoin pour générer dynamiquement
Module de traitement des paramètres de ligne de commande Console/Getopt
CMD est un shell virtuel qui peut être utilisé pour exécuter certaines commandes système.
Crypt/CBC implémente la simulation du module Perl Crypt::CBC
Crypt/HCEMD5 implémente les fonctions du module Perl Crypt::HCE_MD5
Date/Calc implémente les opérations liées à la date
Conversion de date/calendrier humain
DB fournit une couche d'opération de base de données unifiée et abstraite, et le backend prend en charge plusieurs bases de données.
Recherche de fichier/Rechercher un fichier
File/Passwd manipule les fichiers de type mot de passe, tels que password, httppass, cvspassword
File/SearchReplace Rechercher et remplacer une chaîne dans un fichier
HTML/Form peut créer rapidement des formulaires en HTML
HTML/IT implémente la personnalisation des modèles et génère dynamiquement des pages, similaire à la fonction de modèle dans phplib, mais cela doit être simple et facile à utiliser
HTML/ITX implémente des fonctions étendues pour l'informatique, vous permettant de personnaliser vos modèles de manière plus flexible et de réaliser des opérations plus complexes.
Extension de HTML/Processor XML_Parser pour qu'il puisse être appliqué au fonctionnement des fichiers html
HTTP/Compress est une classe wrapper pour le mécanisme de mise en mémoire tampon de sortie de Php, qui peut également compresser et stocker le contenu mis en mémoire tampon.
Image/Remote peut obtenir les informations d'image du système distant sans télécharger l'intégralité de l'image localement.
Log/composite Horde est une extension de la classe abstraite de journal qui permet à plusieurs objets de traitement de journal d'obtenir le même événement de journal. Notez que les modules du répertoire Log font tous partie du projet Horde et que la plupart d'entre eux sont des super classes abstraites.
Journal/fichier écrit les informations du journal dans un fichier
Log/mcal envoie des informations à la base de données du logiciel de gestion d'horaires local ou distant-mcal
Une superclasse d'Observer dans Log/observer Horder
Log/sql envoie les informations du journal à la base de données SQL
Log/syslog envoie des informations à syslog
Mail/RFC822 Vérifie si une adresse e-mail est une adresse e-mail rf822 valide
Mail/sendmail Utiliser sendmail pour envoyer des lettres
Mail/smtp utilise le serveur smtp pour envoyer des lettres
Math/Fraction gère les calculs mathématiques des fractales
Math/Util calcule le plus grand diviseur commun
NET/Curl est un wrapper orienté objet pour l'extension Curl de PHP.
NET/Dig manipule dig pour effectuer des opérations de requête liées au DNS
NET/SMTP utilise NET/Socket pour implémenter le protocole SMTP
NET/Socket classe Socket universelle qui implémente le packaging des opérations de socket couramment utilisées
Nombres/Conversion romaine entre chiffres arabes et chiffres romains
Payment/Verisign implémente une interaction avec la passerelle de paiement Verisign
Pear fournit deux classes de base du module Pear, les classes PEAR et PEARError.
PEAR/Installer La classe d'installation pear fournit des fonctions similaires au module CPAN en Perl.
PHPDoc génère automatiquement la documentation API à partir du code php
Schedule/at interagit avec le démon AT sous Unix
XML/Parser est un analyseur XML basé sur l'extension XML de PHP.
XML/Render génère des documents XML dans d'autres formats (html, pdf). Il s'agit simplement d'une classe abstraite. Il existe déjà une implémentation de HTML dans le dernier code Pear CVS.
XML/RPC utilise php pour implémenter une classe abstraite de xml-rpc. Dans le dernier code pear cvs, il existe déjà une implémentation de xml/RPC/Server
3. Introduction à l'utilisation des modules principaux. des plus couramment utilisés et leurs fonctions. Il est relativement complet et stable et peut être utilisé dans des modules "pratiques". Plusieurs modules puissants tels que Db, phpdoc, XML_Parser, IT et ITX seront présentés séparément dans les prochains articles.
1.POIRE/Installateur
Ce module est le module de base de pear lui-même. Il complète l'installation et la maintenance des autres modules de pear. Il est similaire à la fonction du module cpan en perl, mais il n'a actuellement que la fonction d'installation. la vérification des dépendances, etc. n'est pas terminée. Pear lui-même Il n'y a pas de site ouvert comme cpan, mais à mesure que le nombre de développeurs participant à pear continue d'augmenter, tout sera là.
Syntaxe d'utilisation : PEAR_Installer::installer($file)
$file est le fichier du module qui doit être installé. Il peut s'agir d'un fichier local ou d'un fichier distant, tel que http:// ou ftp. Le programme d'installation le téléchargera automatiquement localement. Les fichiers sont généralement empaquetés à l'aide de gzip, qui doit inclure un package. Le fichier DTD de pacakage.xml se trouve dans le répertoire pear et son nom est package.dtd
<?php.
require_once "PEAR/Installer.php" ;
$installer = nouveau PEAR_Installer ;
//Installe le module spécifié
$result = $installer->install($package_file);
si (PEAR::isError($result)){
echo "L'installation de $package_file a échoué !";
}autre {
echo "Installez $package_file avec succès !";
}
?>
2.CMD
Bien que la plupart des applications PHP appellent rarement des commandes système, car ces applications sont basées sur le Web, du point de vue de l'efficacité de fonctionnement et de la charge du système, les appels directs aux commandes système doivent être évités. Cependant, dans certaines applications spéciales ou si vous le souhaitez. PHP est utilisé comme un outil shell, il est inévitable d'appeler des outils système existants. CMD vous permet d'exécuter facilement une série de commandes système.
Syntaxe d'utilisation : setOption ($option, $setting)
Définir le paramètre $options sur $setting
$options est une constante, il peut s'agir des valeurs suivantes :
CMD_SHUTDOWN : exécuter des commandes via la fonction d'arrêt
CMD_SHELL : Spécifiez le chemin du shell
CMD_OUTPUT : s'il faut bloquer la sortie standard de la commande
CMD_NOHUP : utilisez nohup pour exécuter des commandes en arrière-plan
CMD_VERBOSE : Imprimer les erreurs sur
la commande de sortie standard ($ commande)
Ajoutez la commande qui doit être exécutée. $command peut être un tableau ou une chaîne ordinaire
exec().
Exécutez la commande ajoutée
<?php
require_once "CMD.php" ;
$cmd = nouveau CMD ;
$cmd->command('tar zcvf test.tar.gz ~/test');
si ( $cmd->exec() ) {
echo "succès !n" ;
} ailleurs {
echo "Erreur :" $cmd->lastError ;
}
?>
3.Benchmark/Timer et Benchmark/Itérer
Ces 2 modules vous permettent de tester l'efficacité de l'exécution de votre code, ce qui me semble utile pour le débogage du système : vous pouvez essayer différents algorithmes, examiner attentivement le temps d'exécution de chaque algorithme, puis choisir la meilleure méthode. Benchmark/Timer teste la différence de temps entre deux moments différents pendant le fonctionnement. Benchmark/Iterate est une extension de Timer pour tester le temps nécessaire pour exécuter un certain morceau de code (fonction) n fois.
Syntaxe d'utilisation : Benchmark/Timer
Timer::setMarker($name) définit le point temporel actuel sur $name
Timer::start() commence les tests
Timer::stop() arrête les tests
Timer::timeElapsed($start = 'Start', $end = 'Stop') Calculez le décalage horaire entre $start et $end.
Timer::getProfiling() renvoie le temps écoulé entre le démarrage et l'arrêt
<?php
require_once "Benchmark/Timer.php" ;
$timer = nouveau Benchmark_Timer ;
$timer->start();
$timer->setMarker('Marqueur 1');
$timer->stop();
$profiling = $timer->getProfiling();
?>
Benchmark/Itérer
Iterate::run()
Exécute la fonction spécifiée dans une boucle. Il s'agit d'une méthode avec des paramètres variables. Le premier paramètre est le nombre de boucles, le deuxième paramètre est la fonction à exécuter et le troisième paramètre est les paramètres à transmettre à la fonction de test.
Itérer ::get()
Renvoie le temps mis par le test
<?php
require_once "Benchmark/Iterate.php" ;
$benchmark = nouvelle fonction Benchmark_Iterate
foo($string)
{
imprimer $string."
" ;
}
$benchmark->run(100, 'foo', 'test');
$result = $benchmark->get();
?>
3.Fichier/Rechercher
&glob ($pattern, $dirpath, $pattern_type='php')
Rechercher les répertoires et les fichiers correspondant à $pattern dans $dirpath et renvoyer un tableau de noms de fichiers et de répertoires correspondants
&search ($pattern, $directory, $type='php')
Recherchez dans $directory les fichiers qui correspondent aux règles de $pattern et renvoyez un tableau de noms de fichiers correspondants (remarque, uniquement les fichiers, pas les sous-répertoires). $pattern est la condition de recherche à spécifier, généralement une expression régulière. $patten_type spécifie le mode d'expression régulière à utiliser. La valeur par défaut est le mode php. Vous pouvez également spécifier "perl" pour utiliser l'expression régulière du mode perl
. search Contrairement à glob, glob ne recherche pas les sous-répertoires de manière récursive, tandis que search recherche les sous-répertoires de manière récursive.
<?php
require_once "Fichier/Find.php" ;
$find = nouveau File_Find ;
//Recherche dans le répertoire courant
$php_files = $find->glob("*php",".");
si ( PEAR::isError( $php_files ) ){
mourir "Erreur : " . $php_files->getMessage() ."n" ;
}
//Recherche récursive dans le répertoire courant
$all_php_files = $find->search("*php",".");
si ( PEAR::isError( $all_php_files ) ){
mourir "Erreur : " . $php_files->getMessage() ."n" ;
}
?>
4.Fichier/Mot de passe
Manipulez les fichiers au format de mot de passe, similaire au mot de passe Unix standard, au fichier de mot de passe .htppass d'Apache et au fichier de mot de passe pserver de cvs. À en juger par la version actuelle du code, il ne peut pas vraiment être utilisé pour gérer ces fichiers passwd (par exemple, shadow n'est pas pris en charge). Mais vous pouvez l'utiliser pour créer un fichier de mots de passe similaire, bien sûr, la sécurité ne sera pas très élevée.
Comment utiliser :
File_Passwd($file,$lock=0)--------------Créer un objet $file est le fichier passwd que vous souhaitez utiliser $lock spécifie s'il faut utiliser flock pour verrouiller le fichier.
addUser($user,$pass,$cvsuser)--------------Ajouter un utilisateur, $user, $pass sont respectivement le nom d'utilisateur et le mot de passe, $cvsuser est l'ID de l'utilisateur cvs
modUser($user,$pass,$cvsuser)--------------Changez le mot de passe de $user en $pass, $cvsuser est l'identifiant de l'utilisateur cvs
delUser($user)----------Supprimer l'utilisateur spécifié $user
verifyPassword($user,$pass)--------------Vérifier le mot de passe de l'utilisateur
close()---------------Enregistrez les modifications apportées tout à l'heure au fichier de mots de passe, fermez le fichier de mots de passe et déverrouillez le fichier.
5.Fichier/RechercheRemplacer
Comment
rechercher et remplacer des chaînes dans des fichiers
: File_SearchReplace($find, $replace, $files, $directories = '', $include_subdir = 1, $ignore_lines = array())génère et définit l'objet
$find
La chaîne à rechercher, qui peut être une chaîne ou une expression régulière
$replace
La chaîne à remplacer, qui peut être une chaîne ou une expression régulière
$files
Spécifiez dans quels fichiers effectuer l'opération de remplacement, un tableau ou une chaîne séparée par ","
$directories
Spécifiez le répertoire dans lequel opérer, facultatif, un tableau ou une chaîne séparée par ","
$include_subdir
En cas d'opération dans un répertoire, spécifie s'il faut effectuer l'opération ci-dessus de manière récursive dans les sous-répertoires, qui peut être une valeur de 1 ou 0.
$ignore_lines
Spécifiez les lignes de fichier à ignorer. Il s'agit d'un tableau. Toutes les lignes de fichier commençant par n'importe quelle chaîne de ce tableau seront ignorées.
getNumOccurences()
Renvoie le nombre de fois qu'une recherche et un remplacement ont été effectués
getLastError()
Renvoie le dernier message d'erreur
setFind($find)
Définir la chaîne à trouver
setReplace($replace)
Définir la chaîne à remplacer
setFiles($files)
Définir le fichier à remplacer
setDirectories($directories)
Définir le répertoire à remplacer
setIncludeSubdir($include_subdir)
Définir s'il faut également effectuer une recherche et un remplacement dans les sous-répertoires
setIgnoreLines($ignore_lines)
setSearchFunction ($ search_function)
uniquement lorsque vous utilisez la fonction de recherche "normale"
Définissez la fonction de recherche à utiliser, qui peut être les paramètres suivants :
valeur par défaut normale, utilisez la fonction file pour lire le contenu du fichier, puis utilisez str_replace pour le remplacer ligne par ligne.
quick utilise str_replace pour remplacer directement l'intégralité du fichier
preg utilise preg_replace() pour remplacer, vous pouvez utiliser des expressions régulières qui répondent aux exigences de cette fonction
ereg utilise ereg_replace() pour remplacer, vous pouvez utiliser des expressions régulières qui répondent aux exigences de cette fonction
faireRecherche()
Effectuer une opération de recherche et de remplacement
<?php
require_once "Fichier/SearchReplace.php" ;
require_once "File/Find";
//Recherche récursive dans le répertoire courant
$find = nouveau File_Find ;
$all_php_files = $find->search("*php",".");
si ( PEAR::isError( $all_php_files ) ){
mourir "Erreur : " . $php_files->getMessage() ."n" ;
}
si ( !count($all_php_file) ){
die "AUCUN fichier source php trouvé !n" ;
}
//Corrigez le drapeau php de <? en <?php pour se conformer au standard pear
$replace = new File_SearchReplace('<? ','<?php ',$all_php_files);
$replace->doSearch();
if ( $replace->getLastError() ) {
die "Une erreur s'est produite :" $replace->getLastError();
} autre {
echo "Un total de " . $replace->getNumOccurences() " a été remplacé avec succès. n";
}
?>
6.HTML/Formulaire
Ce module vous permet de générer rapidement un formulaire de soumission sans avoir à réécrire le code HTML.
Utilisation : Form::HTML_Form($action, $method = 'GET', $name = '', $target = '' )
Le constructeur de cette classe a certains paramètres, qui sont fondamentalement les mêmes que les paramètres de formulaire habituellement écrits en code HTML. $action est l'URL à soumettre dans le formulaire, $name peut spécifier le nom du formulaire et $target Spécifie s'il faut l'ouvrir. une nouvelle fenêtre, etc.
La série de méthodes addXXX suivante est utilisée pour ajouter les contrôles correspondants à ce formulaire. Les propriétés des contrôles sont également cohérentes avec celles du HTML.
addText($nom, $titre, $default, $size = HTML_FORM_TEXT_SIZE)
addCheckbox ($ nom, $ titre, $ par défaut)
addTextarea($nom, $titre, $default,$width = HTML_FORM_TEXTAREA_WT,$height = HTML_FORM_TEXTAREA_HT)
addPassword ($ nom, $ titre, $ par défaut, $ taille = HTML_FORM_PASSWD_SIZE)
addSubmit($name = "soumettre", $title = "Soumettre les modifications")
addReset ($title = "Annuler les modifications")
addSelect($name, $title, $entries, $default = '', $size = 1,$blank = '', $multiple = false, $attribs = '')
addRadio ($ nom, $ titre, $ valeur, $ par défaut)
ajouterImage($nom, $src)
addHidden ($ nom, $ valeur)
Affichage ()
Afficher ce formulaire
<?php
require_once "HTML/Form.php" ;
//Créer et afficher le formulaire de connexion
$monformulaire = new HTML_Form("./login.php");
$myform->addText('nom d'utilisateur','nom d'utilisateur','');
$myform->addPasswd('passwd','Mot de passe de connexion',20);
$myform->addHidden('retry','1');
$monformulaire->addSumit('login','login');
$monformulaire->Affichage();
?>
7.Courrier/RFC822
Vérifier si un e-mail saisi est légal n'est pas une tâche facile. Vous pouvez essayer d'utiliser certaines expressions régulières pour vérifier, mais ce n'est pas si pratique et efficace. Désormais, si vous souhaitez vérifier si une série d'adresses e-mail est conforme à la norme RFC822 et les diviser en adresses e-mail distinctes, vous pouvez essayer ce module, très simple et pratique.
Utilisation : constructeur de classe Mail_RFC822 ($address = null, $default_domain = null, $nest_groups = null, $validate = null)
, $address est une série d'adresses que vous souhaitez vérifier, $default_domain, spécifie le nom de domaine ou le nom d'hôte par défaut, $nest_groups S'il faut regrouper la sortie afin que $validate doive valider chaque atome parseAddressList($address = null, $default_domain = null, $nest_groups = null, $validate = null) analyser la validation donnée La liste d'adresses Si l'adresse est. valide, la liste d'adresses fractionnée est renvoyée. Si une erreur se produit, un message d'erreur est renvoyé.
<?php
require_once "Mail/RFC822.php" ;
$rf822 = nouveau Mail_RFC822 ;
$result=$rf822->paseAddressList('who;[email protected];[email protected]');
si ( $rf822->erreur ){
echo "Erreur :$résultat" ;
}autre {
réinitialiser($résultat);
pour ($i=0; $i< nombre($result);$i++){
echo "email:$result[$i]n";
}
}
?>
8.Courrier/Envoyer un courrier
Sendmail est le MTA le plus couramment utilisé sur unix/linux. Ce module vous permet d'utiliser sendmail directement pour envoyer des lettres.
Utilisation : Le constructeur de classe Mail_sendmail($params)
est un tableau associatif. Seul 'sendmail_path' est valide, utilisé pour définir le chemin sendmail send($recipients, $headers, $body) pour envoyer des lettres. $recipients est l'adresse e-mail de votre destinataire, qui peut être unique ou séparée par la liste d'adresses ouverte. peut être ouvert tant qu’il répond à la norme RFC82. $headers est l'en-tête de la lettre que vous envoyez. Il s'agit d'un nombre associatif. La clé du tableau est le nom de l'en-tête (par exemple, Sujet) et la valeur du tableau est la valeur de l'en-tête (par exemple, Bonjour !). . Le papier à en-tête traité sera : Sujet : Hello $body ! est le corps de la lettre, y compris toutes les parties codées en MIME. En cas de succès, renvoie vrai, sinon renvoie un objet PEAR_Error
<?php
require_once "Mail/sendmail.php";
$sendmail = new Mail_sendmail(array('sendmail_path=>'/usr/local/bin/sendmail'));
$header = array('Sujet'=>'Bonjour','BCC'=>'[email protected]');
$body = 'Ceci est un message test de nightsailer.com';
$result = $sendmail->send( '[email protected]' , $header, $body);
si ( PEAR::isError($result) ){
echo "<h1> Échec de l'envoi</h1><br>Raison : ".$result->getMessage()."<br>";
}autre {
echo "<h1>Félicitations ! Envoyé avec succès !</h1><br>";
}
?>
9.Courrier/smtp
Certains sites n'autorisent actuellement pas l'utilisation de sendmail, donc si votre programme PHP souhaite utiliser la fonction d'envoi de mail, il doit être capable de compléter la fonction correspondante en utilisant un serveur SMTP externe.
Utilisation : L'utilisation de ce module est fondamentalement la même que celle de Mail::sendmail. A noter que ce module nécessite l'utilisation du module Net::SMTP : Mail_smtp($params)
Les paramètres valides pour $params sont :
Adresse du serveur SMTP 'hôte', la valeur par défaut est localhost
'port' port du service SMTP, la valeur par défaut est 25
'auth' Si SMTP nécessite une vérification d'autorisation, la valeur par défaut est false
'usename' nom d'utilisateur autorisé SMTP
'mot de passe'
envoi du mot de passe autorisé smtp ($ destinataires, $ en-têtes, $ corps)
envoyer
<?php
require_once "Mail/sendmail.php";
$params=array('host'=>'smtp.nightsailer.com','auth'=true,
'nom d'utilisateur'=>'nuit','mot de passe'=>'123456');
$sendmail = nouveau Mail_sendmail($params);
$header = array('Sujet'=>'Bonjour','BCC'=>'[email protected]');
$body = 'Ceci est un message test de nightsailer.com';
$result = $sendmail->send( '[email protected]' , $header, $body);
si ( PEAR::isError($result) ){
echo "<h1> Échec de l'envoi</h1><br>Raison : ".$result->getMessage()."<br>";
}autre {
echo "<h1>Félicitations ! Envoyé avec succès !</h1><br>";
}
?>
10.Horaire/À
Ce module fournit l'interface
add($cmd, $timespec, $queue = false, $mail = false)
du programme at sous unix.
En ajoutant une commande at,
cette méthode générera un travail personnalisé pour le programme at :
$cmd est le programme ou le script que vous souhaitez exécuter
$timespec est l'heure à laquelle le travail commence à s'exécuter, le format est le même que celui requis par at
Paramètre facultatif $queue, indiquant le nom de la file d'attente du travail
Paramètre facultatif $mail, indiquant s'il faut envoyer un e-mail pour signaler les résultats en cours d'exécution une fois la tâche terminée.
show($queue = false)
La commande affichée dans la file d'attente renvoie un tableau associatif. La clé du tableau est le numéro de travail. La valeur de la clé correspondante est également un tableau associatif (runtime, queue $ est un paramètre facultatif). peut l'utiliser. Limit pour renvoyer uniquement la liste des tâches dans la file d'attente dont le nom de file d'attente correspond à $queue
remove($job = false)
Supprimez le travail at spécifié de la file d'attente at. $job est le numéro du travail à supprimer, en cas de succès, renvoie true, sinon renvoie false
<?php.
require_once "Schedule/At.php" ;
$à = nouveau Schedule_At();
// Générer et ajouter un travail
$result = $at->add ('trouver / -type fichier -nom core -exec rm -f {} ;','00:00');
si ( PEAR::is_Error($result) ) {
echo "Impossible d'ajouter le travail !n";
echo "Raison : $result->getMessage() n" ;
sortie;
}
//Affiche le courant dans la file d'attente
$queue = $at->show();
si ( PEAR::isError($queue) ) {
echo "Une erreur s'est produite !n";
echo "Raison :" . queue->getMessage().
sortie;
}
réinitialiser( $file d'attente );
while ( list($job, $cmd) = chaque $queue ){
echo "[$job]" . $cmd['runtime'] .$cmd['file d'attente'];
écho "n"
}
?>
Ce qui précède concerne les utilisations de certains modules PEAR. Pour des instructions plus détaillées, vous devez vérifier vous-même les fichiers sources de ces modules, ou vous pouvez utiliser phpdoc pour générer automatiquement les documents API de ces modules. Concernant phpdoc, nous en parlerons en détail dans le prochain article.
4. Ressources
PEAR CVS Vous pouvez obtenir le dernier code source PEAR à partir d'ici
Projet Hoder
Page d'accueil de PHPDoc