Acabo de pasar mucho tiempo buscando un elemento en una matriz de renderizado. Normalmente uso dpm()
para imprimir la matriz y luego expandir las opciones hasta que encuentre lo que estoy buscando.
En matrices más grandes eso es engorroso. Cuando lo uso print_r()
, puedo hacer una búsqueda de texto, pero luego es difícil ver la estructura de la matriz y encontrar la ruta al elemento.
¿Qué otros métodos puedes sugerir?
dpm()
, creo que está buscando una función para encontrar un subelemento dentro de una matriz de renderizado por un nombre / clave dada$elements = find_elements_by_key($render_array, 'element_name');
devolver una matriz de todos los elementos en la matriz de renderizado con una clave coincidente?Respuestas:
Hay un módulo de extensión para Devel: Search Krumo . Utiliza Javascript para buscar texto en mensajes Krumo / dpm y matriz abierta en esos lugares.
Se ve como esto:
Actualizar
Después del 22 de abril de 2012 , debe usar la
sdpm()
función para ver el cuadro de búsqueda.fuente
Uno de los grandes problemas con las matrices de renderizado es que a menudo hay un montón de copias de solo lectura de la información que está buscando. Si realmente desea cambiar la salida de renderizado, debe encontrar la correcta. Usualmente uso dpm (), y luego veo la fuente de la página y busco en la salida allí, volteando entre las dos pantallas hasta que encuentro lo que necesito.
Si desea volcar el contenido de una matriz de representación para una ruta determinada al terminal (por ejemplo, para pasarlo a través de grep), puede hacer algo como esto:
También podría simplemente 'ver la fuente de la página' en su navegador y usar el portapapeles, por supuesto, pero lo anterior podría ser el comienzo de un comando Drush para ver las matrices de renderizado.
Actualización: encontré un artículo realmente bueno sobre este tema: The Scary Render Array , probablemente el mejor tratamiento de las matrices de renderizado que he visto hasta ahora. También debería haber mencionado el módulo devel_themer por adelantado; hace un buen trabajo al "acercarse" en la sección de la matriz de renderizado que le interesa.
fuente