@@ -240,6 +240,7 @@ static zend_function_entry redis_functions[] = {
240
240
PHP_ME (Redis , evalsha , NULL , ZEND_ACC_PUBLIC )
241
241
PHP_ME (Redis , script , NULL , ZEND_ACC_PUBLIC )
242
242
243
+ PHP_ME (Redis , debug , NULL , ZEND_ACC_PUBLIC )
243
244
PHP_ME (Redis , dump , NULL , ZEND_ACC_PUBLIC )
244
245
PHP_ME (Redis , restore , NULL , ZEND_ACC_PUBLIC )
245
246
PHP_ME (Redis , migrate , NULL , ZEND_ACC_PUBLIC )
@@ -6564,6 +6565,37 @@ PHP_METHOD(Redis, dump) {
6564
6565
REDIS_PROCESS_RESPONSE (redis_ping_response );
6565
6566
}
6566
6567
6568
+ /* {{{ proto Redis::DEBUG(string key) */
6569
+ PHP_METHOD (Redis , debug ) {
6570
+ zval * object ;
6571
+ RedisSock * redis_sock ;
6572
+ char * cmd , * key ;
6573
+ int cmd_len , key_len , key_free ;
6574
+
6575
+ if (zend_parse_method_parameters (ZEND_NUM_ARGS () TSRMLS_CC , getThis (), "Os" ,
6576
+ & object , redis_ce , & key , & key_len )== FAILURE )
6577
+ {
6578
+ RETURN_FALSE ;
6579
+ }
6580
+
6581
+ /* Grab our socket */
6582
+ if (redis_sock_get (object , & redis_sock TSRMLS_CC , 0 )< 0 ) {
6583
+ RETURN_FALSE ;
6584
+ }
6585
+
6586
+ /* Prefix key, format command */
6587
+ key_free = redis_key_prefix (redis_sock , & key , & key_len TSRMLS_CC );
6588
+ cmd_len = redis_cmd_format_static (& cmd , "DEBUG" , "ss" , "OBJECT" , sizeof ("OBJECT" )- 1 , key , key_len );
6589
+ if (key_free ) efree (key );
6590
+
6591
+ /* Kick it off */
6592
+ REDIS_PROCESS_REQUEST (redis_sock , cmd , cmd_len );
6593
+ IF_ATOMIC () {
6594
+ redis_debug_response (INTERNAL_FUNCTION_PARAM_PASSTHRU , redis_sock , NULL , NULL );
6595
+ }
6596
+ REDIS_PROCESS_RESPONSE (redis_debug_response );
6597
+ }
6598
+
6567
6599
/*
6568
6600
* {{{ proto Redis::restore(ttl, key, value)
6569
6601
*/
0 commit comments