Класс 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 singleton.
- Получить формат вывода для отображения ошибки Debugger.
-
Получить тип данной переменной. Для объектов вернёт имя класса.
-
Создаёт запись в файле журнала. Запись журнала будет содержать трассировку стека от места вызова, а также экспортировать переменную с помощью exportVar. По умолчанию журнал записывается в журнал отладки.
- Получить/Установить формат вывода для отображения ошибки Debugger.
- outputError() publicПринимает обработанный массив данных из ошибки и отображает его в выбранном формате.
- Читает текущую маску вывода.
- Выводит отладочную информацию о данной переменной.
- Установить формат вывода для отображения ошибки Debugger.
- Устанавливает конфигурируемую маску вывода отладчика по имени свойства и имени ключа массива.
- Выводит трассировку стека на основе предоставленных параметров.
-
Укорачивает пути к файлам, заменяя путь к базовому приложению на '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( 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.
Параметры
- string
$format Используемый формат, включая 'js' для HTML с JavaScript-улучшениями, 'html' для прямого HTML-вывода или 'txt' для неформатированного текста.
- array
$strings - Строки шаблона или обратный вызов, используемый для формата вывода.
Возвращает
массивНабор настроенных строк формата.
checkSecurityKeys()source public static
checkSecurityKeys( )
Проверяет, что соль приложения и значение семени шифрования были изменены с значения по умолчанию.
configInstance()source public static
configInstance( string|array|null $key null , mixed|null $value null , boolean $merge true )
Чтение или запись параметров конфигурации для экземпляра Debugger.
Параметры
- string|array|null
$keyнеобязательно null - Ключ для получения/установки или полный массив конфигураций.
- mixed|null
$valueнеобязательно null - Значение для установки.
- boolean
$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( 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необязательно [] - Формат вывода трассировки стека.
Возвращает
смешанный типОтформатированная трассировка стека.
Ссылка
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. По умолчанию журнал записывается в журнал отладки.
Параметры
- mixed
$var - Переменная или содержимое для записи в журнал.
- integer|string
$levelнеобязательно 'debug' - Тип используемого журнала. По умолчанию 'debug'.
- integer
$depthнеобязательно 3 - Глубина вывода. По умолчанию 3.
outputAs()source public static
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 - Данные для вывода.
outputMask()source public static
outputMask( )
Считывает текущее маскирование вывода.
Возвращает
arrayprintVar()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::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
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']);
Параметры
- string|array
$key - Ключ для установки, или полный массив конфигураций.
- mixed|null
$valueнеобязательно null - Значение для установки.
- boolean
$mergeнеобязательно true - Флаг для рекурсивного слияния или перезаписи существующей конфигурации, по умолчанию true.
Возвращает
$this
Исключение
Cake\Core\Exception\ExceptionПри попытке установить недопустимый ключ.
Подробное описание свойств
$_templatessource
protected array
Шаблоны, используемые при генерации строк отслеживания или ошибок. Могут быть глобальными или индексированными по значению формата, используемому в $_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–2018 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.5/class-Cake.Error.Debugger.html