J'ai déja blogué sur VLD, une extension PHP permettant de prendre connaissance de l'OPCode généré après la phase de compilation du ZendEngine, et prêt à être éxecuté.
Aujourd'hui, je vous présente bytekit et son frontEnd bytekit-cli.
Bytkit rajoute 3 fonctions à PHP : bytekit_disassemble_file(), bytekit_get_baseaddress(), bytekit_set_baseaddress() ; qui permettent de dumper l'OPCode dans une variable PHP.
Bytekit-cli est un frontEnd qui pilote l'extension bytekit et permet d'afficher l'OPCode d'un fichier PHP à l'écran, instantanément, génial pour débugguer ses extensions, optimiser ses scripts, ou apprendre simplement le ZendEngine ;-)
Exemple :
julien@julien:~$ php bytekit.php /path/to/some/php/file.php bytekit-cli @package_version@ by Sebastian Bergmann. Filename: /path/to/some/php/file.php Function: main Number of oplines: 25 Compiled variables: !0 = $c, !1 = $r line # opcode result operands ----------------------------------------------------------------------------- 3 0 REQUIRE 'Zend/Http/Client.php' 5 1 FETCH_CLASS ~1 'Zend_Http_Client', f(4) 2 NEW $2 ~1, ->5 3 SEND_VAL 'http://127.0.0.1/300', 1 4 DO_FCALL_BY_NAME 5 ASSIGN !0, $2 6 6 INIT_METHOD_CALL !0, 'setHeaders' 7 SEND_VAL 'Range: bytes=1-3, 4-6', 1 etc...
La liste des OPCodes du ZendEngine
Extension byteKit
byteKit-cli
Cet article n'a pas de Commentaires pour le moment...
Vous devez être identifié pour poster un commentaire.
Copyright © 2000-2012 - www.developpez.com