При разработке компонентов и модулей часто приходится делать отладку, а именно вывести содержимое массива. Для удобства можно подготовить несколько готовых функции:
//Функция отладки
function arDump(&$data,$defaultUserId = "1"){
global $USER;
if($USER->GetId() == $defaultUserId){
echo "<pre>".print_r($data,true)."</pre>";
}
}
//Функция Reflection API, получение всех методов, и свойств
function classDump($className,$defaultUserId = "1"){
global $USER;
if($USER->GetId() == $defaultUserId){
$reflection = new ReflectionClass($className);
$methods = $reflection->getMethods();
$props = $reflection->getProperties();
$statics = $reflection->getStaticProperties();
$arReflection["NAME"] = $className;
$arReflection["METHODS"] = $methods;
$arReflection["PROPERTIES"] = $props;
$arReflection["STATIC_PROPERTIES"] = $statics;
echo "<pre>".print_r($arReflection,true)."</pre>";
}
}
//Функция отладки в файл
define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/log.txt");
function fileDump(&$arFields,$paramName = "arrName"){
AddMessage2Log($paramName.' = '.print_r($arFields, true),'');
}
Данный код необходимо добавить в файл /local/php_interface/init.php
arDump - выводит содержимое массива в форматированном виде;
fileDump - дозаписывает содержимое массива в файл log.txt в корень сайта. Вместо AddMessage2Log можно использовать аналог в новом ядре D7 - Bitrix\Main\Diag\Debug::dumpToFile и Bitrix\Main\Diag\Debug::writeToFile. Данный вариант отладки очень удобно использовать в ajax запросах.
classDump - можно использовать рефлекию, для того чтобы исследовать недокументированный класс, чтобы посмотреть, какие есть у него методы и свойства.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».