PHP

Mettre à jour les traductions d'un module drupal

Lorsqu'on développe un module drupal, les traductions ajoutées au fur et à mesure ne sont pas prises en compte automatiquement. drupal ne prend en compte les traductions d'un module que lors de l'installation de celui-là. En cours de développement cela peut rapidement devenir pénible (pour rester poli !) de devoir installer/déinstaller le module à chaque mise à jour...

Lire la suite

symfony : hydrater un objet à la main

En utilisant symfony, on ne fait plus réellement de sql du fait de la couche d'abstraction ORM (Propel ou Doctrine). On ne travaille qu'avec des objets. Cela facilite grandement la vie et contribue pour une grande part à la rapidité de développement. Mais cela ne répond pas toujours à tous les besoins...

Lire la suite

Envoyer des mails avec php

Quoi de plus simple que d'envoyer des mails avec php avec la fonction mail ! Les choses se compliquent légèrement si on n'a pas de serveur de mail ! Et c'est peu de le dire. Evidemment on peut se lancer dans l'installation d'un serveur de mail (sendmail ou postfix par exemple) mais ce n'est pas à la portée de monsieur tout le monde si on ne veut pas servir de relais de spam! Une solution simple: nullmailer

Lire la suite

Qu'est-ce qu'un singleton ?

Le singleton est un modèle de conception (design pattern pour les grands bretons). En clair c'est une façon éprouvée de résoudre un problème. Avec le sinleton on cherche à n'avoir qu'une seule instance d'un même objet.

Lire la suite

Faut-il utiliser $_REQUEST ?

Depuis que je suis tout petit, j'utilise $_GET pour les données provenant de l'url et $_POST pour celles provenant de mes formulaires (utilisant la méthode "post"!).

En lisant divers articles, je me demande si je ne prends pas un peu la tête et si je ne devrais pas utiliser $_REQUEST quelle que soit la provenance des données. Peu importe la provenance, de toute façon il faut filtrer, vérifier, contrôler la cohérence de ces données.

Lire la suite

Ne pas réinventer la roue.

On répète souvent que lorsqu'on fait un script il ne faut pas réinventer la roue et utiliser au maximum les fonctions natives du langage. Cela a de multiples avantages: c'est optimisé, sans bug,... Mais on n'imagine pas toujours lorsqu'on est débutant à quel point cet adage doit être pris au sérieux!

Lire la suite

Quel est mon mot de passe ?

Dans une interface d'administration qui se respecte, on doit pouvoir à un moment créer des comptes. Il est souvent agréable de se voir proposer un mot de passe aléatoire. En général, je n'utilise pas un mot de passe complétement alétaoire: je supprime les caractères ambigus tels que 0, 1, i, j, l,  […]

Lire la suite

Développement piloté par les tests.

Il ne semble pas évident au premier abord de faire des tests du code que l'on écrit. En général, on se borne à vérifier qu'il n'y a pas d'erreurs de syntaxe. On vérifie que les 3 ou 4 pages que l'on vient de modifier fonctionnent toujours de la même façon. Cette manière de fonctionner atteint rapidement ses limites au fur et à mesure que l'application grossie. Comment se rappeler que le code écrit aujourd'hui n'aura pas d'impact sur le code écrit il y a 6 mois ? Sans tests exhaustifs, c'est tout simplement impossible.

Lire la suite

A la découverte de php5

La version 5 de PHP est sortie depuis plus d'un an, le 13 juillet 2004 exactement. Je ne parlerais pas des nombreux changements tellement c'est énorme. Mais de quoi je vais parler, alors ? De ma déouverte de php5. Je me suis mis à php5 voici quelques mois. L'installation sur HP-UX n'a pas été une  […]

Lire la suite

Précédence des opérateurs

Il existe en PHP deux types de "ET" (and et &&) et de "OU" (or et ||). La raison est qu'ils ont des priorités différentes. Le and et le or ont une priorité plus faible que l'opérateur = alors que le && et le || ont une priorité plus élevée que le =. Par exemple si  […]

Lire la suite

Afficher une arborescence avec menu et sous-menu.

On est souvent confronté à ce type de problème: afficher sous forme d'arbre (liste ul/li par exemple) un menu ou un forum. On récupère les informations d'une base de données où chaque enregistrement comprend les champs suivants (au minimum): id, label, parent. La requête de sélection est toute  […]

Lire la suite