Важная информация для клиентов моих платёжных модулей!

После обновления до Invision Community 4.4 у вас перестанут работать все платёжные модули. Чтобы восстановить их работу, на текущий момент вам необходимо установить этот бесплатный плагин. Я уже работаю над совместимыми с 4.4 версиями платёжных модулей. Информация об обновлениях будет появляться в @ilyahoilik и на этой странице.

March 11, 2019 / Edit

Используем dd() в Invision Community

Как часто вы используете var_dump(); для просмотра содержания переменной? В 2016 году я использовал Sublime Text в качестве редактора кода, и у меня был настроен отдельный сниппет, который вставлял строку echo "<pre>"; var_dump(); exit; и ставил курсор между скобками. Но у этого способа были некоторые минусы.

  1. Порой была необходимость просмотреть содержание переменной, расположенной в шаблонах стиля. В таких случаях нужно было вручную копировать этот код или писать его с нуля (чаще использовался второй способ).
  2. Если разработка / правка производилась напрямую на рабочем сайте, то нужно было закрывать выполнение данного кода от пользователей. Это ещё больше удлиняло его и делало неудобным для использования.

В 2017 году я познакомился с Laravel и с замечательной функцией dd(); (dump and die), которая принимала любое количество аргументов, выводила их на страницу между тегами <pre> и завершала работу программы. В результате моих манипуляций эта функция была адаптирована под реалии Invision Community. Спешу поделиться с вами получившимся результатом:

Основная функция dd() (dump and die) проверяет является ли пользователь администратором и, если он им является, вызывает функцию fdd() (force dump and die), которая полностью аналогична оригинальной функции в Laravel. Таким образом, при использовании dd(), вывод увидят только администраторы, а обычные пользователи увидят обычную страницу. Если вам нужно увидеть вывод из-под аккаунта не-администратора, то используйте fdd().

Теперь о том, где эти функции лучше разместить. Для переопределения стандартного поведения система использует файл constants.php, который по умолчанию отсутствует. Вы можете спокойно создать его в корне сайта и разместить в нём две эти функции. Они никак не будут затронуты при обновлении системы, так что вы можете не беспокоиться об этом.

После этого в обычном коде можно будет использовать dd( $var ); или fdd( $var );, а в шаблонах стилей {{ dd( $var ); }} или {{ fdd( $var ); }}. Содержание переменных вы увидите в красивом читабельном виде.