Une discussion intéressante sur les méthodes pour invalider OPcache après un déploiement effectué par un switch de symlink. En pratique, ça permet d'éviter un restart du web server (même graceful) et de minimiser l'impact d'un déploiement.
Tout le problème se situe au niveau de la gestion des requêtes actuellement traitées par le web server au moment du déploiement. L'idée est d'éviter qu'elles commencent avec l'ancienne version du code et passent sur la nouvelle version en cours de route.
Je ne savais pas que les liens symboliques "hard" existaient sous Windows. J'ai l'impression qu'ils sont très sous-utilisés.
Sous Windows Vista, 7, 8 ou 10, ils sont créés via la commande mklink
.
Attention cependant, contrairement au ln
d'Unix, on place ici d'abord le lien à créer PUIS le dossier ou fichier cible (et pas l'inverse).
MKLINK [[/D] | [/H] | [/J]] Link Target
/D Creates a directory symbolic link. Default is a file symbolic link.
/H Creates a hard link instead of a symbolic link.
/J Creates a Directory Junction.
Link specifies the new symbolic link name.
Target specifies the path (relative or absolute) that the new link refers to.
/D – creates a soft symbolic link, which is similar to a standard folder or file shortcut in Windows. This is the default option, and mklink will use it if you do not enter a prefix.
/H – creates a hard link to a file
/J – creates a hard link to a directory or folder