Класс Debugger
Предоставляет настраиваемый протоколирование и обработку ошибок.
Debugger переопределяет стандартную обработку ошибок PHP, чтобы предоставлять трассировки стека и расширенное протоколирование
Ссылка: http://book.cakephp.org/2.0/ru/development/debugging.html#debugger-class
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://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 синглтона.
-
Получение типа заданной переменной. Для объектов будет возвращено имя класса.
-
Создает запись в лог-файле. Запись лога будет содержать трассировку стека вызова, а также экспорт переменной с помощью 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' для 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.
См. также
Debugger::exportVar()Ссылка
http://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Ссылка
http://book.cakephp.org/2.0/ru/development/debugging.html#Debugger::excerptexportVar()source public static
exportVar( string $var , integer $depth 3 )
Преобразует переменную в строку для вывода отладки.
Примечание: следующие ключи будут иметь свое содержимое заменены на *****:
- пароль
- логин
- хост
- база данных
- порт
Это делается для защиты данных учетных данных базы данных, которые могут случайно отображаться в сообщении об ошибке, если CakePHP развернут в режиме разработки.
Параметры
- строка
$var - Переменная для преобразования
- целое число
$depthнеобязательно 3 - Глубина вывода. По умолчанию 3.
Возвращает
строкаПеременная в виде отформатированной строки
Ссылка
http://book.cakephp.org/2.0/ru/development/debugging.html#Debugger::exportVargetInstance()source public static
getInstance( string $class null )
Возвращает ссылку на объект Debugger singleton.
Параметры
- строка
$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.
Ссылка
http://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' для HTML с JavaScript, '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Отформатированная трассировка стека
Ссылка
http://book.cakephp.org/2.0/ru/development/debugging.html#Debugger::tracetrimPath()source public static
trimPath( string $path )
Укорачивает пути к файлам, заменяя путь к приложению на 'APP', а путь к ядру CakePHP на 'CORE'.
Параметры
- string
$path - Путь для укорачивания
Возвращает
stringНормализованный путь
Подробное описание свойств
$_datasource
protected string
Содержит текущие данные вывода, когда outputFormat равен false.
array()
$_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–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.
https://api.cakephp.org/2.9/class-Debugger.html