|
Table des matières
VIII. Compilateur bytecode pour PHPIntroduction
Bcompiler a été écrit pour plusieurs raisons :
Le premier de ces buts est réalisé en utilisant les fonctions bcompiler_write_header(), bcompiler_write_file() et bcompiler_write_footer(). Les fichiers de bytecode peuvent être écris en non-compressés ou en texte plein. Pour utiliser le bytecode généré, vous pouvez simplement l’inclure avec les structures include ou require. Le second but est atteint en utilisant les fonctions bcompiler_write_header(), bcompiler_write_class(), bcompiler_write_footer(), bcompiler_read() et bcompiler_load(). Les fichiers bytecode peuvent être écris en non-compressés ou en texte plein. La fonction bcompiler_load() lit un fichier bytecode compressé bzippé, qui tend à avoir un taille d’1/3 par rapport au fichier original. Pour créer des fichiers du type EXE, bcompiler doit être utilisé avec un fichier sapi modifié ou une version de PHP qui a été compilé en tant que bibliothèque partagée. Dans ce cas, bcompiler lit le bytecode compressé depuis la fin du fichier exe. bcompiler peut augmenter d’environ 30% ces performances lorsqu’il est utilisé avec uniquement du bytecode non-compressé. Mais gardé en mémoire que le bytecode non-compressé peut être 5 fois plus long (voir plus) que le code source original. Utiliser la compression bytecode peut vous permettre de réduire l’espace disque mais la décompression requiert plus de temps que de parser simplement le code source. bcompiler n’effectue aucune optimisation du bytecode, cette fonctionnalité pourra être ajoutée dans le futur... bcompiler n’est pas susceptible d’améliorer les performances d’exécutions, car il ne fait que dévier l’étape de compilation du processus courant PHP et la rempalce par le processus d’importation dans bcompiler. Il n’optimise pas le bytecode, ce qui pourrait être ajouté dans le futur. En terme de sécurité du code, il est possible de dire qu’il est impossible de recréer le code source exact depuis lequel il a été construit et sans les commentaires accompagnant le code source. Il serait inefficace d’utiliser bcompiler pour recréer et modifier une classe. Malgrès tout, il reste possible de récupérer les données depuis un fichier bytecode encodé avec bcompiler, donc, n’y mettez pas vos mots de passe ou toute autre donnée de ce genre. InstallationNote succincte d’installation :
ContactSi vous avez des commentaires, des corrections de bogues, des améliorations ou que vous voulez aider à rendre cette extension meilleure, vous pouvez envoyer un email à alan_k@php.net. Toute aide est vraiment la bienvenue. Table des matières bcompiler_load_exe – Lit et crée des classes depuis un fichier exe bcompiler bcompiler_load – Lit et crée les classes depuis un fichier compressé bzippébcompiler_parse_class – Lit le bytecode d’une classe et revient à une fonction utilisateur bcompiler_read – Lit et crée les classes depuis un descripteur de fichierbcompiler_write_class – Ecrit une classe définie en bytecodebcompiler_write_constant – Ecrit une constante définie comme bytecodebcompiler_write_exe_footer – Ecrit à la position start et jusqu’à la fin du fichier de type exe bcompiler_write_file – Ecrit un code source PHP sous forme de bytecodesbcompiler_write_footer – Ecrit le caractère \x00 pour indiquer la fin des données compilées bcompiler_write_function – Ecrit une fonction définie sous forme de bytecodebcompiler_write_functions_from_file – Ecrit toutes les fonctions définies dans un fichier sous forme de bytecodebcompiler_write_header – Ecrit l’en-tête bcompiler Travail collaboratifContribuez, en ajjoutant des elements a cette page de manuel : Merci de votre aide |