Profiler un script PHP
Cet article vous guidera tout au long du processus de profilage d’un script PHP à l’aide de Xdebug.
Utiliser Xdebug pour profiler un script en PHP
Xdebug est un outil PHP populaire pour le débogage et le profilage du script PHP. Profiler un script signifie analyser le code pour s’assurer qu’il est optimisé et qu’il a des performances de haut niveau.
Le profilage fournira des informations sur l’utilisation du processeur, de la mémoire et du réseau du programme. Les sections ci-dessous montrent comment configurer l’environnement de profilage et profiler un exemple de script en PHP.
Installer l’outil Xdebug
La première étape consiste à télécharger l’outil Xdebug. Tout d’abord, mettez à jour votre système à l’aide de la commande suivante.
sudo apt-get update
Après avoir mis à jour les packages locaux, utilisez la commande suivante dans le terminal pour installer l’outil Xdebug.
sudo apt-get install php-xdebug
Ensuite, naviguez dans le chemin /etc/php/8.1/mods-available/xdebug.ini
et ouvrez le fichier xdebug.ini
. Ici, 8.1
est la version PHP du système utilisé dans le tutoriel.
Cela peut varier d’un utilisateur à l’autre. Ajoutez les lignes suivantes dans le fichier xdebug.ini
.
zend_extension=/usr/lib/php/20210902/xdebug.so
xdebug.remote_autostart = 1
xdebug.remote_enable = 1
xdebug.remote_handler = dbgp
xdebug.remote_host = 127.0.0.1
xdebug.remote_log = /tmp/xdebug_remote.log
xdebug.remote_mode = req
xdebug.remote_port = 9005
Ici, le répertoire 20210902
dans le chemin /usr/lib/php/20210902/xdebug.so
pour la valeur de la propriété zend_extension
peut différer d’un système à l’autre. Naviguez jusqu’au chemin et utilisez le nom de répertoire correct pour la valeur de la propriété zend_extension
.
Ensuite, redémarrez le serveur Web à l’aide des commandes suivantes si le serveur Web est Apache.
sudo systemctl restart apache2
sudo /etc/init.d/apache2 restart
Pour nginx
, utilisez la commande suivante.
sudo systemctl restart nginx
Enfin, xdebug est installé dans le système.
Configurez php.ini
pour utiliser Xdebug
Nous pouvons vérifier l’installation de Xdebug en PHP en regardant la sortie de la fonction phpinfo()
. Mais, l’outil n’est pas encore prêt à être utilisé.
Il faut le configurer dans le fichier php.ini
. Pour cela, accédez au fichier php.ini
et ouvrez-le avec un éditeur de texte.
Nous pouvons trouver le chemin du fichier dans la sortie phpinfo()
. Depuis le système actuel, le fichier se trouve dans le chemin /etc/php/8.1/apache2/php.ini
.
Dans le fichier php.ini
, ajoutez la ligne suivante à la fin du fichier.
[xdebug]
zend_extension=/usr/lib/php/20210902/xdebug.so
xdebug.show_local_vars=1
Renommez le répertoire 20210902
avec le répertoire utilisé dans votre système. Ensuite, définissez les propriétés display_errors
et display_startup_errors
sur On
et enregistrez le fichier.
Encore une fois, redémarrez le serveur Web. Maintenant, Xdebug est prêt à être utilisé.
Profiler un script PHP
La dernière étape consiste à profiler un script PHP. Nous devons écrire des codes PHP pour le profiler.
Par exemple, créez quatre variables $a
, $b
, $c
et $d
. Attribuez une valeur entière 5
et une valeur de chaîne '5'
dans $a
et $b
.
De même, affectez les tableaux array(5)
et array('5')
dans $c
et $d
.
Ensuite, utilisez la fonction var_dump()
pour vider les quatre variables. Enfin, videz à nouveau une variable $v
.
Notez que nous n’avons pas créé de variable nommée $v
.
Exemple de code :
$a=5;
$b='5';
$c=array(5);
$d=array('5');
var_dump($a);
var_dump($b);
var_dump($c);
var_dump($d);
var_dump($v);
Production:
Dans la section de sortie, le script PHP est profilé. La section erronée du code est mise en surbrillance.
Il affiche des informations telles que Call Stack, où les informations sur l’heure, la mémoire, la fonction et l’emplacement sont fournies. De même, les informations sur la variable dans la portée locale sont également fournies.
De cette façon, nous pouvons utiliser Xdebug pour profiler un script PHP.
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn