Класс 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 )
Экспорт объекта типа массив. Фильтрует ключи, используемые в конфигурации источника данных.
Следующие ключи заменяются на ***
- пароль
- логин
- хост
- база данных
- порт
- префикс
- схема
Параметры
- массив
$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.
Возвращает
mixedЗначение конфигурации, которое считывается, или сам объект при операциях записи.
Исключения
Cake\Core\Exception\ExceptionПри попытке установить неверный ключ.
dump()source public static
dump( mixed $var , integer $depth = 3 )
Рекурсивно форматирует и выводит содержимое переданной переменной.
Параметры
- mixed
$var - Переменная для вывода.
- integer
$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.
Параметры
- string
$file - Абсолютный путь к файлу PHP.
- integer
$line - Номер строки для выделения.
- integer
$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 развернут в режиме разработки.
Параметры
- mixed
$var - Переменная для преобразования.
- integer
$depthнеобязательно 3 - Глубина вывода. По умолчанию 3.
Возвращает
строкаПеременная в отформатированном виде
formatTrace()source public static
formatTrace( array|Exception $backtrace , array $options = [] )
Форматирует стек вызовов на основе предоставленных параметров.
Параметры
-
depth— число кадров стека, которые нужно вернуть. По умолчанию 999 -
format— формат возвращаемого значения. По умолчанию — текущий выбранный формат. Если format равен 'array' или 'points', возвращаемое значение будет массивом. -
args— показывать аргументы функций? Если true, будут отображаться аргументы каждого вызова метода. -
start— кадр стека, с которого начать генерацию стека. По умолчанию 0
Параметры
- array|Exception
$backtrace - Стек вызовов как массив или объект исключения.
- array
$optionsнеобязательно [] - Формат для вывода стека вызовов.
Возвращает
mixedОтформатированный стек вызовов.
Ссылка
https://book.cakephp.org/3.0/ru/development/debugging.html#generating-stack-tracesgetInstance()source public static
getInstance( string|null $class = null )
Возвращает ссылку на экземпляр объекта-синглтона Debugger.
Параметры
- string|null
$classнеобязательно null - Имя класса.
Возвращает
Cake\Error\DebuggergetOutputFormat()source public static
getOutputFormat( )
Получить формат вывода для отображения ошибок Debugger.
Возвращает
строкаВозвращает текущий формат при получении.
getType()source public static
getType( mixed $var )
Получить тип данной переменной. Для объектов вернет имя класса.
Параметры
- mixed
$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 deprecated
outputAs( string|null $format = null )
Получить/установить формат вывода для отображения ошибок Debugger.
Устаревшее
3.5.0 Используйте getOutputFormat()/setOutputFormat() вместо этого.Параметры
- string|null
$formatoptional 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
$locationoptional [] Если содержит ключи "file" и "line", их значения будут использованы для отображения информации о расположении.
- boolean|null
$showHtmloptional 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
$mergeoptional true - Выполнять рекурсивное слияние или перезаписывать существующую конфигурацию, по умолчанию true.
trace()source public static
trace( array $options = [] )
Выводит трассировку стека, основанную на предоставленных параметрах.
Параметры
-
depth- Количество кадров стека, которое нужно вернуть. По умолчанию 999 -
format- Формат, в котором вы хотите получить результат. По умолчанию выбранный текущий формат. Если формат 'array' или 'points', результат будет массивом. -
args- Нужно ли отображать аргументы функций? Если true, для каждого вызова метода будут отображаться аргументы. -
start- Кадр стека, с которого начать генерацию трассировки. По умолчанию 0
Параметры
- array
$optionsoptional [] - Формат вывода трассировки стека.
Возвращает
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
$mergeoptional 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
$keyoptional null - Ключ для получения/установки или весь массив конфигураций.
- mixed|null
$valueoptional null - Значение для установки.
- boolean
$mergeoptional 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
$valueoptional 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
$keyoptional null - Ключ для получения или null для всей конфигурации.
- mixed
$defaultoptional null - Возвращаемое значение, если ключ не существует.
Возвращает
mixedДанные конфигурации по указанному ключу или null, если ключ не существует.
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–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.8/class-Cake.Error.Debugger.html