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

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

Когда только начинал работать - выводил просто 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. 

Количество показов: 2364
23.06.2015

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

Если вам была полезна статья можете отблагодарить автора:
Ethereum:

0x16Df809287333C49D3A237296C6248A6c08702Bc

Разработка сайта

Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...

Сопровождение сайта

Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение

Работы по сайту

Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.