Toute l'actualité francophone sur PHP en un seul flux

Mai 2007 – tigrou/pwet.fr: Nettoyage des sessions dans eZ Publish (bug #10431)

J'ai remarqué que sur plusieurs sites que la table ezsession chargée de stocker les données de session dans eZ Publish n'est jamais nettoyée, les données de session expirée s'accumulent. Selon la fréquentation du site, on obtient à plus ou moins long terme une table avec des millions d'enregistrements ce qui provoque au choix des ralentissements, des vérifications (mysqlcheck ) interminables, des problèmes pour faire les backups (mysqldump de plusieurs gigas) voire carrément une corruption de la base de données. J'ai d'ailleurs rapporté ce bug il y a quelques temps en proposant un script de 8 lignes (dont 4 inutiles...:-) à lancer via le système de cronjobs d'eZ Publish . Je ne suis visiblement pas le seul à avoir rencontré ce problème. Dans un fil du forum sur le même sujet , Xavier Dutoit propose d'utiliser le script update/common/scripts/cleanup.php pour supprimer les sessions expirées. Markus Bader a créé l'extension Session Cleanup pour régler ce problème.

Mais quel est la vraie origine de ce problème ? Richard Bayet apporte la lumière sur ce problème en citant un commentaire de la documentation PHP officiel sur une spécificité de Debian . Pour résumer, eZ Publish intègre son propre gestionnaire de session pour stocker les données en base plutôt que dans des fichiers. Or, sous Debian et dérivés, le nettoyage (Garbage collector) des anciennes sessions est assurées par un script shell lancé régulièrement par cron plutôt que par la fonction gc définit avec session_set_save_handler pour plus de sécurité dans l'utilisation du gestionnaire par défaut qui travaille avec des fichiers. Évidemment ce script est incapable de supprimer les sessions en base... Le lancement d'un script spécifique de manière asynchrone est donc nécessaire pour Debian et dérivés. Tout s'explique donc.

Mai 2007 – Digital Fashion: Zend Framework 0.9.3

Dernière ligne droite avant les premières 1.0 RC, la beta 0.9.3 du Zend Framework est sortie, et son package est disponible sur le channel PEAR PHPMafia.

Mai 2007 – Arnaud Limbourg: "Que voudriez-vous voir changer dans PEAR ?

Recemment des elections ont eu lieu dans PEAR pour changer l'organisation générale. Une constitution expliquant le fonctionnement de la nouvelle structure à été écrite.

Le nouveau PEAR Group (dont votre serviteur fait partie) va se réunir le 13 mai. J'en profite donc pour poser la question "Que voudriez-vous voir changer dans PEAR ?".

Cette question à déjà été posée mais compiler une liste sera d'une grande utilitée car nous avons maintenant la structure pour changer les choses.

Joshua à posé la même question (en anglais dans le texte).

Mai 2007 – tigrou/pwet.fr: eZ Conference et eZ Awards 2007

J'ai la chance de me rendre dans le cadre professionnel, accompagné d'un collègue, à la conférence annuelle eZ Systems consacrée aux technologies autour d'eZ Publish et d'eZ Components et aux eZ Awards 2007 les 7 et 8 juin 2007. La société qui m'emploie, Smile , fait partie des nominées pour les eZ Awards 2007 pour le projet de l'année et pour le partenaire de l'année. Il se trouve que je suis également nominé à titre personnel pour le blogueur de l'année et pour le membre de la communauté de l'année, ça fait plaisir et ça tombe plutôt bien ! Parallèlement à cela, le programme des conférences est plutôt alléchant avec l'intervention, en plus des eZ men, de célébrités hors éco-système eZ comme Tristan Nitot ou Damien Seguy... J'ai hâte d'y être, en plus ce sera pour moi l'occasion de passer un peu de temps à Oslo en touriste. Mon Nikon D50 va chauffer pour internationnaliser un peu la section photos !

Mai 2007 – tigrou/pwet.fr: Les titres de OuiFM en OSD

J'aime beaucoup écouter la radio parisienne OuiFM . Pour les provinciaux, il est possible de l'écouter directement sur le site via une animation flash qui affiche le titre en cours ou avec son lecteur préféré via le flux MP3 qui est probablement capable d'en faire de même, mais il n'est pas très pratique devoir remettre au premier plan le lecteur (et/ou de changer de bureau virtuel). Je trouve aussi pénible que le lecteur affiche systématiquement le titre comme le font certains, je préfère avoir le titre à la demande. J'ai donc écrit un petit script shell qui va récupèrer le titre sur le site de OuiFM comme le fait l'animation flash et l'affiche en OSD . Pour l'utiliser sous Ubuntu (et probablement Debian), il faut installer le paquet xosd-bin et php (4 ou 5) en mode ligne de commande avec la commande suivante :

$ sudo apt-get install xosd-bin php5-cli

Le paquet xosd-bin fournit le programme osd_cat qui permet de lire un fichier à la manière de cat en affichant le résultat en OSD selon différents paramètres (couleur, police, position, ...). J'ai associé l'exécution de ce script à la touche F9 dans Openbox , ainsi si un titre passe et je ne connais pas l'artiste, je peux connaître rapidement le titre en pressant cette touche.

#! /bin/sh
 
URL_DATA="http://www.ouirock.com/data1.php"
 
TMP_FILE="/tmp/ouifm_data"$$".txt"
DATA_OSD=""
 
OSD_FONT='-bitstream-dejavu sans-bold-r-*-*-17-*-*-*-*-*-*-*'
OSD_VER_POS="bottom"
OSD_HOR_POS="right"
OSD_COLOR="#95b9c8"
OSD_DELAY=30
OSD_LINE_FROM_BOTTOM=2
 
get_infos ()
{
    DATA_SHELL=`wget "$1" -q -O - | sed 's/&/ /g'`
    eval $DATA_SHELL
    DATA_OSD=`echo '<?php echo utf8_decode(urldecode("'$artiste' - '$titre'"))."\n"; ?>' | php`
}
 
display_infos ()
{
    get_infos $URL_DATA
    echo "$DATA_OSD" > $TMP_FILE
    osd_cat -l $OSD_LINE_FROM_BOTTOM  -f "$OSD_FONT" -p "$OSD_VER_POS" -A "$OSD_HOR_POS" -c "$OSD_COLOR" -d "$OSD_DELAY" $TMP_FILE
}
 
touch $TMP_FILE
display_infos $URL_DATA
rm -f $TMP_FILE

Le seul point particulier concerne la fonction get_infos qui récupère les données sur le site de OuiFM puis crée les variables avec eval et les décode avec un tout petit morceau de PHP passé directement à l'interprèteur.

Billet rédigé en écoutant entre autres "Hey Gravity - Risen (She Said)", "Rinocerose - Cubicle", "Green Day - Basket Case", ... :-)

Mai 2007 – Dur Comme Faire: Un pas en avant

C'est non sans une certaine fierté que je peux annoncer officiellement que je vais enseigner le PHP en licence pro Web Développeur à partir de la rentrée 2008....

Mai 2007 – Prendre un Café: Tags faciles avec Propel dans Symfony

Mon camarade de Nespresso Xavier Lacot nous gratifie d'un plugin pour Symfony répondant au doux nom de sfPropelActAsTaggableBehaviorPlugin et permettant de taguer n'importe quel objet Propel très facilement, mais aussi de gérer les requêtes multi-tags et la récupération d'objets de types multiples.

Ce plugin sera notamment utilisé dans un projet qui touchera prochainement de très près ce blog, si les conditions normales de températures et de pression le permettent, comme d'hab.

Du très bon boulot, Xavier !

Mai 2007 – Prendre un Café: Tags faciles avec Propel dans Symfony

Mon camarade de Nespresso Xavier Lacot nous gratifie d'un plugin pour Symfony répondant au doux nom de sfPropelActAsTaggableBehaviorPlugin et permettant de taguer n'importe quel objet Propel très facilement, mais aussi de gérer les requêtes multi-tags et la récupération d'objets de types multiples.

Ce plugin sera notamment utilisé dans un projet qui touchera prochainement de très près ce blog, si les conditions normales de températures et de pression le permettent, comme d'hab.

Du très bon boulot, Xavier !

Mai 2007 – Dur Comme Faire: Ordre naturel et tableau associatif

Un ordinateur et un homme ne voient pas toujours les choses de la même manière. Les tris notamment réservent des surprises. Prenons un exemple avec PHP. Soit le tableau associatif suivant où la clé représente un numéro de version et la valeur, le nombre d'installation répertoriée pour...

Mai 2007 – Arnaud Limbourg: Minutes de la réunion pear-group du 13 mai

Dans la version étendue vous trouverez une traduction non-officielle d'une grande partie des minutes de la première réunion du pear-group qui à eu lieu le 13 mai 2007.

La version originale est disponible [ici][min]

[min]: http://news.php.net/php.pear.dev/46759 PEAR-Group Date: 13 mai 2007 Lieu: En ligne

Membre du groupe présents:

Arnaud Limbourg (arnaud) Christian Weiske (cweiske) Helgi Pormar (helgi) Joshua Eichorn (jeichorn) Lukas Smith (lsmith)

President: Greg Beaver (cellog)

Membres du groupe non présents: David Coallier (davidc) Martin Jansen (mj)

arnaud and lsmith ont quittés la réunion au bout d'une heure cellog est arrivé deux heures après le début de la réunion

L'ordre du jour est disponible à l'adresse suivante: http://wiki.bluga.net/index.php?area=pear&page=agenda-may-07

Prise de décision: Les décisions sont prises par consensus (http://frwikipedia.org/wiki/Consensus), un membre peut demander un vote de tout le groupe s'il est en désaccord avec la décision à prendre. Une demande de vote doit être appuyée par un second membre pour être acceptée. Dans le cas où tout le groupe est présent lors de la réunion le vote peut avoir lieu lors de la réunion, à défaut il sera fait par email.

Les votes par email doivent avoir une durée minimum de sept (7) jours (ou bien jusqu'à ce que tous les membres aient voté). Celui qui appel le vote peut augmenter cette durée. Les votes par email doivent être gérés par un membre du groupe autre que celui appelant au vote. Tous les votes sont définitifs. La communauté sera notifiée au cas par cas dépendant de l'importance des décisions. Au minimum un email à sera envoyé à la liste de diffusion pear-dev. Un membre du groupe peut appeler un vote de l'ensemble du groupe pour une décision à prendre.

Notification de la communauté, améliorer la transparence: Les minutes de chaque réunion seront postés sur une nouvelle section du site web, un mail sera envoyé à la liste pear-dev et la page d'accueil du site aura un item pour indiquer la mise à jour.

Vice President: candidats - jeichorn Mis en attente de l'election définitive du 7è membre

Fréquence des réunions: Toutes les deux semaines avec un minimum de 3 membres présents

Mise à jour de la constitution: Ajouter un amendement pour gérer les égalités dans les votes lors d'élections de membres Planifier une election dans un mois maximum pour le phrasé de cet amendement

Définition des collectifs: L'objectif d'un collectif est d'avoir au moins 5 paquetages Revue avec le pear group et la communauté. Le groupe a besoin de créer un guide pour aider à la création des collectifs.

Gestion des tâches courantes: Pour le moment la première personne ayant le temps de s'en occuper, cela marche bien pour l'instant.

Traitement des RFC: http://wiki.bluga.net/pear/rfc Etudier les conditions nécessaires pour un vote de l'ensemble du groupe.

Items #9 to #11 reportées

Licences: Nous n'allons pas mettre en avant une licence par rapport à une autre. Par contre la licence PHP est découragée pour tout code autre qu'une extension. Recommandations sur la gestion de détenteurs multiples de copyright Recommandation de la licence GFDL pour le manuel

Licence MPL (Mozilla Public Licence): Nous ne désirons pas avoir une licence de plus, le choix est déjà compliqué.

Mai 2007 – Arnaud Limbourg: Minutes de la réunion pear-group du 20 mai

Dans la version étendue vous trouverez une traduction non-officielle d'une grande partie des minutes de la première réunion du pear-group qui à eu lieu le 20 mai 2007.

La version originale est disponible [ici][min]

[min]: http://news.php.net/php.pear.dev/46874 PEAR-Group Date: 13 mai 2007 Lieu: En ligne (IRC)

Membre du groupe présents:

Arnaud Limbourg (arnaud) Christian Weiske (cweiske) David Coallier (davidc) Helgi Þormar (helgi) Joshua Eichorn (jeichorn) Lukas Smith (lsmith) Martin Jansen (mj)

Non présents President: Greg Beaver (cellog)

L'agenda de la réunion est disponible sur http://wiki.bluga.net/pear/agenda-may2-07

Revue des actions de la semaine dernière Des progrès ont été faits, le travail sur les tâches en cours continue

Revue du processus de prise de décision Nous allons travailler avec la page wiki suivante http://wiki.bluga.net/pear/decision_making qui sert de document de travail avant qu'il ne devienne définitif

Election du vice president Nous attendons la fin de l'election pour le 7è membre.

Planification de la prochaine réunion 3 juin 2007

Définition des collectifs http://wiki.bluga.net/pear/collectives

Les collectifs ont la décision finale en termes d'API, d'assurance-qualité, de documentation, de définition de la collaboration au sein du collectif, de la selection des leaders ainsi que la promotion des paquetages et l'assignation des mentors aux nouveaux développeurs.

Il est nécessaire de définir quels paquetages appartiennent à quel collectif, les catégories actuelles ne suffisent pas.

Revue du processus de RFC http://wiki.bluga.net/pear/rfc Ce document parait être sur la bonne piste, des clarifications sont nécessaires. Nous devrions pouvoir voter sur ce document à la prochaine réunion.

Attirer des contributeurs

Couvrir des conférences et les groupes de la communauté PHP Annoncer le programme de mentor Changer la perception, être moins bureaucratique

Savoir ce que les gens pensent de PEAR Obtenir du feedback de différents groupes

Site web Un redesign est necessaire la structure doit être mise à jour.

L'agenda de la prochaine réunion est disponible à http://wiki.bluga.net/pear/agenda-june3rd-07

Mai 2007 – Arnaud Limbourg: Apéro PHP le 4 juin 2007

Le lundi 04/06/2007 à 19:00 au temps des Cerises, sur la butte aux cailles (paris 13ème).

Tous les détails et s'inscrire à http://aperophp.net/apero.php?id=188