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.