Класс Debugger
Предоставляет настраиваемый ведение журнала и обработку ошибок.
Debugger расширяет стандартную обработку ошибок PHP и предоставляет более простые в использовании и мощные интерфейсы.
Ссылка: https://book.cakephp.org/4/ru/development/debugging.html#namespace-Cake\Error
Краткое описание свойств
- $_config protected
array<string, mixed>Конфигурация в реальном времени
- $_configInitialized protected
boolУказывает, была ли свойство config уже настроена по умолчанию
- $_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>Карта редакторов и их шаблонов ссылок.
Краткое описание методов
-
__construct() public
Конструктор.
-
_configDelete() protected
Удаляет один ключ конфигурации.
-
_configRead() protected
Читает ключ конфигурации.
-
_configWrite() protected
Записывает ключ конфигурации.
-
_highlight() protected static
Оборачивает функцию highlight_string в случае, если серверный API не реализует ее, как это происходит в случае интерпретатора HipHop.
-
addEditor() public static
Добавляет формат ссылки редактора.
-
addFormat() public static
Добавляет формат вывода или обновляет формат в отладчике.
-
checkSecurityKeys() public static
Проверяет, что значение соли приложения и значения семени шифрования было изменено с значения по умолчанию.
-
configInstance() public static
Чтение или запись параметров конфигурации для экземпляра отладчика.
-
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
Возвращает ссылку на экземпляр объекта-синглтона отладчика.
-
getOutputFormat() public static
Получить формат вывода для отображения ошибок отладчика.
-
getType() public static
Получить тип данной переменной. Для объектов вернёт имя класса.
-
log() public static
Создаёт запись в файле журнала. Запись журнала будет содержать трассировку стека от места вызова, а также выведет переменную с помощью exportVar. По умолчанию журнал записывается в лог отладки.
-
outputError() public
Принимает обработанный массив данных из ошибки и отображает его в выбранном формате.
-
outputMask() public static
Читает текущую маску вывода.
-
printVar() public static
Выводит отладочную информацию о данной переменной.
-
setConfig() public
Устанавливает конфигурацию.
-
setEditor() public static
Выберите стиль ссылки редактора, который вы хотите использовать.
-
setOutputFormat() public static
Установить формат вывода для отображения ошибок отладчика.
-
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 optional Истинно для рекурсивного слияния, «плоское» для простого слияния, ложно для перезаписи, по умолчанию ложно.
Возвращает
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' для HTML с JavaScript-улучшениями, 'html' для простого HTML-вывода или 'txt' для неформатированного текста.
-
array$strings Строковые шаблоны или функция обратного вызова, используемые для формата вывода.
Возвращает
arraycheckSecurityKeys() 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 optional Ключ для получения/установления или полный массив конфигураций.
-
mixed|null$value optional Значение для установки.
-
bool$merge optional Выполнять ли рекурсивное слияние или перезаписывать существующую конфигурацию, по умолчанию истинно.
Возвращает
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 optional Значение для установки.
Возвращает
$thisdump() public static
dump(mixed $var, int $maxDepth = 3): void
Рекурсивно форматирует и выводит содержимое предоставленной переменной.
Параметры
-
mixed$var Переменная для вывода.
-
int$maxDepth optional Глубина вывода. По умолчанию 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 optional Количество строк контекста для извлечения над и под $line.
Возвращает
array<string>См. также
Ссылки
export() protected static
export(mixed $var, Cake\Error\Debug\DebugContext $context): Cake\Error\Debug\NodeInterface
Защищенная функция экспорта, используемая для отслеживания отступов и рекурсии.
Параметры
-
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 optional Глубина вывода. По умолчанию 3.
Возвращает
stringexportVarAsNodes() public static
exportVarAsNodes(mixed $var, int $maxDepth = 3): Cake\Error\Debug\NodeInterface
Преобразует переменную в внутреннее дерево узлов.
Дерево узлов можно более легко обрабатывать и сериализовать, чем многие графы объектов.
Параметры
-
mixed$var Переменная для преобразования.
-
int$maxDepth optional Глубина для генерации узлов. По умолчанию 3.
Возвращает
Cake\Error\Debug\NodeInterfaceexportVarAsPlainText() public static
exportVarAsPlainText(mixed $var, int $maxDepth = 3): string
Преобразует переменную в строку обычного текста.
Параметры
-
mixed$var Переменная для преобразования.
-
int$maxDepth optional Глубина вывода. По умолчанию 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 optional Формат вывода стека вызовов.
Возвращает
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 optional Ключ для получения или null для всей конфигурации.
-
mixed$default optional Возвращаемое значение, если ключ не существует.
Возвращает
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 optional Имя класса.
Возвращает
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 необязательный Если содержит ключи "file" и "line", их значения будут использованы для отображения информации о местоположении.
-
bool|null$showHtml необязательный Если установлено в 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 необязательный Значение для установки.
-
bool$merge необязательный Выполнить рекурсивное слияние или перезаписать существующую конфигурацию, по умолчанию 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 необязательный Выполнить рекурсивное слияние или перезаписать существующую конфигурацию, по умолчанию true.
Возвращает
voidtrace() public static
trace(array<string, mixed> $options = []): array|string
Выводит трассировку стека на основе предоставленных параметров.
Параметры
-
depth- Количество кадров стека для возврата. По умолчанию 999 -
format- Формат, который нужно вернуть. По умолчанию, текущий выбранный формат. Если формат 'array' или 'points', возвращаемое значение будет массивом. -
args- Следует ли показывать аргументы функций? Если true, будут отображаться аргументы каждого вызова метода. -
start- Кадр стека, с которого начинать генерацию трассировки. По умолчанию 0
Параметры
-
array<string, mixed>$options необязательный Формат для вывода трассировки стека.
Возвращает
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>
© 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.3/class-Cake.Error.Debugger.html