Класс 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.
- Настройка настраиваемой маски вывода 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::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. По умолчанию журнал записывается в журнал отладки.
Параметры
- mixed
$var - Переменная или содержимое для записи в журнал.
- integer|string
$leveloptional 'debug' - Тип журнала для использования. По умолчанию 'debug'.
- integer
$depthoptional 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 по имени свойства и имени ключа массива.
Пример
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/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
$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
$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–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.7/class-Cake.Error.Debugger.html