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

Un article de doctorrock