Kamelot Blog

Aller au contenu | Aller au menu | Aller à la recherche

dimanche 19 avril 2009

dim
19
avr '09

Config avec Zend ou Pear

Zend_Config et Pear::config sont conçus pour simplifier l'accès et l'utilisation des données de configuration dans les applications.

Les données de configuration peuvent venir de sources variées supportant une organisation hiérarchique des données.

Actuellement Zend_Config fournit des adaptateurs pour les données de configuration qui sont stockées dans des fichier textes avec Zend_Config_Ini et Zend_Config_Xml.

De son coté Pear::config propose Apache, GenericConf, IniCommented, IniFile, PHPArray, PHPConstants, XML.

Je ne suis pas encore à l'aise ni avec l'un, ni avec l'autre.

Ce qu'il me faut c'est :

  • une possibilité de gérer plusieurs fichiers qui regroupent "sémantiquement" les valeurs de configuration.
  • Ces fichiers doivent être administrables avec auteur et versionning des modifications.
  • Il faut une gestion de staging.
  • Il faut un éditeur de config auto généré.
  • un cache transparent qui évite un reparsing des fichiers.
  • Une possibilité d'overrider une valeur au niveau applicatif.

edit : Oops c'est article a été publié inachevé.

Le fond du problème c'est de se dire qu'une config c'est avant tout une liste de valeurs variable/paramétrable dont la valeur n'est pas assignée par le développeur, mais par un utilisateur.

  • un administrateur technique (même si c'est la même personne. Ce n'est pas la même casquette. Le développeur c'est celui qui crée le code, l'administrateur technique c'est celui qui dit comment il va fonctionner.)
  • un administrateur non technique qui n'a pas à bidouiller dans un fichier de config. (même s'il prétend en être capable)

Pour ce dont j'ai besoin

  • Il faut une gestion de staging. <- existe dans Zend_config (cfr commentaire fragile)
  • un cache transparent qui évite un reparsing des fichiers. <- possible avec PEAR et ZF
  • Une possibilité d'overrider une valeur au niveau applicatif. <- possible mais il faut le prévoir soigneusement dans le code

On avait implémenté plusieurs des autres points dans Claroline mais ce dernier n'utilise ni PEAR::Config, ni Zend_Config

L'idée est d'avoir une config de config.

Avoir une liste des valeurs de config avec leur définition, contexte, type, ...

Avoir un outil d'édition des fichiers de config qui se base sur ces listes pour

  • afficher le formulaire d'édition de des fichiers de config
  • versionner les modification de config, ou tout du moins "logguer"

Pear::Config

Pear::Config aide à manipuler votre configuration qu'elle soie stockée dans des fichiers XML, des tableaux PHP ou tout autre genre de source de données. Il comporte les fonctionnalités suivantes :

  • Analyser les différents formats de configuration.
  • Manipuler les sections, directives, commentaires, blancs de la manière que vous voulez.
  • Réécrire de nouveau les données dans votre format préféré.

L'objet de Config agit en tant que conteneur pour d'autres objets de Config_Container. Il ne fait pas beaucoup mais rend la tenue des opérations de E/S plus faciles. Il contient l'objet racine de Config_Container qui contient alternativement un objet enfant de Config_Container. Les objets Config_Container stockent des références à leur parent et ont un tableau d'enfants. Cette structure permet alors d'accéder à différent les conteneurs et leur contenu.

Un objet de Config_Container peut être de différents types :

  • Section: une section contient d'autres objets Config_Container.
  • Directive: une directive ne contient aucun autre objet mais a un contenu et un nom. Voyez-les comme des paires de clef-valeur.
  • Commentaire: comme les directives, les commentaires ont un contenu mais elles n'ont pas de nom. Elles sont rendues d'une manière spéciale selon le type de configuration que vous choisissez.
  • Blanc: elles n'ont ni contenu ni nom mais sont utilisées pour indiquer les interlignes si votre _renderer_ les emploie.

En utilisant le paquet Config, la majeure partie du travail est effectuée avec les objets Config_Container .

Zend_Config

On voit donc un petit avantage à PEAR_Config c'est qu'il propose aussi l'écriture.

Pour creuser Zend_Config : Différentes approches et sa partie 2

Claroline

Les valeurs de configuration actives seront stockées dans des fichiers de config contenant de simples array php.

[php]
<?php

/* campus_name : Name of your campus */
$claro_config['platform_name'] = 'My campus';

/* platform_language : Select the default language of the platform */
$claro_config['platform_language'] = 'english';

/* claro_stylesheet : Set the stylesheet layout */
$claro_config['platform_stylesheet'] = 'default.css';

/* administrator_name : Complete name */
$claro_config['administrator_name'] = 'John Doe';

/* administrator_email : This email is the main contact address on the platform */
$claro_config['administrator_email'] = 'John@doe.net';

/* administrator_phone : Phone */
$claro_config['administrator_phone'] = "";

/* institution_name : Name displayed in the top banner */
$claro_config['institution_name'] = 'My institute';

?>

Mais ce qui est particulier est en amont.

Dans claroline, on ne distribue plus jamais les fichiers de config. mais des fichiers de définition.

L'outil d'édition de config, (et d'install et d'upgrade) lit le fichier de définition et il lit les valeurs actives si elles existent dans les fichiers de config.

Ensuite il génère le forumlaire, on peut editer comme on veut puis dire, "appliquer", "restaurer les valeur par défaut", "abandonner"

Si on utilise "appliquer" il regénère tous les fichiers de conf concernés

L'avantage c'est qu'à l'upgrade on écrase les fichiers de définition pas les valeurs actives.

voici a quoi ressemble la définition d'une valeur de config.

[php]
<?php
   $toolConfProperties['CONFVAL_LOG_CALENDAR_INSERT'] = 
   array ('label'       => 'Logguer les ajouts d\'agenda' 
         ,'default'     => 'TRUE' 
         ,'type'        => 'boolean' 
         ,'display'     => TRUE 
         ,'readonly'    => FALSE 
         ,'container'   => 'CONST' 
         ,'acceptedval' => array ('TRUE'=>'enabled' 
                                 ,'FALSE'=>'dislabed' 
                                 ) 
         ); 
?>
  • CONFVAL_LOG_CALENDAR_INSERT <- nom du conteneur
  • container => 'CONST' <- type du conteneur

donc ici il génère un define('CONFVAL_LOG_CALENDAR_INSERT', ...)

  • default => 'TRUE' <- valeur proposée par défaut
  • type => 'boolean' <- permet de définir le contrôle sur valeur recue et l'aspect du formulaire on peut mettre boolean, integer, string, enum, enum+, ereg, si boolean,'acceptedval' => array ('TRUE'=>'enabled','FALSE'=>'dislabed') perment de mettre le nom à coté des radios
  • display = TRUE;
  • readonly = FALSE;

Ces deux là permettent d'afficher ou non une valeur dans l'éditeur et de la rendre editable ou non

un autre exemple

[php]
<?php
$toolConfProperties['DEFAULT_SUFFIX_MAIL']['default'] = '@fake.zz';
$toolConfProperties['DEFAULT_SUFFIX_MAIL']['type' ]   = 'regexp';
$toolConfProperties['DEFAULT_SUFFIX_MAIL']['acceptedval'] = '@(([0-9]{1,3}\.){3}[0-9]{1,3}|([0-9a-z][0-9a-z-]*[0-9a-z]\.)+[a-z]{2,4})$';
?>

Maintenant avec Zend ou Pear on pourrait transformer une partie de l'éditeur auto généré pour utiliser Zend_Form ou PEAR::Quickform2

Conclusion

Rien Ne me convient, je suis un difficile capricieux.

Il va falloir que je planifie tout ceci.

jeudi 22 janvier 2009

jeu
22
jan '09

PEAR :: Authentication

Première étape de mon passage en revue des classes de PEAR. Les Package PEAR pour l'Authentification

Stables

  • Auth : Création d'un système d'authentification. PHP License
  • Auth_HTTP Authentification http PHP License nécessite Auth_HTTP
  • Auth_PrefManager Classe de gestion de "préférences" PHP License
  • Auth_RADIUS Classes Wrapper pour le packege PECL RADIUS BSD
  • Auth_SASL Abstraction d'une série de mécanisme de réponse SASL BSD

Beta

  • LiveUser Boite à outil de gestion de comptes utilisateur et permissions LGPL
  • LiveUser_Admin Boite à outil pour l'administration des comptes gérés par LiveUser LGPL

Alpha

  • Auth_PrefManager2 Nouvelle version en préparation de la classe de gestion de "préférences" PHP License

Un peu plus sur le sujet

Auth

LiveUser

mercredi 17 décembre 2008

mer
17
dec '08

PEAR::Pager Liste des tutoriaux

Traduction d'une série d'articles de Lorenzo Alberton

Il lui est souvent posé des questions sur la façon d'utiliser PEAR::Pager. Cela va de la manière efficace de paginer des résultats lu dans une base de données, à l'utilisation combinée de PEAR::Pager et javascript ou de PEAR::Pager et AJAX, en passant par l'utilisation de PEAR::Pager et de mod_rewrite. Étant donné que ces questions sont de plus en plus récurrentes sur sa boîte mail ou sur les mailing-lists de PEAR, il a décidé d'écrire cette série de petits tutoriaux :

Vous désirez un sujet particulier? vous voulez utiliser Pager de façon inhabituelle? S’il vous plaît envoyez un mail à Lorenzo avec votre idée.

vendredi 29 août 2008

ven
29
aoû '08

Samalyse, Ressources PHP/PEAR

Il y en a comme moi qui traduisent, d'autres écrivent directement.

Voici 4 articles de plus faite chez Samalyse.

Cet exemple montre comment lier deux tables de données avec le composant Structures_DataGrid.

Ce tutoriel explique comment facilement générer des tableaux HTML à partir de données SQL, avec tri et pagination, en couplant deux composants PEAR : Structures_Datagrid et DB_Dataobject.

Librairie d'indexation de contenu XML. Ce composant permet de diminuer les temps d'accès aux données XML.

Contribution permettant d'utiliser des fichiers XML avec la librairie de gestion multi-langues Translation2.

jeudi 28 août 2008

jeu
28
aoû '08

PEAR::Pager tutorials. Navigation avec pagination et Ajax

Ce texte est une des traductions d'une série d'articles de Lorenzo Alberton Suite de PEAR::Pager tuto : Navigation avec pagination et Javascript simple

Comme vous avez pu le voir, the trick was setting the path parameter to an empty string and the fileName parameter to a javascript link, avec l'habituel marqueur "%s" pour le pageID.

Exemple #2: On veut de l'AJAX! On veut de l'AJAX!

Ok, maintenant que vous avez vu les bases, vous devriez avoir tous les éléments à aller plus loin.

Mais si vous êtes paresseux et voulez le voir quand même, voici un exemple sur la façon de faire la même chose que ce que nous avons vu avant, cette fois utilisant des appels AJAX chercher seulement les données utiles pour la page montrée.

Dans cet exemple, j'utilise la librairie PEAR::HTML_AJAX (docs):

Si vous ne pouvez pas attendre voyez cette démo, c'est l'exemple en fonctionnement, regardons comment il est fait :

1) Le fichier html:

nous incluons les fichiers js dynamiques (server.php) pour traiter les demandes AJAX, et appellons HTML_AJAX.replace ("target","testdata.php"), ce qui remplacera le contenu du DIV cible par le rendu du script testdata.php en utilisant un appel d'AJAX.

<html>
<body>
<h1>PEAR::Pager exemple avec AJAX</h1>
 
<script type="text/javascript" src="server.php?client=all"></script>
 
<div id="target">Je suis la cible</div>
 
<script type="text/javascript">
    HTML_AJAX.replace('target', 'testdata.php');
</script>
 
</body>
</html>
2) Le fichier testdata.php:

c'est un simple script php qui récupère les données que vous désirez afficher (Dais cet exemple, 100 entiers) et les renvoie au Paginateur.

L'output de ce script remplacera le contenu du DIV cible dans le premier fichier html.

Nous affichons également la date et l'heure courante pour nous prouver que les données sont « fraîches » et construites à chaque appel (c.-à-d. chaque fois que vous cliquez sur un lien de navigation).

<?php
require_once 'Pager.php';
$data = range(1, 100); //un tableau de données à paginer
$pager_params = array(
    'mode'     => 'Sliding',
    'append'   => false,  //ne pas ajouter les paramètres GET
    'path'     => '',
    'fileName' => 'javascript:HTML_AJAX.replace(\'target\',\'testdata.php?pageID=%d\');',  //Pager replaces "%d" with the page number...
    'perPage'  => 10, //afficher  10 item par page
    'delta'    => 1,
    'itemData' => $data,
);
$pager = & Pager::factory($pager_params);
$n_pages = $pager->numPages();
$links = $pager->getLinks();
echo '<p>Ce containeur est rempli avec un appel AJAX</p>';
echo '<p><span class="datetime">DateTime: '. date('Y-m-d H:i:s') .'</span></p>';
echo '<h3>Page '. $pager->getCurrentPageId() .'</h3>';
foreach ($pager->getPageData() as $item) {
    echo 'Item '. $item .'<br />';
}
echo '<hr />'.$pager->links;
?>
3) Finallement, le fichier server.php :

nous créons une instance de HTML_AJAX_Server pour livrer les les deux les bibliothèques de Javascript et pour traiter les demandes d'AJAX des navigateurs.



<?php
include 'HTML/AJAX/Server.php';
 
$server = new HTML_AJAX_Server();
$server->handleRequest();
?>

samedi 9 août 2008

sam
09
aoû '08

PEAR::PAGER, Paginations d'article, ou comment naviguer dans les paragraphes d'un article avec le paginateur

Ce texte est une des traductions d'une série d'articles de Lorenzo Alberton

Vous avez probablement vu beaucoup de sites Web comporter des articles longs et détaillés, qui sont coupés en paragraphes, chacun présenté dans une page séparée.

Les utilisateurs préfèrent souvent lire les morceaux courts du texte au lieu de faire défiler une très(trop) longue page (à moins qu'ils ne veulent l'imprimer).

Dans ce tuto, nous allons voir comment nous pouvons établir un système de paginations d'article, a l'aide de PEAR::Pager.

Lire la suite...

mardi 8 avril 2008

mar
08
avr '08

PEAR::Pager tuto paginer le résultat venant d'un db méthode 2

Après la la méthode #1 voici

Méthode #2: Pager_Wrapper à la rescousse!

La seconde méthode est d'utiliser le plus maniable Pager_Wrappers que vous pouvez trouver dans le répertoire /examples/ de votre installation de PEAR (ou via le visualiseur CVS). Ces fonctions faire tout le sale boulot pour vous, alors jetez un coup d'oeil.

Lire la suite...

mar
08
avr '08

PEAR::Pager tuto paginer le résultat venant d'un db méthode 1

PEAR:: Pager est écrit dans le but de paginer des tableaux. Bien que vous puissiez récupérer tous les enregistrements d'une base de données, de les stocker dans un tableau et de les transmettre aux Pager, cette méthode n'est pas particulièrement efficace.

Si vous avez des résultats un tant soit peu imposants, ce n'est pas du tout éfficace .

Il doit y avoir une meilleure façon!

En fait, il y a ...

la méthode #1

Lire la suite...

jeudi 30 août 2007

jeu
30
aoû '07

Phar 1.2.1

Greg Beaver a publié hier la nouvelle release de phar.

Il s'agit donc de la version 1.2.1 une extension php qui permet la création de système de fichiers complets à partir d'un simple fichier .Une archive auto-extractible(able ?) quoi.

Le bootstrap écrit en php permet l'autoextraction comme si il s'agissait d'un fichier exécutable ou plutôt un script shell.

La documentation sur son utilisation at sur la création d'archive phars est sur http://php.net/phar.

Cette version fixes une série de problèmes décrit dans le post précédent de Greg

Marcus a aussi participé à cette vague de correction, surtout sur la config du bootstrap utilisant les paramètres du fichier ini phar.extract_list avec module apache et autres (voir la liste complète).

Greg fini par un appel comme je les aime "looking forward to hearing your stories of using it."

dimanche 12 août 2007

dim
12
aoû '07

Token

Je suis en train de traduire la documentation du package pear PHP_codeSniffer, et je me demandais comment traduire le terme "token" parce que la traduction que j'en connaissais (jeton) ne me semblait pas correspondre. J'ai jeté un oeil sur wikipedia et j'y ai trouvé la réponse : Lexème

Le lexème est le morphème lexical d'un lemme, c'est-à-dire une unité de sens et de son qui n'est pas fonctionnelle ou dérivationnelle. Le lexème renvoie à une notion abstraite ou concrète indépendante de la situation de communication.

C'est un synonyme de radical dans la plupart des cas, surtout utilisé dans le cadre de la lexicologie en synchronie. En effet, diachroniquement, radical et lexème peuvent ne pas coïncider.

Ceci étant fait, il me reste à traduire correctement "tokenizer"

samedi 11 août 2007

sam
11
aoû '07

Manuel de PHP_codesniffer

Traduction en cours : php_codesniffer

Si ca vous intéresse, n'hésitez pas à me signaler les éventuelles probables erreurs.

mardi 17 juillet 2007

mar
17
juil '07

OpenID dans PEAR avec Services_Yadis

Sur le blog "Maugrim The Reaper's", annonce OpenID for PEAR: Services_Yadis proposed

Un package Services_Yadis a été proposé pour PEAR.

Celui-ci fournit une implémentation PHP5 des spécifications 1.0 de Yadis [1] une condition des spécifications de l'authentification 2.0 d'OpenID.

La proposition est une émane de la proposition de « Zend_Service_Yadis » de février du Zend Framework.

Les différences principales (près du PEARification) sont les gros bugs fixés.

Quoi qu'il en soit, à côté de Crypt_HMAC2 et de Crypt_DiffieHellman (qui ont passé l'étape du vote cette semaine - en attente d'un compte CVS) ca marquera une autre étape importante dans le support d'OpenID dans PEAR.

Merci à Christian Schmidt dont les commentaires venus très tôt sur la proposition de Yadis dans PEAR permis de régler des problèmes.

Notes

[1] Au fait la page n'existe pas dans wikipedia en français, ya pas quelqu'un de tenté par l'expérience :)

vendredi 29 juin 2007

ven
29
juin '07

PEAR::Date After seven years without docs, some examples using Date

Comme quoi, rien n'est impossible...

Diff of /peardoc/en/package/datetime.xml

cweiske Fri Jun 29 05:37:02 2007 UTC

 Added files:                 
   /peardoc/en/package/datetime	date.xml 
   /peardoc/en/package/datetime/date	examples.xml
 Modified files:              
   /peardoc/en/package	datetime.xml 
 Log:
 After seven years without docs, some examples using Date

lundi 18 juin 2007

lun
18
juin '07

Je suis glacé....

Bertrand GuggerJe viens d'apprendre avec effarement le décès de Toggg.

Bertrand était co-Learder des packages PEAR que je gère. Je me disais encore ce WE qu'il fallait que je trouve une occasion pour le rencontrer en chair et en os...

Je reconnaissais Toggg pour sa ténacité, ses coups de gueule, et son caractère bourru.

Je suis frigorifié.

Son absence laissera un vide, y compris sur irc, où je le côtoyais le plus.

mercredi 13 juin 2007

mer
13
juin '07

PEAR::Text_Highlighter

Sur ce blog j'utilise le bien connu Geshi pour obtenir une coloration syntaxique.

Pear propose un package ayant le même objectif.

Text_Highlighter

Réalisé par Andrey Demenev <demenev@gmail.com> Repris par stoyan Stoyan Stefanov

Ce package est composé d'une classe principale et de sous-classe par type de langage/marquage.

Une collection de base est proposée pour ces sous-classe, et une dernière permet de générer de nouvelles sous-classes à partir d'un fichier xml de définition. Cet en fait cette dernière qui fait l'interêt du package.

Voyons un premier exemple qui va s'afficher, avec une numérotation des lignes dans un marge de 8 caractères.

[php]
<?php
require_once 'Text/Highlighter.php';
require_once 'Text/Highlighter/Renderer/Html.php';
$options=array();
$options['numbers'] = HL_NUMBERS_LI;
$options['tabsize'] = 8;
$renderer =& new Text_Highlighter_Renderer_HTML($options);
$hl =& Text_Highlighter::factory('php');
$hl->setRenderer($renderer);
echo $hl->highlight(file_get_contents(__FILE__));
?>

le paramètre de

[php]
<?php    
$hl =& Text_Highlighter::factory('php'); 
?>

défini le langage à colorier celui de

[php]
<?php 
$hl->setRenderer($renderer);
?>

défini le format cible.

Il est possible de demander un formatage console.

Ici j'essaye en HTML : Oops le texte est en noir et blanc. En effet pour une souplesse maximum, le rendering html place des classes css et non des couleurs.

Il faut donc se créer une css pour colorer le texte.

toutes les classes css commencent par hl- ensuite vient le type "reserved" "var" "code" "identifier" "brackets'" "inlinetags''" ...

Si on veut mélanger plusieurs langages sur une même page, une option permet de préfixer la classe hl-var devient php-hl-var

Stoyan a rajouté une CSS lors de la dernière release.

La numérotation

[php]
<?php $options['numbers'] = HL_NUMBERS_LI; ?>

permet une numérotation en liste html

[php]
<?php  $options['numbers'] = HL_NUMBERS_TABLE; ?>

utilisera une <table> en 2 colonnes.

Le package est à ce jour en version Beta vieille d'une semaine

pear install text_highlighter-beta

Il n'a pas de dépendance, donc pas besoin de -o ou -a

il est cependant utile pour les packages

   * PEAR_PackageFileManager_Frontend_Web
   * PHP_Debug

La doc n'est pas encore traduite, si ca intéresse quelqu'un ;-)

mardi 12 juin 2007

mar
12
juin '07

PEAR :: Package :: Text_CAPTCHA

Le package Text_CAPTCHA_Numeral est d'une simplicité de base.

C'est une réalisation de David Coallier.

<?php
 require_once 'Text/CAPTCHA/Numeral.php';
 $numcap = new Text_CAPTCHA_Numeral();
 $operation = $num->getOperation();
 $resultatVoulu = $numcap->getAnswer();
?>

On affiche $opération et on stocke $resultatVoulu soit dans une session soit dans une table avec un id qui accompagnera $operation. et quand l'utilisateur rend sa réponse on la compare à $resultatVoulu.

C'est assez basique et facile à casser. Mais "accessible".

Je proposerais toutefois d'améliorer la question en transformant les nombres de l'opération par des chaines.

Notez qu'il y a 3 niveaux de difficulté.

<?php
$numcap = new Text_CAPTCHA_Numeral(1); // par défaut
$numcap = new Text_CAPTCHA_Numeral(2);
$numcap = new Text_CAPTCHA_Numeral(4);
?>

Le niveau 4, franchement, si on me pose 43/35. je pense qu'une machine à plus facile que moi.

(il suffit de mettre l'opération dans google) pour avoir la réponse.

samedi 9 juin 2007

sam
09
juin '07

PEAR::Console_Color

Ce matin j'ai traduit la mini doc du package Console_color

Il est assez simple, et propose d'écrire ses chaines à sortir en couleur sur une console ANSI avec un marquage simplifié, et de lui laisser les convertir.

Je me demande d'ailleurs s'il y a une console DOS qui permet d'interpréter ces marqueurs ANSI.

vendredi 8 juin 2007

ven
08
juin '07

PEAR 1.6.0

Et bien voilà, pendant que j'écrivais mon petit test sur les tag MP3 à lire avec un package PEAR, la version 1.6.0 de l'installeur de pear à été rendue disponible.

Lire la suite...

ven
08
juin '07

Lire et écrire les tags MP3 avec PEAR

Le package MP3_Id est stable. Le package MP3_IDv2 ne l'est pas encore mais il peut toutefois déjà lire et écrire les tags des mp3. Ce qui me semble appréciable.

L'exemple fournit dans le package montre tout d'un coup.

Ce qui fait 365 lignes de code, ca peut être rébarbatif, j'ai donc reprofité de mes voyages en train pour écrire un exemple plus simple juste pour la lecture.

Puis un pour écrire

Lire la suite...

lundi 4 juin 2007

lun
04
juin '07

Plus besoin de traverser l'atlantique pour retrouver ses paquets

PEAR se dote de mirroirs

Deux miroirs ont été mis en place dont un en allemagne.

Donc voilà, nous petit neuropéens pouvons faire un petit

pear config-set preferred_mirror de.pear.php.net

Enfin si ca marche du premier coup car chez moi

pear config-set preferred_mirror de.pear.php.net
config-set (preferred_mirror, de.pear.php.net, user) failed, 
 channel pear.php.net

Après m'être battu avec pear et reçu l'aide de Joshua et Christian, on (ils ont) a fini par trouver.

L'update du channel pear ne voulait pas se faire et donc les miroir n'étaient pas connus de mon PEAR.

Cela a pu être vérifié par l'absence de us.pear.php.net et de.pear.php.net dans le fichier .channels/pear.php.net.reg (plus ou moins lisible, c'est une sérialisation)

Solution :

  1. renommer channels/pear.php.net.reg en channels/pear.php.net.reg.bak
  2. pear update-channels
  3. pear config-set preferred_mirror de.pear.php.net

jeudi 31 mai 2007

jeu
31
mai '07

PEAR::Log

J'ai fait joujou avec log de PEAR

En gros je crée un singleton pour chaque type.

Je l'ajoute dans un composite puis je log.

Lire la suite...

mardi 22 mai 2007

mar
22
mai '07

Le nouveau PEAR est en marche

Lisez les Minutes de la réunion pear-group du 13 mai pour constater que ca va bouger.

Non pas que ca ne bougeait pas avant. Mais les minutes laissent présager un rehuilage de la machine.

lundi 14 mai 2007

lun
14
mai '07

FireBug & PEAR::Package::Log::1.9.11

La dernière release (1.9.11) du Package PEAR Log voit l'apparition d'un handler pour FireBug

J'ai bien envie d'essayer ca.

mercredi 9 mai 2007

mer
09
mai '07

Faire bouger PEAR

Arnaud demande ce que voudriez-vous voir changer dans PEAR ?.

Alors foncez.

vendredi 4 mai 2007

ven
04
mai '07

pear karma for Christophe Gesché

Voilà 4 ans, Rasmus Lerdrof, activait mon compte CVS sur PHP.net


 rasmus		Sun May  4 15:13:06 2003 EDT
 
   Modified files:      
     /CVSROOT	avail 
   Log:
   pear karma for Christophe Gesché

Le CVSSPAM : [PHP-CVS] cvs: CVSROOT / avail' - MARC

Tags