février 2010 (4)

lundi 22 février 2010

On ferme !

Sous ce titre idiot ne se cache pas l'annonce de la fermeture de ce blog, mais bien un cas concret d'utilisation des fermetures de PHP 5.3.

Je me suis longtemps demandé ce que je pourrais bien en faire, et il semble que je ne sois pas le seul, au vu des commentaires sur le blog de Pascal et de la discussion que j'avais eu avec Damien Seguy à ce sujet lors d'un apéro PHP à Lille.

J'avais bien une vague idée du potentiel du concept via mon expérience de développeur javascript, mais je n'en voyais aucun cas d'utilisation intéressant en PHP, jusqu'à maintenant.

Lire la suite

vendredi 19 février 2010

PHP est vicieux

Il y a quelques temps, j'ai eu un comportement très étrange avec un bout de code PHP traditionnel.

En effet, une même fonctionnalité implémentée de deux manières différentes ne donnait pas le même résultat.

Dans un cas, PHP me générait une erreur, et dans l'autre, tout se passait sans problème.

Lire la suite

jeudi 18 février 2010

Classe de gestion de l'historique http du client

Dans mon code personnel, j'ai pris l'habitude de gérer mes formulaires de la manière suivante :

<?php

$foo = new foo();

$form = new \ogo\form\post();

if ($form->wasSubmited())
{
switch (true)
{
case $form->insert:
// on insére et on redirige vers l'url précédente
break;

default:
// on redirige vers l'url précédente
}
}
else
{
// on affiche le formulaire
}

?>

Rien de bien particulier, si ce n'est que j'ai besoin de connaître l'url actuelle du visiteur pour pouvoir le rediriger correctement.

Pour cela, il y a bien la variable $_SERVER['HTTP_REFERER'], mais elle n'est pas fiable puisqu'elle peut être manipulée par le client.

De plus, il faut gérer l'url courante pour savoir quoi en faire, et cela peut vite devenir très lourd, et de plus, ce n'est pas très intéressant intellectuellement parlant.

Comme je suis un fainéant un bon développeur, j'ai donc développé un objet qui suit la philosophie fire and forget cher à nos militaire qui conserve automatiquement dans la session du client l'historique de sa navigation d'une manière totalement transparente pour le développeur.

Lire la suite

mercredi 17 février 2010

Vade mecum

Pour désactiver le checksum lors de la compilation d'un port de FreeBSD, il faut définir la variable d'environnement NO_CHECKSUM. Si le shell courant est bash, il faut donc, si nous sommes déjà dans le répertoire du port que nous souhaitons installer, éxécuter la commande suivante : $ export  […]

Lire la suite