Як знайти елементи в масиві візуалізації


8

Я просто витратив багато часу на пошук елемента в масиві візуалізації. Зазвичай я використовую dpm()для друку масиву, а потім розширюю параметри, поки не знайду те, що шукаю.

На великих масивах це громіздко. Під час використання print_r()я можу здійснити пошук тексту, але тоді важко побачити структуру масиву та знайти шлях до елемента.

Які ще методи ви можете запропонувати?


До цього питання варто додати мої повні повтори !!
— niksmac

Є деякі модулі до досить вгору все це CACA . Мені дуже лінь ходити, але модуль розробки інтегрується з krumo та іншими підсилювачами дампа, якщо я правильно пам’ятаю. Тоді завжди є старий добрий налагоджувач, де можна насправді оглянути і збивати об’єкти навіть.
— stefgosselin

@stefgosselin OP вже використовує модуль Devel з dpm(), я думаю, він шукає функцію для пошуку піделемента в масиві візуалізації за вказаним іменем / ключем
— Clive

@MotoTribe Якщо я маю на це право і ви шукаєте функцію, який тип вводу / виводу ви б сподівалися дати / отримати з нього? Чи буде щось на кшталт $elements = find_elements_by_key($render_array, 'element_name');повернення масиву всіх елементів масиву візуалізації відповідним ключем?
— Клайв

правильно. У розробці "krumo display = disabled" відображається кращий відформатований масив, де я можу використовувати текстовий пошук. В ідеалі має бути функція пошуку на виході krumo та функція "копіювати", куди я можу скопіювати повний шлях масиву ['...'] ['...'], не вводячи його. Так, ваша функція теж була б приголомшливою. Це не функція Drupal чи PHP, чи не так?
— uwe

Відповіді:


9

Існує модуль розширення для Devel: Search Krumo . Він використовує Javascript для пошуку тексту в повідомленнях Krumo / dpm та відкриття масиву в цих місцях.
Виглядає так:
введіть тут опис зображення

Оновлення

Після 22 квітня 2012 року ви повинні використовувати sdpm()функцію, щоб побачити вікно пошуку.


ніяк, це саме те, що я шукав !!! Дякую!!!
— uwe

@MotoTribe, так що це можна прийняти, я думаю :)
— kalabro

вибачте, пропустив цю. Це дивовижний інструмент, використовуйте його весь час !!!
— uwe

куди я поклав цей модуль розширення? або всередині каталогу devel [\ www \ drupal \ sites \ all \ module \ devel], або всередині каталогу, що надає модулі [\ www \ drupal \ sites \ all \
— module

Скажіть, будь ласка, що використовувати функцію sdpm ()? куди вставити? Дуже дякую.
— CodeNext

5

Одна з великих проблем з масивами візуалізації полягає в тому, що часто є маса копій інформації, яку ви шукаєте. Якщо ви хочете насправді змінити візуалізацію, ви повинні знайти правильний. Зазвичай я використовую dpm (), а потім переглядаю джерело сторінки та шукаю там вихід, гортаючи між двома дисплеями, поки я не знайду те, що мені потрібно.

Якщо ви хочете скинути вміст масиву візуалізації для заданого шляху до терміналу (наприклад, передати його через grep), ви можете зробити щось подібне:

drush ev '$router_item=menu_get_item("node/7"); require_once(DRUPAL_ROOT .
"/" . $router_item["include_file"]);
$render_array=call_user_func_array($router_item["page_callback"],
$router_item["page_arguments"]); print_r($render_array);'

Ви також можете просто "переглянути джерело сторінки" у своєму браузері і, звичайно, використовувати буфер обміну, але вищезгадане може бути початком команди Drush для перегляду масивів візуалізації.

Оновлення: Я знайшов справді хорошу статтю на цю тему: Масив страшних рендерів - мабуть, найкраще лікування масивів візуалізації, які я бачив досі. Я повинен був також згадати модуль devel_themer наперед; це робить гарну роботу при "збільшенні" в розділі масиву візуалізації, який вас цікавить.


Не можу вам подякувати за посилання на The Scary Render Array - чудова стаття!
— Енді
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.