Today I wanted to extend the phpdebugtoolbar to allow tracing for good old mysql_query commands. This can be possible by using the
rename_function-method, which is provided by the apd pecl extension. It's a pitty that this extension cannot be compiled for php >= 5.3 without any patch. So here the step by step guide to get it up and running on a php 5.3 or later. 1. Download apd-1.0.1.tar.gz from pecl.php.net. 2. Extract the files 3. Patch the code
diff --git a/php_apd.c b/php_apd.c
index 6707e02..8bfafb5 100644
--- a/php_apd.c
+++ b/php_apd.c
@@ -964,7 +964,7 @@ ZEND_DLEXPORT void onStatement(zend_op_array *op_array)
int apd_zend_startup(zend_extension *extension)
{
TSRMLS_FETCH();
- CG(extended_info) = 1; /* XXX: this is ridiculous */
+ CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;
return zend_startup_module(&apd_module_entry);
}
- Run
phpize to configure the extension. 5. Run make to build the extension 6. Run sudo make install to copy the .so to the necessary location 7. Add this line to your php.ini (the folder may be different on your system)
zend_extension=/opt/local/lib/php/extensions/no-debug-non-zts-20090626/apd.so
That's it. If you receive the error message, that apd.so is not a valid extension, you must use "zend_extension=" and not "extension=" to configure the extension properly! Call
$ php --version
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
with Advanced PHP Debugger (APD) v1.0.1, , by George Schlossnagle
with Xdebug v2.1.2, Copyright (c) 2002-2011, by Derick Rethans
and the Advanved PHP Debugger info appears.