Вы здесь

Как заставить нормально работать Kint?

1

Пытаюсь что то вывести в шаблоне или же в .theme через kint()
Первая полоска выходит, но при попытке раскрыть, всё начинает жутко тормозить и зависает.
Много уже перерыл, но ничего не помогает, может кто, что подскажет?
Хочется именно kint, другое прошу не предлагать!

Версия Drupal: 
8.x
Связанные проекты: 
Devel
Вопрос задан 14.04.2017 - 16:53

Скорей всего вы дампите какой то очень тяжелый объект, либо Кинт не смог распознать рекурсию. Какой размер страницы вместе с этим дампом? Какие ошибки в JS консоле? Попробуйте открыть исходный код страницы и посмотреть что там.

Комментарий оставлен 15.04.2017 - 11:36

Ответы

1

В моём случае, всё зависало, потому что я сразу нажимал на знак "+", который разворачивает всё дерево сразу (не знал этого раньше). Решение, а также много других советов по теме нашёл здесь:
https://drupal.stackexchange.com/questions/211928/how-can-i-make-kint-lo...

Ответ дан 15.04.2017 - 12:06
0

Хочется именно kint, другое прошу не предлагать!

Хочется - пользуйтесь, но на тормоза не жалуйтесь.
А вообще для отладки php кода используется Xdebug - увидите все переменные в исследуемом scope и пошагово отследите все изменения. Для Twig шаблонов придется дополнительно установить https://www.drupal.org/project/twig_xdebug.
Если нужен именно дампер, то лучше использовать компонент Symfony VarDumper в виде модуля https://www.drupal.org/project/vardumper

Ответ дан 14.04.2017 - 17:14
Аватар пользователя drupby
drupby
449

Этими прелестями я давно пользуюсь, но не вижу смысла использовать медленный Xdebug, когда нужно просто вывести значение массива. Krumo в 7 с этим справлялся отлично, у Symfony var-dumper не вижу способа копировать сразу всю цепочку, что очень удобно

Комментарий оставлен 14.04.2017 - 17:30

не вижу способа копировать сразу всю цепочку, что очень удобно

Каждый инструмент должен решать свои задачи - в браузере работать с кодом не вижу смысла.

Комментарий оставлен 14.04.2017 - 17:58

т.е. вы никогда не пользуете функции dsm или dpm ?

Комментарий оставлен 14.04.2017 - 18:10

Xdebug незаменим в отладке, где трудно выявить ошибку, но использовать его, когда нужно что-то очень небольшое-простое, считаю, как бить из пушки по воробьям

Комментарий оставлен 14.04.2017 - 18:45

Если xdebug уже настроен, то проверять значение переменных с его помощью намного удобней.

Комментарий оставлен 14.04.2017 - 19:00

Здесь ещё необходимо учитывать в какой среде работаешь. Я работаю в NetBeans на PHPStorm возможности нет, я бы не сказал, что Xdebug работает быстро и удобно, для какого-то "большого" дебагинга - да, спрору нет, без него не обойтись, но, например, просто посмотреть что из себя представляет нода, то лучше уж dsm(), чем запускать для этого Xdebug, тратить память и время, dsm в коде отработает в 3 раза быстрее чем только для этого запускать отладку

Комментарий оставлен 14.04.2017 - 19:10

Ok, тогда ждите полчаса пока kint распарсит дамп объекта или большого массива и отрисует его в браузере. Шишек набьете - начнете пользоваться инструментами, которые экономят время и нервы.

dsm в коде отработает в 3 раза быстрее чем только для этого запускать отладку

У меня xdebug формирует вывод моментально (нетбинсом давно не пользуюсь - не в курсе)

Комментарий оставлен 14.04.2017 - 19:11

Ребят, ну вы холивар начинаете опять. Вопрос прочтите? Я разве спорю о том быстро или не быстро?
Я спросил (и попросил, тоже )) ): поделить опытом ИМЕННО про kint, а не убеждать его бросить и перейти на Xdebug.
Понятное дело, что его использовать нереально сейчас, но может у кого-то получилось?

Комментарий оставлен 14.04.2017 - 19:16

Увы в нетбинсе нет:

не вижу способа копировать сразу всю цепочку, что очень удобно

))

Комментарий оставлен 14.04.2017 - 19:18

Страницы

-2

 

Ответ дан 15.04.2017 - 08:13

Тоже самое в одну строку.

file_put_contents('/tmp/temp_' . microtime(TRUE) . '.txt', print_r($var, TRUE));
Комментарий оставлен 15.04.2017 - 11:29