News PHP

PHP 5.3 arrive avec le support des espaces de noms, et cela implique une partie de réécriture des noms de classes pour utiliser la nouvelle syntaxe.

$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');

devient

use Zend::Controller::Action;
$viewRenderer = HelperBroker::getStaticHelper('viewRenderer');

En pratique, il n'est pas possible de découper les noms de classes aussi facilement, car certains mots courants, comme abstract ou interface, sont aussi des mots réservés. Matthew O'phinney propose donc de préfixer les abstractions par a, et les interfaces par i. L'autoloading d'exception est aussi une autre source de problèmes. Lisez l'article de Matthew et les discussions qui s'ensuivent.

Notez que l'ancienne syntaxe est toujours active donc il n'est pas obligé de passer aux espaces de noms, comme on peut plus ou moins écrire du code PHP 4 en PHP 5.

- PHP Namespaces (Part 1: Basic usage & gotchas)
le 30/06/2008 à 23:11
phar arrive
Phar est un format de fichier d'archive pour PHP : (PHp ARchives). Il permet de stocker des applications PHP complètes dans un seul fichier, et de les exécuter de manière indépendantes. Toutes les sources sont rangées dans un seul document organisé comme un système de fichiers, et peuvent être signées, chiffrées et compressées. Phar est aussi compatible avec APC, et donne de bonnes accélérations.

Regardez les exemples de fonctionnement chez Derick et Sebastian pour comprendre la simplicité (apparente) du concept. Et si le coeur vous en dit, on cherche des tests de vitesse !

- Friday afternoon toying: eZ Components as phar
- Phar (blog Sebastian Bergmann)
- phar package
- Snaps
le 30/06/2008 à 23:10
Valeurs par défaut en une passe
Utiliser des valeurs par défaut est une bonne pratique de développement, notamment en PHP puisque les variables ne sont pas déclarées. On procède généralement avec une condition :

if (isset($_GET['x'])) { $x = validation($_GET['x']); } else { $_GET['x'] = 0; }

Daniel Arnolds propose une autre approche : en ajoutant à $_GET le tableau de valeur par défaut, on peut attribuer les variables qui manquent, avec leur valeur par défaut. Cette approche est plus compacte que la précédente, mais souffre du manque de validation.

$args = $_GET + array('x'=>0);

- How I PHP: Using defaults for input arguments
le 27/06/2008 à 22:32
Introduction à PHP Reports
PHP Reports est une bibliothèque qui aide à la génération de formulaires de rapports. Elle découpe la production des rapports en trois couches : les données, la page et les groupes. Cela permet de maîtriser les différents regroupements et aspects d'un rapport, pour produire rapidement un fichier HTML sans reinventer la roue à chaque fois. Sans être une révolution, cette petite bibliothèque peut se révéler utile à bien des moments.

- Using PHPReports Generator for Database Reports
- PHP Report
- PHP Report samples
le 26/06/2008 à 23:19
Expérience en TDD
Stefan Priebsch relate son expérience en TDD : Test Driven Developement. En fait, la progression dans l'utilisation de TDD est la partie la plus intéressante de l'article. Il commence par ajouter des tests sur un CMS existant. La conception se fait au fil de l'eau, et au bout de quelques tests, il identifie que ce qu'il a monté est trop complexe. Il jette alors son implémentation mais conserve les tests!

Durant la première étape, l'écriture des test a permis de mieux cerner les attentes, et de mettre sur papier (sic) différentes utilisations du CMS. A partir de là, les objectifs du CMS deviennent beaucoup plus clairs et la conception se fait simplement. C'est probablement là que l'on gagne le plus à utiliser la TDD.

- TDD in a self-experiment
dom29399 propose trois approches pour améliorer la lisibilité du code PHP :
- Réduire la taille des conditions : les blocs de conditions qui font des centaines de lignes perdent aisément les lecteurs
- Utiliser des blocs non-PHP pour produire du code HTML sans utiliser trop de PHP : en bref, allez-y à la majorité
- Utilisez sprintf pour simplifier les requêtes SQL

- Three Quick Tips To Make Your PHP Understandable
le 23/06/2008 à 22:58
Mise au point de votre site web
La mise au point de votre site web pour l'ensemble des utilisateurs, est un point important.

Yahoo propose un nouveau service concernant la "Réputation Pattern" qui se trouve être une offre participative dont vous pouvez mettre en place un type plutôt qu'un autre.

Une nouvelle manière pour accéder a un ensemble de meilleures pratiques pour vous aider a developper.

- Develop meaningful reputation for your website users
le 20/06/2008 à 21:37
Sortie de TPLN Php Template v2.9
H2Lsoft, Société de services en logiciel libre, annonce la sortie de son moteur de template PHP estampillé 2.9. De nombreuses nouveautés et améliorations ont été apportées à cette version, notamment:
- Amélioration des performances 35% (utilisation AdoDB lite)
- ShowRecords (gestion de la pagination automatique) supporte désormais tous les SGBDR (MySQL, Oracle, SQL Server, Access, SQL Lite, ...)
- 26 nouvelles méthodes
- Corrections multiple de bugs
- Compatibilité Php 4 et Php 5

Rappelons que TPLN Template PHp est un projet Open source (GPL) crée en 2001, ayant comme particularités:
- Simplicité d'apprentissage
- Gestion de la plus part des SGBDR (MySQL, Oracle, SQL Server, Access, SQL Lite, ...)
- Gestion du cache (simple et dynamique)
- Gestion automatique du contrôle des formulaires (à noter également le support des captcha)
- Plugin Mail

Cerise sur le gâteau, cette version s'accompagne d'un nouveau site internet et d'une nouvelle documentation

- Site internet
- Changelog
- Exemples en ligne
le 19/06/2008 à 21:53
Performances MySQL en PHP
Mike Wilibanks liste différentes astuces pour accélérer les requêtes SQL quand on l'utilise avec PHP.

- Connexions à la demande
- Requêtes en boucle
- Sélections en fonction de besoins
- Utilisez les bons types de données
- Normalisation
- Dénormalisation
- Types de tables
- Les règles simples

Pour les performances, il est trop facile de masquer les nombres de requêtes en PHP. C'est à dire que placer une requête dans une boucle foreach permet de s'épargner l'écriture de nombreuses requêtes, et cela masque beaucoup de travail pour MySQL dès que la boucle est importante. C'est probablement la pierre d'achoppement la plus fréquente lorsqu'on utilise PHP avec MySQL.

- PHP Performance Series: Maximizing Your MySQL Database
Mark Kimsal signe une étude complète sur les différences de protections que propose les fonctions addslashes, addcslashes et mysql_real_escape_string.

C'est toujours la première qui est la plus utilisée pour assurer la protection contre les injections SQL, alors qu'elle ne propose pas une couverture complète.

- Addslashes(): don't call it a comeback
LoadingChargement en cours