Класс Debugger
Предоставление пользовательского ведения журнала и обработки ошибок.
Debugger расширяет стандартную обработку ошибок PHP и предоставляет более простые в использовании и мощные интерфейсы.
Ссылка: https://book.cakephp.org/4/ru/development/debugging.html#namespace-Cake\Error
Краткое описание свойств
- $_config protected
array<string, mixed>Конфигурация во время выполнения
- $_configInitialized protected
boolУказывает, была ли конфигурация свойства уже настроена по умолчанию
- $_data protected
arrayСодержит текущие выходные данные, когда outputFormat равен false.
- $_defaultConfig protected
array<string, mixed>Конфигурация по умолчанию
- $_outputFormat protected
stringТекущий формат вывода.
- $_templates protected
array<string, array<string, mixed>>Шаблоны, используемые при генерации строк отслеживания или ошибок. Могут быть глобальными или индексироваться значением формата, используемым в $_outputFormat.
- $editors protected
array<string, string|callable>Карта редакторов и их шаблонов ссылок.
- $renderers protected
array<string, class-string>Отображение для рендереров ошибок.
Краткое описание методов
-
__construct() public
Конструктор.
-
_configDelete() protected
Удаляет один ключ конфигурации.
-
_configRead() protected
Считывает ключ конфигурации.
-
_configWrite() protected
Записывает ключ конфигурации.
-
_highlight() protected static
Оборачивает функцию highlight_string в случае, если серверный API не реализует её, как это происходит в случае интерпретатора HipHop.
-
addEditor() public static
Добавляет формат ссылки редактора.
-
addFormat() public static deprecated
Добавляет или обновляет формат вывода в отладчике.
-
addRenderer() public static deprecated
Добавляет рендерер к текущему экземпляру.
-
checkSecurityKeys() public static
Проверяет, что соль приложения и значение семени шифрования были изменены с значения по умолчанию.
-
configInstance() public static
Чтение или запись параметров конфигурации для экземпляра Debugger.
-
configShallow() public
Объединяет предоставленную конфигурацию с существующей. В отличие от
config(), которая выполняет рекурсивное объединение для вложенных ключей, этот метод выполняет простое объединение. -
dump() public static
Рекурсивно форматирует и выводит содержимое переданной переменной.
-
editorUrl() public static
Получает отформатированный URL для активного редактора.
-
excerpt() public static
Извлекает фрагмент из файла и выделяет указанную строку кода.
-
export() protected static
Защищенная функция экспорта, используемая для отслеживания отступов и рекурсии.
-
exportArray() protected static
Экспортирует объект типа массив. Фильтрует ключи, используемые в конфигурации источника данных.
-
exportObject() protected static
Обрабатывает преобразование объекта в узел.
-
exportVar() public static
Преобразует переменную в строку для вывода отладки.
-
exportVarAsNodes() public static
Преобразует переменную в внутреннее дерево узлов.
-
exportVarAsPlainText() public static
Преобразует переменную в обычную текстовую строку.
-
formatHtmlMessage() public static
Форматирует сообщение об ошибке в формате HTML.
-
formatTrace() public static
Форматирует стек вызовов на основе предоставленных опций.
-
getConfig() public
Возвращает конфигурацию.
-
getConfigOrFail() public
Возвращает конфигурацию для данного ключа.
-
getExportFormatter() public
Возвращает настроенный форматер экспорта или определяет его на основе среды.
-
getInstance() public static
Возвращает ссылку на объект-синглтон Debugger.
-
getOutputFormat() public static deprecated
Получение формата вывода для отображения ошибок Debugger.
-
getType() public static
Получение типа данной переменной. Для объектов возвращает имя класса.
-
log() public static
Создаёт запись в лог-файл. Запись лога будет содержать стек вызовов от места вызова, а также экспортировать переменную с помощью exportVar. По умолчанию, лог записывается в лог отладки.
-
outputError() public deprecated
Принимает обработанный массив данных из ошибки и отображает его в выбранном формате.
-
outputMask() public static
Читает текущую маску вывода.
-
printVar() public static
Выводит отладочную информацию о данной переменной.
-
setConfig() public
Устанавливает конфигурацию.
-
setEditor() public static
Выберите стиль ссылки редактора, который вы хотите использовать.
-
setOutputFormat() public static deprecated
Устанавливает формат вывода для отображения ошибок Debugger.
-
setOutputMask() public static
Устанавливает настраиваемую маску вывода отладчика по имени свойства и именам ключей массива.
-
trace() public static
Выводит стек вызовов на основе предоставленных опций.
-
trimPath() public static
Укорачивает пути к файлам, заменяя путь к базовому каталогу приложения на «APP», а путь к ядру CakePHP на «CORE».
Подробное описание методов
__construct() public
__construct()
Конструктор.
_configDelete() protected
_configDelete(string $key): void
Удаляет один ключ конфигурации.
Параметры
-
string$key Ключ для удаления.
Возвращает
voidИсключения
Cake\Core\Exception\CakeExceptionесли попытка перезаписать существующую конфигурацию
_configRead() protected
_configRead(string|null $key): mixed
Считывает значение ключа конфигурации.
Параметры
-
string|null$key Ключ для считывания.
Возвращает
mixed_configWrite() protected
_configWrite(array<string, mixed>|string $key, mixed $value, string|bool $merge = false): void
Записывает значение ключа конфигурации.
Параметры
-
array<string, mixed>|string$key Ключ для записи.
-
mixed$value Значение для записи.
-
string|bool$merge необязательный true для рекурсивного слияния, 'shallow' для простого слияния, false для перезаписи, по умолчанию false.
Возвращает
voidИсключения
Cake\Core\Exception\CakeExceptionесли попытка перезаписи существующей конфигурации
_highlight() protected static
_highlight(string $str): string
Оборачивает функцию highlight_string в случае, если серверный API не реализует эту функцию, как это происходит в случае интерпретатора HipHop
Параметры
-
string$str Строка для преобразования.
Возвращает
stringaddEditor() public static
addEditor(string $name, Closure|string $template): void
Добавляет формат ссылки редактора.
Строки шаблонов могут использовать заполнительные параметры {file} и {line}. Шаблоны-замыкания должны возвращать строку и принимать два параметра: файл и строку.
Параметры
-
string$name Название редактора.
-
Closure|string$template Строковый шаблон или замыкание.
Возвращает
voidaddFormat() public static
addFormat(string $format, array $strings): array
Добавляет формат вывода или обновляет формат в отладчике.
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' для JavaScript-обогащённого HTML, 'html' для простого HTML-вывода или 'txt' для неформатированного текста.
-
array$strings Строки шаблона или функция-обработчик для формата вывода.
Возвращает
arrayaddRenderer() public static
addRenderer(string $name, class-stringCake\Error\ErrorRendererInterface> $class): void
Добавляет рендерер к текущему экземпляру.
Параметры
-
string$name Псевдоним рендерера.
-
class-stringCake\Error\ErrorRendererInterface>$class Имя класса рендерера для использования.
Возвращает
voidcheckSecurityKeys() public static
checkSecurityKeys(): void
Проверяет, были ли изменены значения соли и ключа шифрования приложения по умолчанию.
Возвращает
voidconfigInstance() public static
configInstance(array<string, mixed>|string|null $key = null, mixed|null $value = null, bool $merge = true): mixed
Чтение или запись параметров конфигурации для экземпляра отладчика.
Параметры
-
array<string, mixed>|string|null$key необязательный Ключ для получения/установки или полный массив конфигураций.
-
mixed|null$value необязательный Значение для установки.
-
bool$merge необязательный Выполнять рекурсивное слияние или перезаписывать существующую конфигурацию, по умолчанию true.
Возвращает
mixedИсключения
Cake\Core\Exception\CakeExceptionПри попытке установить недопустимый ключ.
configShallow() public
configShallow(array<string, mixed>|string $key, mixed|null $value = null): $this
Сливает предоставленную конфигурацию с существующей конфигурацией. В отличие от config(), которое выполняет рекурсивное слияние для вложенных ключей, этот метод выполняет простое слияние.
Установка определенного значения:
$this->configShallow('key', $value); Установка вложенного значения:
$this->configShallow('some.nested.key', $value); Обновление нескольких параметров конфигурации одновременно:
$this->configShallow(['one' => 'value', 'another' => 'value']);
Параметры
-
array<string, mixed>|string$key Ключ для установки или полный массив конфигураций.
-
mixed|null$value необязательный Значение для установки.
Возвращает
$thisdump() public static
dump(mixed $var, int $maxDepth = 3): void
Рекурсивно форматирует и выводит содержимое переданной переменной.
Параметры
-
mixed$var Переменная для вывода.
-
int$maxDepth необязательный Глубина вывода. По умолчанию 3.
Возвращает
voidСм. также
Ссылки
editorUrl() public static
editorUrl(string $file, int $line): string
Получает отформатированный URL для активного редактора.
Параметры
-
string$file Файл для создания ссылки.
-
int$line Номер строки для создания ссылки.
Возвращает
stringexcerpt() public static
excerpt(string $file, int $line, int $context = 2): array<string>
Извлекает фрагмент из файла и выделяет заданную строку кода.
Использование:
Debugger::excerpt('/path/to/file', 100, 4); Вышеприведённый код вернёт массив из 8 элементов. Четвёртый элемент будет содержать предоставленную строку, заключённую в <span class="code-highlight"></span>. Все строки также будут обработаны функцией highlight_string(), поэтому к ним будет применено базовое синтаксическое выделение для PHP.
Параметры
-
string$file Абсолютный путь к файлу PHP.
-
int$line Номер строки для выделения.
-
int$context необязательный Количество строк контекста для извлечения над и под строкой $line.
Возвращает
array<string>См. также
Ссылки
export() protected static
export(mixed $var, Cake\Error\Debug\DebugContext $context): Cake\Error\Debug\NodeInterface
Защищённая функция export, используемая для отслеживания отступов и рекурсии.
Параметры
-
mixed$var Переменная для вывода.
-
Cake\Error\Debug\DebugContext$context Контекст вывода
Возвращает
Cake\Error\Debug\NodeInterfaceexportArray() protected static
exportArray(array $var, Cake\Error\Debug\DebugContext $context): Cake\Error\Debug\ArrayNode
Выводит объект типа массив. Фильтрует ключи, используемые в конфигурации источника данных.
Следующие ключи заменяются на ***:
- пароль
- логин
- хост
- база данных
- порт
- префикс
- схема
Параметры
-
array$var Массив для вывода.
-
Cake\Error\Debug\DebugContext$context Текущий контекст вывода.
Возвращает
Cake\Error\Debug\ArrayNodeexportObject() protected static
exportObject(object $var, Cake\Error\Debug\DebugContext $context): Cake\Error\Debug\NodeInterface
Обрабатывает преобразование объекта в узел.
Параметры
-
object$var Объект для преобразования.
-
Cake\Error\Debug\DebugContext$context Контекст вывода.
Возвращает
Cake\Error\Debug\NodeInterfaceСм. также
exportVar() public static
exportVar(mixed $var, int $maxDepth = 3): string
Преобразует переменную в строку для вывода отладки.
Примечание: Следующие ключи будут заменены на ***:
- пароль
- логин
- хост
- база данных
- порт
- префикс
- схема
Это делается для защиты данных для доступа к базе данных, которые могут случайно отобразиться в сообщении об ошибке, если CakePHP развернут в режиме разработки.
Параметры
-
mixed$var Переменная для преобразования.
-
int$maxDepth необязательный Глубина вывода. По умолчанию 3.
Возвращает
stringexportVarAsNodes() public static
exportVarAsNodes(mixed $var, int $maxDepth = 3): Cake\Error\Debug\NodeInterface
Преобразует переменную в внутреннее древовидное представление узлов.
Древовидное представление узлов легче обрабатывать и сериализовать, чем многие объектные графы.
Параметры
-
mixed$var Переменная для преобразования.
-
int$maxDepth необязательный Глубина для генерации узлов. По умолчанию 3.
Возвращает
Cake\Error\Debug\NodeInterfaceexportVarAsPlainText() public static
exportVarAsPlainText(mixed $var, int $maxDepth = 3): string
Преобразует переменную в строку простого текста.
Параметры
-
mixed$var Переменная для преобразования.
-
int$maxDepth необязательный Глубина вывода. По умолчанию 3.
Возвращает
stringformatHtmlMessage() public static
formatHtmlMessage(string $message): string
Форматирует сообщение об исключении в формате HTML.
Выполняет следующие операции форматирования:
- Делает HTML-эскейп сообщения.
- Преобразует
boolв<code>bool</code> - Преобразует переводы строк в
<br />
Параметры
-
string$message Строковое сообщение для форматирования.
Возвращает
stringformatTrace() public static
formatTrace(Throwable|array $backtrace, array<string, mixed> $options = []): array|string
Форматирует стек вызовов на основе предоставленных опций.
Опции
-
depth- Количество кадров стека для возврата. По умолчанию 999 -
format- Формат, который вы хотите получить. По умолчанию используется текущий выбранный формат. Если формат 'массив' или 'точки', то будет возвращён массив. -
args- Показывать аргументы функций? Если true, то будут отображаться аргументы каждого вызова метода. -
start- Кадр стека, с которого начинать генерацию трассировки. По умолчанию 0
Параметры
-
Throwable|array$backtrace Трассировка как массив или объект исключения.
-
array<string, mixed>$options необязательный Формат для вывода трассировки стека.
Возвращает
array|stringСсылки
getConfig() public
getConfig(string|null $key = null, mixed $default = null): mixed
Возвращает конфигурацию.
Использование
Чтение всей конфигурации:
$this->getConfig();
Чтение определённого значения:
$this->getConfig('key'); Чтение вложенного значения:
$this->getConfig('some.nested.key'); Чтение со значением по умолчанию:
$this->getConfig('some-key', 'default-value'); Параметры
-
string|null$key необязательный Ключ для получения или null для всей конфигурации.
-
mixed$default необязательный Возвращаемое значение, когда ключ не существует.
Возвращает
mixedgetConfigOrFail() public
getConfigOrFail(string $key): mixed
Возвращает конфигурацию для данного ключа.
Значение конфигурации для данного ключа должно существовать, оно не может быть null.
Параметры
-
string$key Ключ для получения.
Возвращает
mixedИсключения
InvalidArgumentExceptiongetExportFormatter() public
getExportFormatter(): Cake\Error\Debug\FormatterInterface
Возвращает настроенный форматировщик экспорта или выводит его на основе среды.
Возвращает
Cake\Error\Debug\FormatterInterfacegetInstance() public static
getInstance(string|null $class = null): static
Возвращает ссылку на объект Debugger синглтон.
Параметры
-
string|null$class необязательный Имя класса.
Возвращает
staticgetOutputFormat() public static
getOutputFormat(): string
Возвращает формат вывода для отображения ошибок Debugger.
Возвращает
stringgetType() public static
getType(mixed $var): string
Возвращает тип данной переменной. Для объектов вернёт имя класса.
Параметры
-
mixed$var Переменная, тип которой необходимо получить.
Возвращает
stringlog() public static
log(mixed $var, string|int $level = 'debug', int $maxDepth = 3): void
Создаёт запись в файле логов. Запись лога будет содержать трассировку стека вызова, а также экспортировать переменную с помощью exportVar. По умолчанию, лог записывается в лог отладки.
Параметры
-
mixed$var Переменная или содержимое для записи в лог.
-
string|int$level optional Тип лога. По умолчанию 'debug'.
-
int$maxDepth optional Глубина вывода. По умолчанию 3.
Возвращает
voidoutputError() public
outputError(array $data): void
Принимает обработанный массив данных из ошибки и отображает его в выбранном формате.
Параметры
-
array$data Данные для вывода.
Возвращает
voidoutputMask() public static
outputMask(): array<string, string>
Считывает текущее маскирование вывода.
Возвращает
array<string, string>printVar() public static
printVar(mixed $var, array $location = [], bool|null $showHtml = null): void
Выводит отладочную информацию о заданной переменной.
Параметры
-
mixed$var Переменная, для которой требуется отладочная информация.
-
array$location optional Если содержит ключи "file" и "line", их значения будут использованы для отображения информации о местоположении.
-
bool|null$showHtml optional Если установлено в true, метод выводит отладочные данные, закодированные как HTML. Если false, используется форматирование простого текста. Если null, формат выбирается на основе настроенного exportFormatter или условий среды.
Возвращает
voidsetConfig() public
setConfig(array<string, mixed>|string $key, mixed|null $value = null, bool $merge = true): $this
Устанавливает конфигурацию.
Использование
Установка конкретного значения:
$this->setConfig('key', $value); Установка вложенного значения:
$this->setConfig('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->setConfig(['one' => 'value', 'another' => 'value']);
Параметры
-
array<string, mixed>|string$key Ключ для установки или полный массив конфигураций.
-
mixed|null$value optional Значение для установки.
-
bool$merge optional Выполнить рекурсивное слияние или перезапись существующей конфигурации, по умолчанию true.
Возвращает
$thisВыбрасывает
Cake\Core\Exception\CakeExceptionПри попытке установить недопустимый ключ.
setEditor() public static
setEditor(string $name): void
Выберите требуемый стиль ссылки редактора.
Параметры
-
string$name Имя редактора.
Возвращает
voidsetOutputFormat() public static
setOutputFormat(string $format): void
Установите формат вывода для отображения ошибок Debugger.
Параметры
-
string$format Формат вывода ошибок.
Возвращает
voidВыбрасывает
InvalidArgumentExceptionПри выборе несуществующего формата.
setOutputMask() public static
setOutputMask(array<string, string> $value, bool $merge = true): void
Устанавливает настраиваемое маскирование вывода отладчика по имени свойства и именам ключей массива.
Пример
Debugger::setOutputMask(['password' => '[*****]');
Параметры
-
array<string, string>$value Массив, где ключи заменяются на значения в выводе.
-
bool$merge optional Выполнить рекурсивное слияние или перезапись существующей конфигурации, по умолчанию true.
Возвращает
voidtrace() public static
trace(array<string, mixed> $options = []): array|string
Выводит трассировку стека на основе предоставленных опций.
Опции
-
depth- Количество кадров стека для возврата. По умолчанию 999 -
format- Формат возврата. По умолчанию текущий выбранный формат. Если формат 'array' или 'points', возвращается массив. -
args- Показывать аргументы функций? Если true, будут отображаться аргументы каждого вызова метода. -
start- Кадр стека, с которого начать генерацию трассировки. По умолчанию 0
Параметры
-
array<string, mixed>$options optional Формат вывода трассировки стека.
Возвращает
array|stringСсылки
trimPath() public static
trimPath(string $path): string
Укорачивает пути к файлам, заменяя базовый путь приложения на 'APP', а путь к ядру CakePHP на 'CORE'.
Параметры
-
string$path Путь для укорочения.
Возвращает
stringПодробное описание свойств
$_config protected
Конфигурация в процессе выполнения
Тип
array<string, mixed>$_configInitialized protected
Указывает, была ли конфигурация свойства уже настроена по умолчанию
Тип
bool$_data protected
Содержит текущие данные вывода, когда outputFormat равен false.
Тип
array$_defaultConfig protected
Конфигурация по умолчанию
Тип
array<string, mixed>$_outputFormat protected
Текущий формат вывода.
Тип
string$_templates protected
Шаблоны, используемые при генерации трассировки или строк ошибок. Могут быть глобальными или индексироваться по значению формата, используемому в $_outputFormat.
Тип
array<string, array<string, mixed>>$editors protected
Карта редакторов и их шаблонов ссылок.
Тип
array<string, string|callable>$renderers protected
Сопоставление для обработчиков ошибок.
Обработчики ошибок заменяют форматирование вывода объектно-ориентированной системой. Обработка ошибок Debugger будет устаревать, и вместо этого следует использовать новую систему ErrorTrap.
Тип
array<string, class-string>
© 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/4.4/class-Cake.Error.Debugger.html