Класс 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
Параметры
- array
$var - Массив для экспорта.
- integer
$depth - Текущая глубина, используемая для отслеживания рекурсии.
- integer
$indent - Текущий уровень отступа.
Возвращает
stringЭкспортированный массив.
_export()source protected static
_export( mixed $var , integer $depth , integer $indent )
Защищённая функция экспорта, используемая для отслеживания отступов и рекурсии.
Параметры
- mixed
$var - Переменная для вывода.
- integer
$depth - Остаточная глубина.
- integer
$indent - Текущий уровень отступа.
Возвращает
stringВыведенная переменная.
_highlight()source protected static
_highlight( string $str )
Оборачивает функцию highlight_string, на случай, если серверная API не реализует её, как это происходит в случае интерпретатора HipHop
Параметры
- string
$str - Строка для преобразования.
Возвращает
string_object()source protected static
_object( object $var , integer $depth , integer $indent )
Обрабатывает преобразование объектов в строки.
Параметры
- object
$var - Объект для преобразования.
- integer
$depth - Текущая глубина, используемая для отслеживания рекурсии.
- integer
$indent - Текущий уровень отступа.
Возвращает
stringСм. также
\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( 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( string $data )
Принимает обработанный массив данных из ошибки и отображает его в выбранном формате.
Параметры
- string
$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::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/en/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–2017 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.4/class-Cake.Error.Debugger.html