mercredi 4 décembre 2013

Créer son environnement de développement : vagrant

Cette série d'articles à pour but de décrire avec précision, la création d'un environnement de développement PHP sur plateforme Windows.

Ce premier article décrit l'installation d'un environnement virtualisé avec Vagrant.

lundi 2 décembre 2013

Les paramètres nommés

Tout comme les variables souillées, les paramètres nommés sont un vieux serpent de mer en PHP. A l'heure où j'écris ces lignes, une RFC:named_params est en cours de discussion pour une possible intégration dans PHP 5.6.
A quoi peut bien servir ces paramètres nommés ? Je vais essayé de faire un point sur le sujet.

dimanche 17 novembre 2013

Point sur l'ordre des paramètres dans les fonctions PHP

Je ne sais pas pourquoi, mais j'ai toujours eu du mal à retenir l'ordre des arguments de la fonction strpos ! Le premier argument, c'est la chaîne dans laquelle on va rechercher ou est-ce la chaîne que l'on cherche ?

Du coup, je vais régulièrement regarder la doc pour être sûr de moi. D'ailleurs, et comme le dit si bien Bronco, celui qui a imaginé les noms de paramètres "haystack" et "needle", n'a pas été des plus inspirés.

Alors, j'ai fait un petit point sur les paramètres des fonctions, afin de retenir une liste qui ne respecteraient pas une certaine logique.

samedi 16 novembre 2013

assert or not assert ?

Dernièrement, en voyant passer un lien vers une RFC sur la génération d'exception suite à une erreur d'assertion (PHP RFC: Expectations), il m'est revenu à l'esprit les raisons pour lesquelles je n'utilisais plus "assert" : les mauvaises performances en production.

mercredi 13 novembre 2013

Magie de array_map

Dernièrement je suis tombé sur le code suivant :
array_map('unlink', glob('/rep/er/toire/*.log'));

Bon, ce n'est pas beaucoup plus court que
foreach (glob('/rep/er/toire/*.log') as $file) {
    unlink($file);
}

mais je trouvais l'utilisation de array_map astucieuse...

Appends concurrents

Lors de la création d'un fichier CSV, je faisais "bêtement" (code simplifié) :
$txt = file_exists('fichier.csv') ? '' : "colonne1;colonn2";
$txt .= "\n" . implode(';', $data);
file_put_contents('fichier.csv', $txt, FILE_APPEND);

Tout allait bien jusqu'au moment où j'ai lancé ce script depuis plusieurs processus en parallèle.