Класс Debugger
Предоставляет пользовательскую обработку логирования и ошибок.
Debugger переопределяет стандартную обработку ошибок PHP для предоставления трассировок стека и улучшенного логирования
Ссылка: https://book.cakephp.org/2.0/ru/development/debugging.html#debugger-class
Авторское право: Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
Лицензия: Лицензия MIT
Расположение: Cake/Utility/Debugger.php
Краткое описание свойств
-
$_dataprotectedСодержит текущие выходные данные, когда outputFormat равен false.string -
$_outputFormatprotectedТекущий формат вывода.string -
$_templatesprotectedstringШаблоны, используемые при генерации строк трассировки или ошибок. Могут быть глобальными или индексироваться значением формата, используемым в $_outputFormat.
-
$errorspublicСписок ошибок, сгенерированных приложением.array
Краткое описание методов
- __construct() publicКонструктор.
- Экспорт объекта типа массив. Фильтрует ключи, используемые в конфигурации источника данных.
- Защищённая функция экспорта, используемая для отслеживания отступов и рекурсии.
-
Оборачивает функцию highlight_string на случай, если серверный API не реализует её, как это происходит в интерпретаторе HipHop
- Обработка преобразования объекта в строку.
- Добавить формат вывода или обновить формат в Debugger.
- Проверяет, что соль приложения и значение семени шифра были изменены со значения по умолчанию.
- Рекурсивно форматирует и выводит содержимое переданной переменной.
- Извлекает фрагмент из файла и выделяет заданную строку кода.
- Преобразует переменную в строку для вывода отладки.
- Возвращает ссылку на экземпляр объекта Debugger singleton.
-
Получить тип данной переменной. Для объектов вернёт имя класса.
-
Создаёт запись в файле журнала. Запись журнала будет содержать трассировку стека от места вызова, а также экспортировать переменную с помощью exportVar. По умолчанию журнал записывается в журнал отладки.
-
Переключает формат вывода, обновляет строки формата. Может использоваться для переключения активного формата вывода:
- Получить/установить формат вывода для отображения ошибок Debugger.
- outputError() publicПринимает обработанный массив данных из ошибки и отображает его в выбранном формате.
- Переопределяет стандартную обработку ошибок PHP.
- Выводит трассировку стека на основе предоставленных параметров.
-
Укорачивает пути к файлам, заменяя путь к базе приложения на 'APP', а путь к ядру CakePHP на 'CORE'.
Подробное описание методов
_array()source protected static
_array( array $var , integer $depth , integer $indent )
Экспорт объекта типа массив. Фильтрует ключи, используемые в конфигурации источника данных.
Следующие ключи заменяются на ***
- пароль
- логин
- хост
- база данных
- порт
Параметры
- массив
$var - Массив для экспорта.
- целое число
$depth - Текущая глубина, используемая для отслеживания рекурсии.
- целое число
$indent - Текущий уровень отступа.
Возвращаемое значение
строкаЭкспортированный массив.
_export()source protected static
_export( mixed $var , integer $depth , integer $indent )
Защищённая функция экспорта, используемая для отслеживания отступов и рекурсии.
Параметры
- смешанное
$var - Переменная для вывода.
- целое число
$depth - Остаточная глубина.
- целое число
$indent - Текущий уровень отступа.
Возвращаемое значение
строкаВыведенная переменная.
_highlight()source protected static
_highlight( string $str )
Оборачивает функцию highlight_string на случай, если серверный API не реализует её, как это происходит в интерпретаторе HipHop
Параметры
- строка
$str - строка для преобразования
Возвращаемое значение
строка_object()source protected static
_object( string $var , integer $depth , integer $indent )
Обработка преобразования объекта в строку.
Параметры
- строка
$var - Объект для преобразования
- целое число
$depth - Текущая глубина, используемая для отслеживания рекурсии.
- целое число
$indent - Текущий уровень отступа.
Возвращаемое значение
строкаСм. также
Debugger::exportVar()addFormat()source public static
addFormat( string $format , array $strings )
Добавить формат вывода или обновить формат в Debugger.
Debugger::addFormat('custom', $data);
Где $data — массив строк, использующих переменную замену CakeText::insert(). Переменные шаблона должны быть в формате {:id}. Форматтер ошибок может иметь следующие ключи:
- 'error' — Используется для контейнера сообщения об ошибке. Получает следующие переменные шаблона:
id,error,code,description,path,line,links,info - 'info' — Сочетание
code,contextиtrace. Будет заполнен содержимым других ключей шаблона. - 'trace' — Контейнер для трассировки стека. Получает следующие переменные шаблона:
trace - 'context' — Элемент контейнера для переменных контекста. Получает следующие шаблоны:
id,context - 'links' — Массив HTML-ссылок, используемых для создания ссылок на другие ресурсы. Обычно используется для создания JavaScript-ссылок для открытия других разделов. Ключи ссылок:
code,context,help. Смотрите формат вывода js для примера. - 'traceLine' — Используется для создания строк в трассировке стека. Получает следующие переменные шаблона:
reference,path,line
В качестве альтернативы, если вы хотите использовать пользовательскую функцию для форматирования, вы можете использовать ключ callback и предоставить вызываемый объект:
Debugger::addFormat('custom', array('callback' => array($foo, 'outputError'));
Функция обратного вызова может принимать два параметра. Первый — массив всех данных об ошибке. Второй — содержит отформатированные строки, сгенерированные с использованием других строк шаблона. Ключи, такие как info, links, code, context и trace будут присутствовать в зависимости от других шаблонов в типе формата.
Параметры
- строка
$format Формат для использования, включая 'js' для JavaScript-улучшенного HTML, 'html' для простого HTML вывода или 'txt' для неформатированного текста.
- массив
$strings - Строки шаблона или вызываемый объект, используемый для формата вывода.
Возвращает
Результатнастроек формата вывода.
checkSecurityKeys()source public static
checkSecurityKeys( )
Проверяет, что значение соли и зерна шифрования приложения было изменено с значения по умолчанию.
dump()source public static
dump( mixed $var , integer $depth 3 )
Рекурсивно форматирует и выводит содержимое переданной переменной.
Параметры
- смешанный тип
$var - переменная для вывода
- целое число
$depthнеобязательно 3 - Глубина вывода. По умолчанию 3.
См. также
Debugger::exportVar()Ссылка
https://book.cakephp.org/2.0/ru/development/debugging.html#Debugger::dumpexcerpt()source public static
excerpt( string $file , integer $line , integer $context 2 )
Извлекает фрагмент из файла и выделяет указанную строку кода.
Использование:
Debugger::excerpt('/path/to/file', 100, 4);
Выше приведен пример, который вернёт массив из 8 элементов. Четвёртый элемент будет предоставленной строкой, заключённой в <span class="code-highlight"></span>. Все строки также обрабатываются с помощью highlight_string(), поэтому они имеют базовую синтаксическую подсветку PHP.
Параметры
- строка
$file - Абсолютный путь к файлу PHP
- целое число
$line - Номер строки для выделения
- целое число
$contextнеобязательно 2 - Количество строк контекста для извлечения выше и ниже $line
Возвращает
массивНабор выделенных строк
См. также
http://php.net/highlight_stringСсылка
https://book.cakephp.org/2.0/ru/development/debugging.html#Debugger::excerptexportVar()source public static
exportVar( string $var , integer $depth 3 )
Преобразует переменную в строку для вывода отладки.
Примечание: Содержимое следующих ключей будет заменено на *****:
- password
- login
- host
- database
- port
Это делается для защиты данных базы данных, которые могут быть случайно показаны в сообщении об ошибке, если CakePHP развернут в режиме разработки.
Параметры
- строка
$var - Переменная для преобразования
- целое число
$depthнеобязательно 3 - Глубина вывода. По умолчанию 3.
Возвращает
строкаПеременная в формате строки
Ссылка
https://book.cakephp.org/2.0/ru/development/debugging.html#Debugger::exportVargetInstance()source public static
getInstance( string $class null )
Возвращает ссылку на объект Debugger синглтона.
Параметры
- строка
$classнеобязательно null - Имя класса Debugger.
Возвращает
объектgetType()source public static
getType( mixed $var )
Получить тип заданной переменной. Для объектов вернёт имя класса.
Параметры
- смешанный тип
$var - Переменная, тип которой нужно получить
Возвращает
строкаТип переменной.
log()source public static
log( mixed $var , integer $level LOG_DEBUG , integer $depth 3 )
Создаёт запись в файле журнала. Запись журнала будет содержать трассировку стека вызова, а также экспортировать переменную с помощью exportVar. По умолчанию журнал записывается в журнал отладки.
Параметры
- смешанный тип
$var - Переменная или содержимое для записи в журнал
- целое число
$levelнеобязательно LOG_DEBUG - Тип журнала. По умолчанию LOG_DEBUG
- целое число
$depthнеобязательно 3 - Глубина вывода. По умолчанию 3.
Ссылка
https://book.cakephp.org/2.0/ru/development/debugging.html#Debugger::logoutput()source public static
output( string $format null , array $strings array() )
Переключает формат вывода, обновляет строки формата. Может использоваться для переключения активного формата вывода:
Устарело
3.0.0 Используйте Debugger::outputAs() и Debugger::addFormat(). Будет удалено в 3.0
Параметры
- строка
$formatнеобязательно null Формат для использования, включая 'js' для JavaScript-улучшенного HTML, 'html' для простого HTML вывода или 'txt' для неформатированного текста.
- массив
$stringsнеобязательно array() - Строки шаблона, используемые для формата вывода.
Возвращает
строкаoutputAs()source public static
outputAs( string $format null )
Получение/Установка формата вывода для рендеринга ошибок Debugger.
Параметры
- строка
$formatнеобязательно null Формат вывода ошибок. Оставьте null, чтобы получить текущий формат.
Возвращает
смешанный типВозвращает null при установке. Возвращает текущий формат при получении.
Выбрасывает
CakeExceptionпри выборе формата, которого нет.
outputError()source public
outputError( string $data )
Принимает обработанный массив данных об ошибке и отображает его в выбранном формате.
Параметры
- строка
$data - Данные для вывода.
showError()source public static
showError( integer $code , string $description , string $file null , integer $line null , array $context null )
Переопределяет стандартную обработку ошибок PHP.
Устаревший
3.0.0 Будет удален в версии 3.0. Эта функция заменена Debugger::outputError().Параметры
- integer
$code - Код ошибки
- string
$description - Описание ошибки
- string
$fileнеобязательный null - Файл, в котором произошла ошибка
- integer
$lineнеобязательный null - Строка, вызвавшая ошибку
- array
$contextнеобязательный null - Контекст
Возвращаемое значение
boolean|nullTrue, если ошибка обработана, иначе null.
trace()source public static
trace( array $options array() )
Выводит трассировку стека на основе предоставленных параметров.
Параметры
-
depth- Количество кадров стека для возврата. По умолчанию 999 -
format- Формат возвращаемого значения. По умолчанию использует текущий выбранный формат. Если формат 'array' или 'points', возвращаемое значение будет массивом. -
args- Показывать аргументы функций? Если true, будут отображаться аргументы каждого вызова метода. -
start- Кадр стека, с которого начинать генерацию трассировки. По умолчанию 0
Параметры
- array
$optionsнеобязательный array() - Формат для вывода трассировки стека
Возвращаемое значение
mixedОтформатированная трассировка стека
Ссылка
https://book.cakephp.org/2.0/ru/development/debugging.html#Debugger::tracetrimPath()source public static
trimPath( string $path )
Укорачивает пути к файлам, заменяя путь к базе приложения на 'APP', а путь к ядру CakePHP на 'CORE'.
Параметры
- string
$path - Путь для укорачивания
Возвращаемое значение
stringНормализованный путь
Подробное описание свойств
$_templatessource
protected string
Шаблоны, используемые при генерации трассировки или строк ошибок. Могут быть глобальными или индексироваться по значению формата, используемому в $_outputFormat.
array(
'log' => array(
'trace' => '{:reference} - {:path}, line {:line}',
'error' => "{:error} ({:code}): {:description} in [{:file}, line {:line}]"
),
'js' => array(
'error' => '',
'info' => '',
'trace' => '<pre class="stack-trace">{:trace}</pre>',
'code' => '',
'context' => '',
'links' => array(),
'escapeContext' => true,
),
'html' => array(
'trace' => '<pre class="cake-error trace"><b>Trace</b> <p>{:trace}</p></pre>',
'context' => '<pre class="cake-error context"><b>Context</b> <p>{:context}</p></pre>',
'escapeContext' => true,
),
'txt' => array(
'error' => "{:error}: {:code} :: {:description} on line {:line} of {:path}\n{:info}",
'code' => '',
'info' => ''
),
'base' => array(
'traceLine' => '{:reference} - {:path}, line {:line}',
'trace' => "Trace:\n{:trace}\n",
'context' => "Context:\n{:context}\n",
)
)
© 2005–2017 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/2.10/class-Debugger.html