News PHP

le 02/05/2008 à 21:19
Lancement du mois des tests PHP
Le mois des tests PHP est lancé. Il s'agit d'un mois durant lequel le groupe PHP veut augmenter significativement le nombre de tests unitaires qui encadrent PHP. Actuellement, sur PHP 5.2.6RC3, il y avait 5118 tests unitaires (avec 66 extensions compilées et 1615 fonctions natives).

Le but est donc d'écrire de nouveaux tests .phpt (tutoriel ci-dessous). Ces tests seront désormais intégrés dans les prochaines distributions. Si jamais vous vous êtes déjà fait attaquer par un changement de comportement d'une fonction PHP entre deux versions, ces tests unitaires seront un garde-fou pour vous et les développeurs du groupe PHP : soit ils pourront le prendre en compte lors des prochaines versions, soit vous saurez immédiatement que certaines fonctions ont changé de comportement, et vous pourrez gagner du temps la prochaine fois.

Alors, prenez la documentation, écrivez quelques tests et soumettez cela sur le site du test fest : vous pourrez gagner l'un des 10 elephpants que nous avons mis en jeu !

- TestFest (May 2008)
- TestFest announcement
- Creating new test files for PHP
- Wiki testfest
le 02/05/2008 à 21:18
PHP 5.2.6 disponible
L'équipe de développement PHP publie la version 5.2.6. Cette version se concentre sur la stabilité de la branche 5.2.x, avec plus de 120 corrections de bogues, donc plusieurs concernent la sécurité. Tous les utilisateurs sont vivement encouragés à se mettre à jour vers cette version.

Correction de sécurité de cette version :
- Dépassement possible de capacité dans FastCGI SAPI, identifiée par Andrei Nigmatulin.
- Dépassement de capacité entière dans printf(), identifié par by Maksymilian Aciemowicz.
- Correction du bogue de sécurité CVE-2008-0599, identifié par Ryan Permeh.
- Correction d'un contournement du safe_mode dans cURL, identifié par Maksymilian Arciemowicz.
- Gestion correcte des séquences multi-octets incomplètes par escapeshellcmd(), identifiée par Stefan Esser.
- Mise à jour de PCRE 7.6

Les améliorations importantes de PHP 5.2.6 incluent des crash de posix, la réduction du coût de mémoire de . par rapport à .=, un parent privé accessible vi une fonction statique, une boucle infinie dans bz2_filter, une fuite mémoire dans __toString(), un crash avec __get et __set, un crash dans pdo_pgsql, un crash avec xmlrpc_server_call_method(), une fuite mémoire lors de conversion automatique, SimpleXML qui consomme trop de mémoire, et 120 autres bogues.

- PHP 5.2.6 published
- Téléchargement PHP 5.2.6
- Guide de mise à jour
- Changelog PHP 5.2.6
Selon une étude récente de Tamir Khason, il semble que les langages les plus cool de la planète ait été définis par des barbus! Les langages les moins cool sont donc F#, IronPython et Prolog, tandis que C, Perl, Ruby et Python tombent dans la catégorie des plus cool.

Où en est PHP, en ce moment ? Chris Cornutt a fait le point sur l'état de pilosité de PHP, à l'exception des PHP Women.

- Keep PHP Alive! Grow a Beard!
Si vous avez raté la première génération d'éléphpant, il est temps de vous rattraper avec la génération 2008 ! Comme pour la première génération, le projet est ouvert à tous les groupes d'utilisateurs et enthousiastes de PHP qui souhaitent acquérir des éléphpants, petits et gros.

Tant que vous commandez avant le 1er Juin 2008, vous pouvez profiter des tarifs de production :

4 euros / elephpant, pour chaque boîte de 50 : pas de vente à l'unité pour le moment.

50 euros pour les gros éléphants : introuvables autrement.

Sachez aussi que vous pouvez lancer votre propre production d'éléphpant, avec un logo d'entreprise ou de conférence ou autre.

Dans tous les cas, contactez-nous sur le lien ci-dessous.

- Elephpants, génération 2008
le 01/05/2008 à 22:36
Transformer les erreurs en exceptions
PHP émet des erreurs par défaut, et PHP 5 supporte les exceptions. Comment réconcilier les deux ? Stefan Priebsch a la solution : un gestionnaire d'erreur. Via la fonction set_error_handler(). on peut introduire un gestionnaire personnalisé pour traiter les erreurs que PHP détecte, et y placer du code pour émettre une exception.

- Turning errors into exceptions
- set_error_handler
le 30/04/2008 à 23:56
Remplir du texte avec une image
Comment utiliser une image pour remplir un texte, à la place d'une couleur unie.

Note de l'auteur :

L'exemple que j'ai posté récemment utilise une image comme motif de remplissage [d'un texte]. Le motif est utilisé pour annoter le texte, mais le même motif peut être utilisé pour remplir n'importe quelle forme particulière (cercles, ellipses, rectangles, polygones, etc.) Le code est direct : lecture de l'image, création du motif, et utilisation du motif pour remplissage.

Par Mikko Koppanen.

- Fill patterns
le 30/04/2008 à 23:55
Que faut-il pour une API testable ?
Nous pouvons conclure qu'une API testable possède les caractéristiques suivantes :
- Elle est décomposée en composants distinct et mono-fonctionnalité
- Ces composants ont des entrées facilement identifiables et des sorties vérifiables
- Ces composants peuvent être facilement séparés de leur environnement
- Ces composants sont, si possible, sans état, ou bien avec un état qui est géré indépendamment de l'algorithme testé.

Larry Garfield se réjouit de l'arrivée d'un framework de test pour Drupal, et se penche sur ce qui va permettre de couvrir l'ensemble du code avec des tests unitaires.

- Testable APIs
- Testing Drupal
- Simple Test on Drupal
- Simple Test framework
Note de l'auteur :

Dans le dernier volet de cette série, je vous montrerai comment réaliser un panier d'achat en utilisant PHP, les sessions, et la bibliothèque JavaScript Prototype.
Le panier permet aux utilisateurs d'ajouter et retirer des produits, ainsi que de changer des quantités. Et, bien sûr, l'interaction est instantanée, et permet au visiteur de continuer ses courses sans recharger la page.

- Developing a Ajax-driven Shopping Cart with PHP and Prototype
- Forms Validation with Symfony and Prototype
Déjà voulu générer des documents PDF à la volée avec PHP ? peut-être pour remplir un formulaire de contract avec le nom du client et son adresse ?
FPDF et FPDI sont deux superbes bibliothèques qui aident grandement dans cette tâche.

Eirik Hoem a un exemple complet sur son site Web.

- Populate PDF templates with PHP / FPDF / FPDI
- FPDF
- FPDI
Depuis la fin de PHP 4, il faut passer à PHP 5, et Marco Tabini a extrait une liste de 5 technologies de la dernière version qui sont incontournables :
- SimpleXML
- JSON et SOAP
- PDO
- SPL
- SQlite

Au passage, via les commentaires, j'ai retrouvé __set_state, une fonction qui est appelée par var_export, pour permettre un formatage des objets avant publication. Très pratique.

- 5 PHP 5 features you can't afford to ignore
- The Magic __set_state Method
- __set_state
LoadingChargement en cours