@@ -268,6 +268,27 @@ void declared_class_observer(zend_class_entry *ce, zend_string *name) {
268
268
}
269
269
}
270
270
271
+ static void (* zend_test_prev_execute_internal )(zend_execute_data * execute_data , zval * return_value );
272
+ static void zend_test_execute_internal (zend_execute_data * execute_data , zval * return_value ) {
273
+ zend_function * fbc = execute_data -> func ;
274
+
275
+ if (fbc -> common .function_name ) {
276
+ if (fbc -> common .scope ) {
277
+ php_printf ("%*s<!-- internal enter %s::%s() -->\n" , 2 * ZT_G (observer_nesting_depth ), "" , ZSTR_VAL (fbc -> common .scope -> name ), ZSTR_VAL (fbc -> common .function_name ));
278
+ } else {
279
+ php_printf ("%*s<!-- internal enter %s() -->\n" , 2 * ZT_G (observer_nesting_depth ), "" , ZSTR_VAL (fbc -> common .function_name ));
280
+ }
281
+ } else {
282
+ php_printf ("%*s<!-- internal enter '%s' -->\n" , 2 * ZT_G (observer_nesting_depth ), "" , ZSTR_VAL (fbc -> op_array .filename ));
283
+ }
284
+
285
+ if (zend_test_prev_execute_internal ) {
286
+ zend_test_prev_execute_internal (execute_data , return_value );
287
+ } else {
288
+ fbc -> internal_function .handler (execute_data , return_value );
289
+ }
290
+ }
291
+
271
292
static ZEND_INI_MH (zend_test_observer_OnUpdateCommaList )
272
293
{
273
294
zend_array * * p = (zend_array * * ) ZEND_INI_GET_ADDR ();
@@ -323,6 +344,7 @@ PHP_INI_BEGIN()
323
344
STD_PHP_INI_BOOLEAN ("zend_test.observer.fiber_init" , "0" , PHP_INI_SYSTEM , OnUpdateBool , observer_fiber_init , zend_zend_test_globals , zend_test_globals )
324
345
STD_PHP_INI_BOOLEAN ("zend_test.observer.fiber_switch" , "0" , PHP_INI_SYSTEM , OnUpdateBool , observer_fiber_switch , zend_zend_test_globals , zend_test_globals )
325
346
STD_PHP_INI_BOOLEAN ("zend_test.observer.fiber_destroy" , "0" , PHP_INI_SYSTEM , OnUpdateBool , observer_fiber_destroy , zend_zend_test_globals , zend_test_globals )
347
+ STD_PHP_INI_BOOLEAN ("zend_test.observer.execute_internal" , "0" , PHP_INI_SYSTEM , OnUpdateBool , observer_execute_internal , zend_zend_test_globals , zend_test_globals )
326
348
PHP_INI_END ()
327
349
328
350
void zend_test_observer_init (INIT_FUNC_ARGS )
@@ -351,6 +373,11 @@ void zend_test_observer_init(INIT_FUNC_ARGS)
351
373
zend_observer_function_declared_register (declared_function_observer );
352
374
zend_observer_class_linked_register (declared_class_observer );
353
375
}
376
+
377
+ if (ZT_G (observer_execute_internal )) {
378
+ zend_test_prev_execute_internal = zend_execute_internal ;
379
+ zend_execute_internal = zend_test_execute_internal ;
380
+ }
354
381
}
355
382
356
383
void zend_test_observer_shutdown (SHUTDOWN_FUNC_ARGS )
0 commit comments