Класс Debugger
Предоставляет настраиваемый ведение журнала и обработку ошибок.
Debugger расширяет стандартную обработку ошибок PHP и предоставляет более простые в использовании и мощные интерфейсы.
Ссылка: https://book.cakephp.org/4/ru/development/debugging.html#namespace-Cake\Error
Краткое описание свойств
- $_config protected
arrayКонфигурация в реальном времени
- $_configInitialized protected
boolУказывает, была ли свойство config уже настроена по умолчанию
- $_data protected
arrayСодержит текущие выходные данные, когда outputFormat равен false.
- $_defaultConfig protected
arrayКонфигурация по умолчанию
- $_outputFormat protected
stringТекущий формат вывода.
- $_templates protected
arrayШаблоны, используемые при генерации строк отслеживания или ошибок. Могут быть глобальными или индексироваться значением формата, используемым в $_outputFormat.
- $editors protected
arrayКарта редакторов и их шаблонов ссылок.
Краткое описание методов
-
__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
Преобразует переменную во внутреннее дерево узлов.
-
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(string|array $key, mixed $value, bool|string $merge = false): void
Записывает значение ключа конфигурации.
Параметры
-
string|array$key Ключ для записи.
-
mixed$value Значение для записи.
-
bool|string$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, stringClosure $template): void
Добавляет формат ссылки редактора
Шаблонные строки могут использовать заполнители {file} и {line}. Шаблоны с замыканиями должны возвращать строку и принимать два параметра: файл и строку.
Параметры
-
string$name Имя редактора.
-
stringClosure$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 Шаблонные строки или функция обратного вызова для использования в формате вывода.
Возвращает
arraycheckSecurityKeys() public static
checkSecurityKeys(): void
Проверяет, что значения соли приложения и ключа шифрования изменены с их значения по умолчанию.
Возвращает
voidconfigInstance() public static
configInstance(string|array|null $key = null, mixed|null $value = null, bool $merge = true): mixed
Чтение или запись параметров конфигурации для экземпляра отладчика.
Параметры
-
string|array|null$key необязательный Ключ для получения/установки или полный массив конфигураций.
-
mixed|null$value необязательный Значение для установки.
-
bool$merge необязательный Необходимо ли рекурсивно сливать или перезаписывать существующую конфигурацию; по умолчанию true.
Возвращает
mixedИсключения
Cake\Core\Exception\CakeExceptionпри попытке установить неверный ключ.
configShallow() public
configShallow(string|array $key, mixed|null $value = null): $this
Объединяет предоставленную конфигурацию с существующей. В отличие от config(), которое выполняет рекурсивное слияние для вложенных ключей, этот метод выполняет простое слияние.
Указание конкретного значения:
$this->configShallow('key', $value); Указание вложенного значения:
$this->configShallow('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->configShallow(['one' => 'value', 'another' => 'value']);
Параметры
-
string|array$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
Извлечение фрагмента из файла и выделение указанной строки кода.
Использование:
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См. также
Ссылки
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\NodeInterfaceformatHtmlMessage() public static
formatHtmlMessage(string $message): string
Форматирует сообщение об исключении для HTML-вывода.
Выполняет следующие операции форматирования:
- HTML-экранирует сообщение.
- Преобразует
boolв<code>bool</code> - Преобразует переводы строк в
<br />
Параметры
-
string$message Строковое сообщение для форматирования.
Возвращает
stringformatTrace() public static
formatTrace(arrayThrowable $backtrace, array $options = []): string|array
Форматирует трассировку стека на основе предоставленных опций.
Опции
-
depth- Количество кадров стека для возврата. По умолчанию 999 -
format- Формат возвращаемых данных. По умолчанию используется текущий выбранный формат. Если формат 'массив' или 'точки', то возвращается массив. -
args- Показывать аргументы функций? Если true, то будут отображаться аргументы каждого вызова метода. -
start- Кадр стека, с которого начинается формирование трассировки. По умолчанию 0
Параметры
-
arrayThrowable$backtrace Трассировка в виде массива или объекта исключения.
-
array$options optional Формат вывода трассировки стека.
Возвращает
string|arrayСсылки
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, int|string $level = 'debug', int $maxDepth = 3): void
Создаёт запись в лог-файле. Запись лога будет содержать трассировку стека с места вызова, а также экспортирует переменную с помощью exportVar. По умолчанию лог записывается в лог отладки.
Параметры
-
mixed$var Переменная или содержимое для логгирования.
-
int|string$level optional Тип лога. По умолчанию 'debug'.
-
int$maxDepth optional Глубина вывода. По умолчанию 3.
Возвращает
voidoutputError() public
outputError(array $data): void
Принимает обработанный массив данных из ошибки и отображает его в выбранном формате.
Параметры
-
array$data Данные для вывода.
Возвращает
voidoutputMask() public static
outputMask(): array
Читает текущую маску вывода.
Возвращает
arrayprintVar() публичный статический
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() публичный
setConfig(string|array $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']);
Параметры
-
string|array$key Ключ для установки или массив настроек.
-
mixed|null$value необязательный Значение для установки.
-
bool$merge необязательный Рекурсивно объединять или перезаписывать существующую конфигурацию. По умолчанию true.
Возвращает
$thisВыбрасывает
Cake\Core\Exception\CakeExceptionПри попытке установить недопустимый ключ.
setEditor() публичный статический
setEditor(string $name): void
Выбирает стиль ссылки редактора.
Параметры
-
string$name Имя редактора.
Возвращает
voidsetOutputFormat() публичный статический
setOutputFormat(string $format): void
Устанавливает формат вывода ошибок отладчика.
Параметры
-
string$format Формат вывода ошибок.
Возвращает
voidВыбрасывает
InvalidArgumentExceptionПри выборе несуществующего формата.
setOutputMask() публичный статический
setOutputMask(array $value, bool $merge = true): void
Устанавливает конфигурируемую маску вывода отладчика по имени свойства и ключам массивов.
Пример
Debugger::setOutputMask(['password' => '[*****]');
Параметры
-
array$value Массив, где ключи заменяются на значения в выводе.
-
bool$merge необязательный Рекурсивно объединять или перезаписывать существующую конфигурацию. По умолчанию true.
Возвращает
voidtrace() публичный статический
trace(array $options = []): string|array
Выводит трассировку стека на основе предоставленных опций.
Опции
-
depth- Количество кадров стека для возврата. По умолчанию 999 -
format- Формат возврата. По умолчанию текущий выбранный формат. Если формат 'array' или 'points', возвращается массив. -
args- Показывать аргументы функций? Если true, будут отображаться аргументы каждого вызова метода. -
start- Кадр стека, с которого начинается генерация трассировки. По умолчанию 0
Параметры
-
array$options необязательный Формат вывода трассировки стека.
Возвращает
string|arrayСсылки
trimPath() публичный статический
trimPath(string $path): string
Укорачивает пути к файлам, заменяя базовый путь приложения на 'APP', и базовый путь CakePHP на 'CORE'.
Параметры
-
string$path Путь для укорачивания.
Возвращает
stringПодробное описание свойств
$_config защищённый
Конфигурация во время выполнения
Тип
array$_configInitialized защищённый
Настроено ли свойство config значениями по умолчанию
Тип
bool$_data защищённый
Содержит текущие данные вывода, когда outputFormat равен false.
Тип
array$_defaultConfig защищённый
Конфигурация по умолчанию
Тип
array$_outputFormat защищённый
Текущий формат вывода.
Тип
string$_templates защищённый
Шаблоны, используемые при генерации трассировки или строк ошибок. Могут быть глобальными или индексироваться по значению формата, используемому в $_outputFormat.
Тип
array$editors защищённый
Карта редакторов и их шаблонов ссылок.
Тип
array
© 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.2/class-Cake.Error.Debugger.html