Kamelot Blog

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

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

mardi 26 juin 2007

mar
26
juin '07

SimpleXml et attribut(s) avec tiret(s) dans le nom

imaginez un fichier

<?xml version='1.0' standalone='yes'?>
<semaines>
  <semaine>
    <travail>
      au boulot
    </travail>
    <week-end>
      at home
    </week-end>
  </semaine>
</semaines>

si on veut le lire avec simpleXML

[php]
$xmlstr = file_get_contents('lefichier.xml');
$xml = new SimpleXMLElement($xmlstr);

echo $xml->semaine[0]->week-end;


// Il ne va pas être content avec le -

// Il faut écrire cela comme ceci


echo $xml->semaine[0]->{'week-end'};

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...

mardi 5 juin 2007

mar
05
juin '07

pear install-all

pear install-all n'existe pas, alors il faut l'inventer.

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

Tags