Класс Debugger
Предоставляет настраиваемое ведение журнала и обработку ошибок.
Debugger переопределяет стандартную обработку ошибок PHP, чтобы обеспечить трассировки стека и расширенное ведение журнала.
Ссылка: http://book.cakephp.org/3.0/ru/development/debugging.html#namespace-Cake\Error
Расположение: Error/Debugger.php
Краткое описание свойств
-
$_dataprotectedСодержит текущие данные вывода, когда outputFormat равен false.string -
$_outputFormatprotectedТекущий формат вывода.string -
$_templatesprotectedstringШаблоны, используемые при генерации строк трассировки или ошибок. Могут быть глобальными или индексированными по значению формата, используемому в $_outputFormat.
-
$errorspublicСписок ошибок, сгенерированных приложением.array
Краткое описание методов
- __construct() publicКонструктор.
- Экспорт объекта типа массив. Фильтрует ключи, используемые в конфигурации источника данных.
- Защищённая функция экспорта, используемая для отслеживания отступов и рекурсии.
-
Оборачивает функцию highlight_string на случай, если серверная API не реализует её, как это имеет место в случае интерпретатора HipHop.
- Обработка преобразования объекта в строку.
- Добавление формата вывода или обновление формата в Debugger.
- Проверка, что значение соли и ключа шифрования приложения было изменено со значения по умолчанию.
- Рекурсивный форматирование и вывод содержимого переданной переменной.
- Извлечение фрагмента из файла и выделение строки кода.
- Преобразование переменной в строку для вывода отладки.
- Форматирование трассировки стека на основе предоставленных параметров.
- Возвращает ссылку на объект-синглетон Debugger.
-
Получение типа заданной переменной. Для объектов возвращает имя класса.
-
Создаёт запись в файле журнала. Запись журнала будет содержать трассировку стека от места вызова, а также экспортирует переменную с помощью exportVar. По умолчанию журнал записывается в журнал отладки.
- Получение/установка формата вывода для рендеринга ошибок Debugger.
- outputError() publicПринимает обработанный массив данных из ошибки и отображает его в выбранном формате.
- Выводит трассировку стека на основе предоставленных параметров.
-
Укорачивает пути к файлам, заменяя путь к базовому приложению на 'APP', а путь к ядру CakePHP на 'CORE'.
Подробное описание методов
_array()source protected static
_array( array $var , integer $depth , integer $indent )
Экспорт объекта типа массив. Фильтрует ключи, используемые в конфигурации источника данных.
Следующие ключи заменяются на ***'s
- password
- login
- host
- database
- port
- prefix
- schema
Параметры
- массив
$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 - Текущий уровень отступа.
Возвращаемое значение
строкаСм. также
\Cake\Error\Debugger::exportVar()addFormat()source public static
addFormat( string $format , array $strings )
Добавить формат вывода или обновить формат в Debugger.
Debugger::addFormat('custom', $data); Где $data — массив строк, использующих переменную замену Text::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', ['callback' => [$foo, 'outputError']]; Функция обратного вызова может ожидать два параметра. Первый — массив со всеми данными об ошибке. Второй содержит отформатированные строки, сгенерированные с использованием других строк шаблона. Ключи, такие как info, links, code, context и trace, будут присутствовать в зависимости от других шаблонов в типе формата.
Параметры
- строка
$format Используемый формат, включая 'js' для HTML с JavaScript-улучшениями, 'html' для прямого вывода HTML или 'txt' для неформатированного текста.
- массив
$strings - Строки шаблона или функция обратного вызова для использования в формате вывода.
Возвращает
массивРезультат набора отформатированных строк.
checkSecurityKeys()source public static
checkSecurityKeys( )
Проверяет, что значение соли и значения ключа шифрования приложения изменено с значения по умолчанию.
dump()source public static
dump( mixed $var , integer $depth 3 )
Рекурсивно форматирует и выводит содержимое предоставленной переменной.
Параметры
- смешанный
$var - Переменная для вывода.
- целое
$depthнеобязательно 3 - Глубина вывода. По умолчанию 3.
См. также
\Cake\Error\Debugger::exportVar()Ссылка
http://book.cakephp.org/3.0/ru/development/debugging.html#outputting-valuesexcerpt()source public static
excerpt( string $file , integer $line , integer $context 2 )
Извлекает фрагмент из файла и выделяет заданную строку кода.
Использование:
Debugger::excerpt('/path/to/file', 100, 4); Выше указано возвращение массива из 8 элементов. 4-й элемент — предоставленная строка, заключенная в <span class="code-highlight"></span>. Все строки также обрабатываются с помощью highlight_string(), поэтому к ним применено базовое PHP-выделение синтаксиса.
Параметры
- строка
$file - Полный путь к файлу PHP.
- целое
$line - Номер строки для выделения.
- целое
$contextнеобязательно 2 - Количество строк контекста, извлекаемых над и под $line.
Возвращает
массивНабор выделенных строк.
См. также
http://php.net/highlight_stringСсылка
http://book.cakephp.org/3.0/ru/development/debugging.html#getting-an-excerpt-from-a-fileexportVar()source public static
exportVar( string $var , integer $depth 3 )
Преобразует переменную в строку для вывода отладки.
Примечание: следующие ключи будут заменены на *****:
- password
- login
- host
- database
- port
- prefix
- schema
Это делается для защиты учетных данных базы данных, которые могут случайно отображаться в сообщении об ошибке, если CakePHP развернут в режиме разработки.
Параметры
- строка
$var - Переменная для преобразования.
- целое
$depthнеобязательно 3 - Глубина вывода. По умолчанию 3.
Возвращает
строкаПеременная в отформатированном виде.
formatTrace()source public static
formatTrace( array|Exception $backtrace , array $options [] )
Форматирует трассировку стека на основе предоставленных параметров.
Параметры
-
depth— Количество кадров стека для возврата. По умолчанию 999 -
format— Формат возвращаемого значения. По умолчанию текущий выбранный формат. Если формат 'массив' или 'точки', возвращение будет массивом. -
args— Аргументы функций должны быть показаны? Если true, аргументы каждого вызова метода будут отображены. -
start— Кадр стека для начала генерации трассировки. По умолчанию 0
Параметры
- массив|Исключение
$backtrace - Трассировка как массив или объект исключения.
- массив
$optionsнеобязательно [] - Формат для вывода трассировки стека.
Возвращает
смешанныйОтформатированная трассировка стека.
Ссылка
http://book.cakephp.org/3.0/ru/development/debugging.html#generating-stack-tracesgetInstance()source public static
getInstance( string|null $class null )
Возвращает ссылку на экземпляр объекта Debugger-синглтона.
Параметры
- строка|null
$classнеобязательно null - Имя класса.
Возвращает
объектgetType()source public static
getType( mixed $var )
Возвращает тип заданной переменной. Для объектов будет возвращено имя класса.
Параметры
- смешанный
$var - Переменная, тип которой нужно получить.
Возвращает
строкаТип переменной.
log()source public static
log( mixed $var , integer|string $level 'debug' , integer $depth 3 )
Создает запись в файле журнала. Запись журнала будет содержать трассировку стека от места вызова, а также выведет переменную с помощью exportVar. По умолчанию журнал записывается в журнал отладки.
Параметры
- смешанный
$var - Переменная или содержимое для записи в журнал.
- целое|строка
$levelнеобязательно 'debug' - Тип журнала. По умолчанию 'debug'.
- целое
$depthнеобязательно 3 - Глубина вывода. По умолчанию 3.
outputAs()source public static
outputAs( string|null $format null )
Получить/установить формат вывода для Debugger отображения ошибок.
Параметры
- строка|null
$formatнеобязательно null Формат, в котором должны отображаться ошибки. Оставьте null, чтобы получить текущий формат.
Возвращает
строка|nullВозвращает null при установке. Возвращает текущий формат при получении.
Выбрасывает
InvalidArgumentExceptionПри выборе формата, которого не существует.
outputError()source public
outputError( string $data )
Принимает обработанный массив данных из ошибки и отображает его в выбранном формате.
Параметры
- строка
$data - Данные для вывода.
trace()source public static
trace( array $options [] )
Выводит трассировку стека на основе предоставленных параметров.
Параметры
-
depth- Количество кадров стека для возврата. По умолчанию 999 -
format- Формат, который вы хотите вернуть. По умолчанию используется текущий выбранный формат. Если формат 'array' или 'points', возвращаемое значение будет массивом. -
args- Должны ли отображаться аргументы функций? Если true, будут отображаться аргументы каждого вызова метода. -
start- Кадр стека, с которого начать генерацию трассировки. По умолчанию 0
Параметры
- массив
$optionsнеобязательно [] - Формат для вывода трассировки стека.
Возвращает
смешанный типОтформатированная трассировка стека.
Ссылка
http://book.cakephp.org/3.0/ru/development/debugging.html#generating-stack-tracestrimPath()source public static
trimPath( string $path )
Укорачивает пути к файлам, заменяя путь к базовому каталогу приложения на 'APP', а путь к ядру CakePHP на 'CORE'.
Параметры
- строка
$path - Путь для укорачивания.
Возвращает
строкаНормализованный путь
Подробное описание свойств
$_templatessource
protected строка
Шаблоны, используемые при генерации трассировки или сообщений об ошибках. Могут быть глобальными или индексироваться значением формата, используемым в $_outputFormat.
[
'log' => [
'trace' => '{:reference} - {:path}, line {:line}',
'error' => "{:error} ({:code}): {:description} in [{:file}, line {:line}]"
],
'js' => [
'error' => '',
'info' => '',
'trace' => '<pre class="stack-trace">{:trace}</pre>',
'code' => '',
'context' => '',
'links' => [],
'escapeContext' => true,
],
'html' => [
'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' => [
'error' => "{:error}: {:code} :: {:description} on line {:line} of {:path}\n{:info}",
'code' => '',
'info' => ''
],
'base' => [
'traceLine' => '{:reference} - {:path}, line {:line}',
'trace' => "Trace:\n{:trace}\n",
'context' => "Context:\n{:context}\n",
]
]
© 2005–2016 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.
http://api.cakephp.org/3.2/class-Cake.Error.Debugger.html