Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Renaming Functions during runtime in PHP

In PHP 5.3 is there a way to rename a function or "hook" a function.

There is the rename_function() within "APD" which has been broken since ~2004. If you try and build it on PHP 5.3 you'll get this error:

'struct _zend_compiler_globals' has no member named 'extended_info'

This is a really easy error to fix, just change this line:

GC(extended_info) = 1;

to

CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;

I modified my php.ini and the APD shows up in my phpinfo() as it should. However when i call rename_function() the PHP page doesn't load and I get a segmentation fault in my /var/log/apache2/error.log.

Is there anyway to fix APD to work with a modern version of PHP? Or is there another method to rename functions? Why on earth is vital feature not in php!??!?! (Gotta love python :)

like image 894
rook Avatar asked May 17 '10 02:05

rook


1 Answers

The up-to-date runkit extension can be found on http://github.com/zenovich/runkit It supports all contemporary versions of PHP released for the time being (from 4.4 to 5.4+). This runkit is official and supported.

Sincerely, Dmitry Zenovich

like image 173
Dmitry Zenovich Avatar answered Sep 23 '22 08:09

Dmitry Zenovich