Диагностическая функция для разработчиков

Диагностическая функция для разработчиков

578
23.06.2015

Мой вариант диагностической функции для битрикс-разработчиков

Когда только начинал работать - выводил просто var_dump() и все. Далее узнал о функции print_r() - стал чередовать эти 2 функции.

Потом, когда начались работы по доработкам на боевых сайтах - потребовалась проверка того, чтобы диагностические сообщения были доступны только админам - конструкция обросла еще и проверкой того, что пользователь админ (с периодической заменой проверки на админа, на проверку на конкретный ID-пользователя).

И вот, уже больше года пользуюсь своей собственной функцией:

     function pre($var,$stop=false,$inconsole = false, $UID = false){
         $bt = debug_backtrace();
         $bt = $bt[0];
         $dRoot = $_SERVER["DOCUMENT_ROOT"];
         $dRoot = str_replace("/", "\\", $dRoot);
         $bt["file"] = str_replace($dRoot, "", $bt["file"]);
         $dRoot = str_replace("\\", "/", $dRoot);
         $bt["file"] = str_replace($dRoot, "", $bt["file"]);
         if ($GLOBALS['USER']->IsAdmin()){
             if($UID && intval($UID)!==$GLOBALS['USER']->GetID()) return;
             if($inconsole){
                 echo "<script>console.log('File: ".$bt['file']." [".$bt['line']."]');console.log(".json_encode($var).");</script>";
             }
             else{
                 echo '<div style="padding:3px 5px; background:#99CCFF; font-weight:bold;">File: '.$bt["file"].' ['.$bt["line"].']</div>';
                 echo '<pre>';
                 ((is_array($var) || is_object($var)) ? print_r($var) : var_dump($var));
                 echo '</pre>';
             }
             if($stop) exit(0);
         }
     }

$var - переменная для анализа; $stop - флаг, который при необходимости останавливает выполненеи дальнейших операций после данной функции; $inconsole - при истинном значении вывод осуществляется не в окно пользователю, а в консоль браузера; $UID - используется для вывода диагностического сообщения только пользователю с заданным ID. 



Благодарю за внимание! Делитесь вашими замечаниями в комментариях ниже.


P.S. Обращайтесь ко мне за приобретением лицензий и продлений на 1C-Битрикс "Управление сайтом", лицензий на облачную и коробочную версии Битрикс 24 а также за приобретением и внедрением готовых решений на базе 1С-Битрикс от партнеров. За более подробной информацией свяжитесь со мной любым удобным для вас способом


Комментарии

Еще никто не комментировал данную публикацию. Будьте первыми!

Добавить комментарий

captcha

Возврат к списку