__HALT_COMPILER |
Arrêt du compilateur |
---|---|
PHP 5.1.0+ |
Syntaxe
__halt_compiler(); |
Description
Ce mot réservé permet d'arrêter l'exécution du compilateur.
Remarques
- Arrêt immédiat de l'exécution du code : La fonction __halt_compiler interrompt immédiatement l'exécution du script PHP à l'endroit où elle est appelée. Tout le contenu situé après cette fonction n'est pas exécuté, mais reste présent dans le fichier. Cela peut être utile pour insérer des données non interprétées (comme des métadonnées ou des fichiers binaires) à la fin d'un script PHP.
- Utilisation dans des formats de fichiers hybrides : __halt_compiler est souvent utilisée dans des fichiers qui combinent du code PHP et des données binaires ou textuelles. Par exemple, cela permet de créer des fichiers contenant à la fois un script PHP et une archive compressée ou des données sérialisées.
- Limitation à un usage par fichier : La fonction __halt_compiler ne peut être utilisée qu'une seule fois par fichier. Si elle est appelée plusieurs fois, seules les données après le premier appel seront accessibles comme contenu brut.
- Accès via __COMPILER_HALT_OFFSET__ : Après l'appel à __halt_compiler, la constante spéciale __COMPILER_HALT_OFFSET__ est définie. Cette constante contient le déplacement (en octets) dans le fichier où commence le contenu brut. Cela permet d'accéder facilement aux données situées après la fonction sans interférer avec le code PHP.
- Pratique pour des installateurs ou des bundles : __halt_compiler peut être utile pour des systèmes nécessitant des fichiers uniques combinant du code PHP et des ressources, comme des installateurs ou des paquets auto-extractibles. Ces outils lisent le fichier après l'offset pour extraire ou traiter les données.
- Sécurité des données intégrées : Les données ajoutées après __halt_compiler ne sont pas interprétées comme du code PHP, ce qui réduit le risque d'exécution accidentelle ou malveillante. Cependant, elles peuvent être lues directement par toute personne ayant accès au fichier, d'où l'importance de les protéger (par exemple en les chiffrant).
- Rareté dans les applications modernes : La fonction __halt_compiler est rarement utilisée dans les applications PHP modernes, car des solutions comme Composer et des outils d'archivage standardisés rendent son usage moins pertinent. Cependant, elle reste une solution simple pour des cas spécifiques nécessitant une approche monolithique.
- Impact sur les performances : L'utilisation de __halt_compiler n'a pas d'impact direct sur les performances à l'exécution, mais elle peut alourdir le fichier PHP en y ajoutant des données supplémentaires. Cela peut être un problème si le fichier est chargé ou transféré fréquemment.
Dernière mise à jour : Vendredi, le 5 janvier 2018