Класс Debugger
Предоставляет настраиваемый протоколирование и обработку ошибок.
Debugger переопределяет стандартную обработку ошибок PHP, чтобы обеспечить трассировку стека и расширенное протоколирование
Ссылка: http://book.cakephp.org/2.0/ru/development/debugging.html#debugger-class
Авторские права: Авторские права (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 singleton.
-
Получить тип заданной переменной. Для объектов возвращает имя класса.
-
Создает запись в файле журнала. Запись журнала будет содержать трассировку стека от места вызова, а также экспорт переменной с помощью exportVar. По умолчанию журнал записывается в журнал отладки.
-
Переключает формат вывода, обновляет строки формата. Может использоваться для переключения активного формата вывода:
- Получить/установить формат вывода для отображения ошибок Debugger.
- outputError() publicПринимает обработанный массив данных из ошибки и отображает его в выбранном формате.
- Переопределяет стандартную обработку ошибок PHP.
- Выводит трассировку стека на основе предоставленных параметров.
-
Укорачивает пути к файлам, заменяя путь к базе приложения на 'APP', а путь к ядру CakePHP на 'CORE'.
Подробное описание методов
_array()источник protected static
_array( array $var , integer $depth , integer $indent )
Экспорт объекта типа массив. Фильтрует ключи, используемые в конфигурации источника данных.
Следующие ключи заменяются на ***
- пароль
- логин
- хост
- база данных
- порт
Параметры
- массив
$var - Массив для экспорта.
- целое число
$depth - Текущая глубина, используемая для отслеживания рекурсии.
- целое число
$indent - Текущий уровень отступа.
Возвращает
строкаЭкспортированный массив.
_export()источник protected static
_export( mixed $var , integer $depth , integer $indent )
Защищенная функция экспорта, используемая для отслеживания отступов и рекурсии.
Параметры
- смешанный
$var - Переменная для вывода.
- целое число
$depth - Остаточная глубина.
- целое число
$indent - Текущий уровень отступа.
Возвращает
строкаВывод переменной.
_highlight()источник protected static
_highlight( string $str )
Оборачивает функцию highlight_string в случае, если серверный API не реализует её, как это происходит в случае интерпретатора HipHop
Параметры
- строка
$str - строка для преобразования
Возвращает
строка_object()источник 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()Ссылка
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 )
Преобразование переменной в строку для вывода отладки.
Примечание: Содержимое следующих ключей будет заменено на *****:
- password
- login
- host
- database
- port
Это делается для защиты данных для доступа к базе данных, которые могли бы случайно отобразиться в сообщении об ошибке, если 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' для 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().Параметры
- целое число
$code - Код ошибки
- строка
$description - Описание ошибки
- строка
$fileнеобязательно null - Файл, в котором произошла ошибка
- целое число
$lineнеобязательно null - Строка, которая вызвала ошибку
- массив
$contextнеобязательно null - Контекст
Возвращает
boolean|nullTrue, если ошибка была обработана, иначе null.
trace()source public static
trace( array $options array() )
Выводит трассировку стека на основе предоставленных параметров.
Параметры
-
depth- Количество кадров стека для возврата. По умолчанию 999 -
format- Формат вывода. По умолчанию используется текущий выбранный формат. Если формат 'массив' или 'точки', возвращается массив. -
args- Показывать аргументы функций? Если true, будут отображены аргументы каждого вызова метода. -
start- Кадр стека, с которого начинается генерация трассировки. По умолчанию 0
Параметры
- массив
$optionsнеобязательно array() - Формат для вывода трассировки стека
Возвращает
смешанный типОтформатированная трассировка стека
Ссылка
http://book.cakephp.org/2.0/en/development/debugging.html#Debugger::tracetrimPath()source public static
trimPath( string $path )
Укорачивает пути к файлам, заменяя путь к базе приложения на 'APP', а путь к ядру CakePHP на 'CORE'.
Параметры
- строка
$path - Путь для укорачивания
Возвращает
строкаНормализованный путь
Подробное описание свойств
$_datasource
protected строка
Содержит текущие данные вывода, когда outputFormat равен false.
array()
$_templatessource
protected строка
Шаблоны, используемые при генерации трассировки или строк ошибок. Могут быть глобальными или индексироваться значением формата, используемым в $_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.
http://api.cakephp.org/2.8/class-Debugger.html