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


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.