juillet
2009
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
Commentaires récents
Archives
- novembre 2010
- août 2010
- juillet 2010
- juin 2010
- mai 2010
- avril 2010
- mars 2010
- février 2010
- janvier 2010
- décembre 2009
- novembre 2009
- octobre 2009
- septembre 2009
- août 2009
- juillet 2009
- juin 2009
- mai 2009
- avril 2009
- mars 2009
- février 2009
- janvier 2009
- décembre 2008
- novembre 2008
- octobre 2008
- septembre 2008
- août 2008
- juillet 2008
- juin 2008
- mai 2008
- avril 2008
- mars 2008
- février 2008
- janvier 2008
- décembre 2007
- novembre 2007
- octobre 2007
- septembre 2007
- août 2007
- juillet 2007
- juin 2007
- mai 2007
- avril 2007
- mars 2007
- février 2007