Quelques astuces pour PHP
Développant régulièrement des sites en PHP, je suis tombé aujourd’hui sur le site de Prendre un Café qui publie 12 règles à suivre pour optimiser le PHP.
Je les copie ici:
- Si vous pouvez déclarer une méthode statique
static, faites-le: les performances sont multipliées par 4.- Éviter les méthodes automagiques comme
__get,__setou__autoload.require_onceet son copaininclude_oncesont très coûteux.- Utilisez des chemins absolus dans les appels à
requireouincludequand vous le pouvez : PHP perdra moins de temps à résoudre les chemins système.- Utilisez
$_SERVER['REQUEST_TIME']plutôt quetime()pour obtenir le temps système.- Voyez si vous ne pouvez pas utiliser
strncasecmp,strpbrkandstriposplutôt que de recourir aux expressions régulières.str_replaceest plus rapide quepreg_replace, maisstrtrest 4 fois plus rapide quepreg_replace!- L’emploi de tableaux en tant qu’arguments des fonctions de remplacements de chaînes de caractères est plus couteux que l’utilisation multiple de cette même fonction chaîne par chaîne à remplacer.
- La suppression de la sortie d’erreur par l’emploi du caractère @ est très coûteuse.
$row['id']est 7 fois plus rapide d’accès que$row[id].- Les messages d’erreur en général sont coûteux.
- N’utilisez pas de fonctions à l’intérieur des boucles comme
for ($x=0; $x < count($array); $x++): ici la méthodecount()est appelée à chaque itération.
J’ai cru bon de les republier ici, surtout que quelques-unes m’on un peu accroché… Plus particulièrement, les #3, 4, 5, 10 et 12.
Celle où j’ai le plus fait “ha ouain” est la #12. Elle est en fait très logique, mais nombre de fois j’ai tappé:
for($x=0; $x
Pour faire une boucle dans un tableau quelconque. Je pourrai donc réduire légèrement les ressources systèmes utilisées en faisant simplement:
$max = count($array);
for($x=0; $x<$max; $x++)
Bref, pratique à savoir !
Pour les autres, non pas que j’utilisais une méthode non optimale, mais c’est toujours très bon à savoir !

29 novembre 2006 01:10
Ravi d’avoir pu t’être utile