¿Hay algún método para acceder a la lista de funciones de apagado registradas?lista de funciones de apagado registradas
5
A
Respuesta
9
Puede escribir una extensión y mirar BG(user_shutdown_function_names)
. Probablemente sea más fácil crear un contenedor para register_shutdown_function
que guarde las funciones de apagado en algún arreglo y llámelo en su lugar.
(no probado)
#include "ext/standard/basic_functions.h"
//usual include suspects here
typedef struct _php_shutdown_function_entry {
zval **arguments;
int arg_count;
} php_shutdown_function_entry;
static void _shutdown_function_dtor(php_shutdown_function_entry *shutdown_function_entry) /* {{{ */
{
int i;
for (i = 0; i < shutdown_function_entry->arg_count; i++) {
zval_ptr_dtor(&shutdown_function_entry->arguments[i]);
}
efree(shutdown_function_entry->arguments);
}
static int _build_shutdown_array(php_shutdown_function_entry *entry, zval *arr TSRMLS_DC)
{
zval *inner;
zval *args;
int i;
array_init(inner);
array_init(args);
Z_ADDREF_P(entry->arguments[0]);
add_assoc_zval(inner, "callback", entry->arguments[0]);
for (i = 1; i < entry->arg_count; i++) {
Z_ADDREF_P(entry->arguments[i]);
add_next_index_zval(args, entry->arguments[i]);
}
add_assoc_zval(inner, "arguments", args);
add_next_index_zval(arr, inner);
}
PHP_FUNCTION(list_shutdown_functions)
{
if (zend_parse_parameters_none() == FAILURE)
return;
if (!BG(user_shutdown_function_names)) {
ALLOC_HASHTABLE(BG(user_shutdown_function_names));
zend_hash_init(BG(user_shutdown_function_names), 0, NULL,
(void (*)(void *)) _shutdown_function_dtor, 0);
}
array_init(return_value);
zend_hash_apply_with_argument(BG(user_shutdown_function_names),
(apply_func_arg_t) _build_shutdown_array, return_value TSRMLS_CC);
}
2
Aparte de hacer el seguimiento usted mismo, no. La lista de nombres de funciones registradas no está expuesta a sus scripts PHP. Si está abierto a extender PHP en sí (esto sería una tarea simple), entonces vea la respuesta de Artefacto.
Cuestiones relacionadas
- 1. WordPress: ¿Cómo obtengo todas las funciones registradas para el filtro 'the_content'
- 2. Lista de funciones de agregación
- 3. Lista de funciones de OpenCV
- 4. Lista de funciones C obsoletas?
- 5. Apagado programático de embarcadero
- 6. Android de apagado raíz
- 7. ¿Por qué la depuración de Joomla muestra 446 consultas registradas y 446 consultas heredadas registradas?
- 8. ¡La composición de las funciones en una lista de funciones!
- 9. ¿Puedo hacer una lista de todas las fuentes de eventos registradas?
- 10. VBA lista de argumentos de funciones seleccionar
- 11. Perl apagado una toma de
- 12. Eventos de apagado en Android
- 13. Sikuli Lista de funciones y operadores
- 14. reproducir una lista de funciones y parámetros
- 15. Lista de funciones como selecciones en Java
- 16. Sphinx: lista de funciones en un módulo
- 17. Lista de funciones del archivo PHP
- 18. ¿Una lista de funciones "globales" scala?
- 19. Detectando un apagado programado
- 20. primavera de error Programador de apagado
- 21. Grails Spring Security plugin - modificar las autorizaciones de usuario registradas
- 22. Nombre de aplicación ELMAH: mostrar excepciones registradas por otro sitio
- 23. detectar apagado en servicio de ventana
- 24. ¿Cómo agregar controles deslizantes de encendido/apagado?
- 25. Apagado de la aplicación en MonoMac
- 26. Comportamiento de apagado (calcetín, SHUT_RD) con TCP
- 27. Forzar el apagado de la aplicación (.net)
- 28. Funciones de proceso de una lista de cadenas en Python
- 29. Lista de procedimientos almacenados/funciones Línea de comandos de Mysql
- 30. ¿Puedo obtener dinámicamente una lista de funciones o nombres de funciones de cualquier módulo Perl?
WOW, lo que una respuesta en profundidad. la mayor parte del tiempo, PHP ya tiene una función en el nivel de PHP para hacer cosas, pero en este caso no es así, ¡y aún así lograste una solución! –