Класс Debugger
Предоставляет пользовательскую обработку логирования и ошибок.
Debugger переопределяет стандартную обработку ошибок PHP, чтобы предоставить трассировки стека и улучшенное логирование
- Cake\Error\Debugger использует Cake\Core\InstanceConfigTrait
Ссылка: https://book.cakephp.org/3.0/ru/development/debugging.html#namespace-Cake\Error
Расположение: Error/Debugger.php
Краткое описание свойств
-
$_dataprotectedСодержит текущие данные вывода, когда outputFormat равен false.array -
$_defaultConfigprotectedКонфигурация по умолчаниюarray -
$_outputFormatprotectedТекущий формат вывода.string -
$_templatesprotectedarrayШаблоны, используемые при генерации строк трассировки или ошибок. Могут быть глобальными или индексированными по значению формата, используемому в $_outputFormat.
-
$errorspublicСписок ошибок, сгенерированных приложением.array
Унаследованные свойства
Краткое описание методов
- __construct() publicКонструктор.
- Экспортирует объект типа массив. Фильтрует ключи, используемые в конфигурации источника данных.
- Защищённая функция экспорта, используемая для отслеживания отступов и рекурсии.
-
Оборачивает функцию highlight_string на случай, если серверная API не реализует её, как это бывает в случае с интерпретатором HipHop.
- Обрабатывает преобразование объекта в строку.
- Добавляет или обновляет формат вывода в Debugger.
- Проверяет, что соль приложения и значение ключа шифрации были изменены с значения по умолчанию.
- Чтение или запись конфигурационных параметров для экземпляра Debugger.
- Рекурсивно форматирует и выводит содержимое переданной переменной.
- Извлекает фрагмент из файла и выделяет указанную строку кода.
- Преобразует переменную в строку для вывода отладки.
- Форматирует трассировку стека на основе переданных параметров.
- Возвращает ссылку на экземпляр объекта Debugger.
- Получение формата вывода для отображения ошибок Debugger.
-
Получение типа заданной переменной. Для объектов вернёт имя класса.
-
Создаёт запись в файле журнала. Запись журнала будет содержать трассировку стека от места вызова, а также экспортирует переменную с помощью exportVar. По умолчанию журнал записывается в лог отладки.
- Получение/установка формата вывода для отображения ошибок Debugger.
- outputError() publicПринимает обработанный массив данных из ошибки и отображает его в выбранном формате.
- Считывает текущую маску вывода.
- Выводит информацию об отладке заданной переменной.
- Устанавливает формат вывода для отображения ошибок Debugger.
- Устанавливает настраиваемую маску вывода отладчика по имени свойства и имени ключа массива.
- Выводит трассировку стека на основе переданных параметров.
-
Укорачивает пути к файлам, заменяя путь к основе приложения на 'APP', и путь к ядру CakePHP на 'CORE'.
Подробное описание методов
_array()source protected static
_array( array $var , integer $depth , integer $indent )
Экспортирует объект типа массив. Фильтрует ключи, используемые в конфигурации источника данных.
Следующие ключи заменяются на ***
- 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( object $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( )
Проверяет, что соль и значение семени шифрования приложения изменены с значения по умолчанию.
configInstance()source public static
configInstance( string|array|null $key = null , mixed|null $value = null , boolean $merge = true )
Чтение или запись параметров конфигурации для экземпляра Debugger.
Параметры
- строка|массив|null
$keyнеобязательно null - Ключ для получения/установки или полный массив конфигураций.
- смешанное|null
$valueнеобязательно null - Значение для установки.
- логическое
$mergeнеобязательно true - Рекурсивно сливать или перезаписывать существующую конфигурацию, по умолчанию true.
Возвращает
смешанноеЗначение конфигурации, которое считывается, или сам объект при операциях записи.
Исключения
Cake\Core\Exception\ExceptionПри попытке установить недействительный ключ.
dump()source public static
dump( mixed $var , integer $depth = 3 )
Рекурсивно форматирует и выводит содержимое предоставленной переменной.
Параметры
- смешанное
$var - Переменная для вывода.
- целое число
$depthнеобязательно 3 - Глубина вывода. По умолчанию 3.
См. также
\Cake\Error\Debugger::exportVar()Ссылка
https://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 элементов. Четвертый элемент будет предоставленной строкой и будет заключен в <span class="code-highlight"></span>. Все строки также обрабатываются с помощью highlight_string(), поэтому к ним применяется базовая подсветка синтаксиса PHP.
Параметры
- строка
$file - Абсолютный путь к файлу PHP.
- целое число
$line - Номер строки для выделения.
- целое число
$contextнеобязательно 2 - Количество строк контекста для извлечения сверху и снизу строки $line.
Возвращает
массивНабор выделенных строк
См. также
https://secure.php.net/highlight_stringСсылка
https://book.cakephp.org/3.0/ru/development/debugging.html#getting-an-excerpt-from-a-fileexportVar()source public static
exportVar( mixed $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необязательно [] - Формат вывода стека вызовов.
Возвращает
смешанноеОтформатированный стек вызовов.
Ссылка
https://book.cakephp.org/3.0/ru/development/debugging.html#generating-stack-tracesgetInstance()source public static
getInstance( string|null $class = null )
Возвращает ссылку на экземпляр объекта-синглтона Debugger.
Параметры
- строка|null
$classнеобязательно null - Имя класса.
Возвращает
Cake\Error\DebuggergetOutputFormat()source public static
getOutputFormat( )
Получить формат вывода для отображения ошибок Debugger.
Возвращает
строкаВозвращает текущий формат при получении.
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 deprecated
outputAs( string|null $format = null )
Получить/Установить формат вывода для отображения ошибок Debugger.
Устарело
3.5.0 Используйте getOutputFormat()/setOutputFormat() вместо этого.Параметры
- string|null
$formatнеобязательно null Формат вывода ошибок. Оставьте null, чтобы получить текущий формат.
Возвращает
string|nullВозвращает null при установке. Возвращает текущий формат при получении.
Выбрасывает
InvalidArgumentExceptionПри выборе формата, которого нет.
outputError()source public
outputError( array $data )
Принимает обработанный массив данных из ошибки и отображает его в выбранном формате.
Параметры
- array
$data - Данные для вывода.
printVar()source public static
printVar( mixed $var , array $location = [] , boolean|null $showHtml = null )
Выводит отладочную информацию о заданной переменной.
Параметры
- mixed
$var - Переменная, для которой требуется показать отладочную информацию.
- array
$locationнеобязательно [] Если содержит ключи "file" и "line", их значения будут использованы для отображения информации о местоположении.
- boolean|null
$showHtmlнеобязательно null Если установлено в true, метод выводит данные отладки удобным для браузера способом.
setOutputFormat()source public static
setOutputFormat( string $format )
Установить формат вывода для отображения ошибок Debugger.
Параметры
- string
$format - Формат вывода ошибок.
Выбрасывает
InvalidArgumentExceptionПри выборе формата, которого нет.
setOutputMask()source public static
setOutputMask( array $value , boolean $merge = true )
Устанавливает настраиваемую маску вывода Debugger по имени свойства и имени ключа массива.
Пример
Debugger::setOutputMask(['password' => '[*************]');
Параметры
- array
$value - Массив, где ключи заменяются значениями в выводе.
- boolean
$mergeнеобязательно true - Флаг для рекурсивной слияния или перезаписи существующей конфигурации, по умолчанию true.
trace()source public static
trace( array $options = [] )
Выводит трассировку стека на основе предоставленных параметров.
Параметры
-
depth- Количество кадров стека для возврата. По умолчанию 999 -
format- Формат возвращаемого значения. По умолчанию - текущий выбранный формат. Если формат 'array' или 'points', возвращаемое значение будет массивом. -
args- Показывать аргументы функций? Если true, будут отображаться аргументы каждого вызова метода. -
start- Кадр стека, с которого начинается генерация трассировки. По умолчанию 0
Параметры
- array
$optionsнеобязательно [] - Формат вывода трассировки стека.
Возвращает
mixedОтформатированная трассировка стека.
Ссылка
https://book.cakephp.org/3.0/ru/development/debugging.html#generating-stack-tracestrimPath()source public static
trimPath( string $path )
Укорачивает пути к файлам, заменяя путь к основной папке приложения на 'APP', а путь к ядру CakePHP на 'CORE'.
Параметры
- string
$path - Путь для укорочения.
Возвращает
stringНормализованный путь
Методы, используемые из Cake\Core\InstanceConfigTrait
_configDelete()source protected
_configDelete( string $key )
Удаляет один ключ конфигурации.
Параметры
- string
$key - Ключ для удаления.
Выбрасывает
Cake\Core\Exception\Exceptionесли пытаетесь перезаписать существующую конфигурацию
_configRead()source protected
_configRead( string|null $key )
Считывает значение ключа конфигурации.
Параметры
- string|null
$key - Ключ для чтения.
Возвращает
mixed_configWrite()source protected
_configWrite( string|array $key , mixed $value , boolean|string $merge = false )
Записывает значение ключа конфигурации.
Параметры
- string|array
$key - Ключ для записи.
- mixed
$value - Значение для записи.
- boolean|string
$mergeнеобязательно false True для рекурсивного слияния, 'shallow' для простого слияния, false для перезаписи, по умолчанию false.
Выбрасывает
Cake\Core\Exception\Exceptionесли пытаетесь перезаписать существующую конфигурацию
config()source public deprecated
config( string|array|null $key = null , mixed|null $value = null , boolean $merge = true )
Получить/Установить конфигурацию.
Использование
Чтение всей конфигурации:
$this->config();
Чтение конкретного значения:
$this->config('key'); Чтение вложенного значения:
$this->config('some.nested.key'); Установка конкретного значения:
$this->config('key', $value); Установка вложенного значения:
$this->config('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->config(['one' => 'value', 'another' => 'value']);
Устарело
3.4.0 используйте setConfig()/getConfig() вместо этого.Параметры
- string|array|null
$keyнеобязательно null - Ключ для получения/установки, или полный массив конфигураций.
- mixed|null
$valueнеобязательно null - Значение для установки.
- boolean
$mergeнеобязательно true - Выполнять ли рекурсивное слияние или перезаписывать существующую конфигурацию, по умолчанию true.
Возвращает
mixedЗначение конфигурации, которое читается, или сам объект при операциях записи.
Выбрасывает
Cake\Core\Exception\ExceptionПри попытке установить недействительный ключ.
configShallow()source public
configShallow( string|array $key , mixed|null $value = null )
Объединяет предоставленную конфигурацию с существующей конфигурацией. В отличие от config(), которая выполняет рекурсивное слияние для вложенных ключей, этот метод выполняет простое слияние.
Установка конкретного значения:
$this->configShallow('key', $value); Установка вложенного значения:
$this->configShallow('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->configShallow(['one' => 'value', 'another' => 'value']);
Параметры
- string|array
$key - Ключ для установки, или полный массив конфигураций.
- mixed|null
$valueнеобязательно null - Значение для установки.
Возвращает
$this
getConfig()source public
getConfig( string|null $key = null , mixed $default = null )
Возвращает конфигурацию.
Использование
Чтение всей конфигурации:
$this->getConfig();
Чтение конкретного значения:
$this->getConfig('key'); Чтение вложенного значения:
$this->getConfig('some.nested.key'); Чтение со значением по умолчанию:
$this->getConfig('some-key', 'default-value'); Параметры
- string|null
$keyнеобязательно null - Ключ для получения или null для всей конфигурации.
- mixed
$defaultнеобязательно null - Значение по умолчанию, если ключ не найден.
Возвращает
mixedЗначение конфигурации, которое читается.
setConfig()source public
setConfig( string|array $key , mixed|null $value = null , boolean $merge = true )
Устанавливает конфигурацию.
Использование
Установка определённого значения:
$this->setConfig('key', $value); Установка значения вложенного уровня:
$this->setConfig('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->setConfig(['one' => 'value', 'another' => 'value']);
Параметры
- строка|массив
$key - Ключ для установки или весь массив настроек.
- значение|null
$valueнеобязательно null - Значение для установки.
- логическое значение
$mergeнеобязательно true - Флаг рекурсивного слияния или перезаписи существующей конфигурации, по умолчанию true.
Возвращает
$this
Выбрасывает
Cake\Core\Exception\ExceptionПри попытке установить несуществующий ключ.
Подробное описание свойств
$_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–present 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/3.6/class-Cake.Error.Debugger.html