Programmation PHP/Xdebug
 est un système qui permet de calculer le taux de couverture de code, de le profiler, ou de l'exécuter pas à pas. Cela montre donc l'exécution plus précisément qu'en relecture seule, et élimine donc le risque de sauvegarder des "echo", des "print" ou des "var_dump" en production.
Installation.
Linux.
Installation sur Linux :
 sudo apt-get install php8.2-xdebug
ou 
 pecl install xdebug
Puis dans php.ini :
 xdebug.remote_enable = On
ou sur PHP8.2 via Apache :
 sudo vim /etc/php/8.2/apache2/conf.d/20-xdebug.ini
Ajouter :
 xdebug.remote_enable=1
Configuration complète.
Exemple en V3 :
sudo apt-get install php7.4-xdebug
&& echo "xdebug.remote_handler=dbgp" » /usr/local/etc/php/php.ini \
&& echo "xdebug.discover_client_host=0" » /usr/local/etc/php/php.ini \
&& echo "xdebug.client_port=9000" » /usr/local/etc/php/php.ini \
&& echo "xdebug.mode=debug" » /usr/local/etc/php/php.ini \
&& echo "xdebug.start_with_request=yes" » /usr/local/etc/php/php.ini
On peut aussi forcer d'autres paramètres :
sudo apt-get install php7.4-xdebug
&& echo "xdebug.remote_handler=dbgp" » /usr/local/etc/php/php.ini \
&& echo "xdebug.remote_connect_back=0" » /usr/local/etc/php/php.ini \
&& echo "xdebug.remote_port=9000" » /usr/local/etc/php/php.ini \
&& echo "xdebug.remote_enable=1" » /usr/local/etc/php/php.ini \
&& echo "xdebug.remote_autostart=1" » /usr/local/etc/php/php.ini
Docker.
Avec Docker, il faut aussi spécifier le "remote_host".
Exemple d'installation et activation :
RUN pecl install xdebug-2.9.8 \
 && docker-php-ext-enable xdebug
RUN echo "xdebug.client_host = 172.170.0.1" » /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
 && echo "xdebug.remote_handler=dbgp" » /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
 && echo "xdebug.discover_client_host=0" » /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
 && echo "xdebug.client_port=9000" » /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
 && echo "xdebug.mode=debug" » /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
 && echo "xdebug.start_with_request=yes" » /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
Windows.
Wamp fournit Xdebug en mode "develop". Pour activer le débogage pas à pas, il faut donc éditer le php.ini :
Lancement.
Dans un navigateur.
Il faut installer un module sur son navigateur (ex : Xdebug-ext sur Firefox) pour pouvoir activer ou désactiver le débogage d'une page. Ce module s'interface avec les principaux IDE, par exemple PhpStorm, pour leur faire lancer le débogage lors du chargement d'une page.
En ligne de commande.
On peut ajouter un argument à PHP. Ex :
php -d xdebug.profiler_enable=1 bin/console MaCommande.php
Débogage pas à pas.
Lors du débogage, PhpStorm fera apparaitre un menu "Debug" avec trois sous-menus dont :
Quand on clique dans la marge, un est créé et représenté par une ligne rouge.
Raccourcis clavier (voir le menu "Run" en haut) :
Profilage.
Ajouter le mode au précédent :
 xdebug.mode=debug,profile
Un ensemble de vidéos explicatives existent en anglais.

Code de la route/Intersections et priorités

Les règles de circulation à l'approche d'une intersection de plusieurs routes ou d'un croisement entre routes et d'autres voies de transport (voie ferrée, fleuve, ...) doivent être respectées pour éviter les accidents.
De manière générale, quand une intersection est annoncée, la vigilance doit être accrue.
Diminuer sa vitesse aide à contrôler son véhicule en cas d'arrêt rapide à effectuer, et notamment pour ne pas freiner brusquement pour éviter les chocs avec les véhicules venant par l'arrière.
L'utilisation des clignotants est obligatoire pour les changements de direction, afin de signaler ses intentions.
Intersections.
Lorsque plusieurs routes de croisent, une signalisation permet de savoir quelle voie a la priorité pour passer.
La signalisation dépend du type de carrefour et de la visibilité.
À l'arrivée sur une intersection, les véhicules doivent diminuer leur vitesse afin de pouvoir s'arrêter facilement (rapidement mais pas brusquement) au cas où d'autres véhicules croiseraient la route.
En France, les panneaux annonçant l'arrivée à un carrefour sont à une distance minimale de 50 mètres en ville ou 150 mètres en dehors.
Des balises situées au croisement peuvent signaler l'intersection.
Ronds-points.
Les carrefours à sens giratoire (ou ronds-points) permettent le croisement d'un nombre quelconque de routes.
À l'arrivée au carrefour, la présence d'une signalisation de « cédez le passage » indique aux véhicules qu'ils doivent céder le passage aux véhicules venant de la gauche, c'est-à-dire ceux qui sont déjà dans le rond-point.
En l'absence de cette signalisation, la priorité à droite s'applique, c'est-à-dire que les véhicules peuvent s'engager dans le rond-point, et doivent céder le passage à ceux qui s'y engagent car ils viennent de la droite.
Céder le passage.
Les véhicules doivent ralentir. Si un autre véhicule arrive par l'une des routes croisées, il faut marquer l'arrêt pour lui céder le passage.
Arrêt obligatoire.
L'arrêt est obligatoire, même si aucun véhicule ne semble arriver au croisement.
Le panneau stop est accompagné d'un marquage au sol : une large bande blanche que les véhicules ne doivent pas dépasser pour marquer l'arrêt.
Route prioritaire.
En France, une portion de route peut être marquée comme prioritaire entre les deux panneaux suivants :
Croisée fluviale.
Il existe différents types de ponts amovibles.
Croisée du chemin de fer.
Les passages à niveaux sont pré-annoncés avec l'un des panneaus de danger ci-dessous, avec un décompte d'approche signalé par 3 barres rouges en diagonal sur une balise, puis 2 barres, puis 1 barre.
Le chemin de fer croise les voies de circulations des véhicules et piétons, aux passages à niveaux qui sont en général munis de barrières ou semi-barrières ainsi qu'un feu rouge.
Lors de l'approche d'un train, le feu rouge clignote et les barrières s'abaissent ensuite, le temps qu'un véhicule qui serait engagé sur le chemin de fer puisse dégager. Tout usager (véhicules, piétons) doit s'arrêter à une distance suffisante du feu et des barrières.
Après le passage du ou des trains, les barrières de lèvent, puis le feu cesse de clignoter indiquant aux véhicules qu'ils peuvent traverser la voie ferrée.
Les panneaux ci-dessous servent à la signalisation de position d'un passage à niveau à une voie sans barrières ni demi-barrières et munis ou non de signalisation automatique, ou d'une aire de danger aérien où les mouvements d'avions à basse altitude constituent un danger pour la circulation routière.
Le panneau est vertical quand l'espace est insuffisant pour un panneau horizontal.
Piétons.
En général, les passages piétons sont situés au niveau des intersections, particulièrement les carrefours avec feux tricolores, mais aussi au milieu d'une route quand le carrefour le plus proche est éloigné.
Pour plus de détails, voir Passages piétons.

Auto-éditer un wikilivre/Auto-référencer/md5sum src-orig

La commande md5sum permet d'identifier que l'origine d'un fichier na pas été modifié..
Modifications postérieure à la version originale.
Lorsque la version n'a pas changé cela signifie que les modifications n'ont pas changé le code.

Auto-éditer un wikilivre/Annexer (Version internationalisée)/src/lang/po/annex es.po