Spec-Zone.ru › CakePHP 4.3

Класс Debugger

Предоставляет настраиваемый ведение журнала и обработку ошибок.

Debugger расширяет стандартную обработку ошибок PHP и предоставляет более простые в использовании и мощные интерфейсы.

Пространство имен: Cake\Error
Ссылка: 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

Строка для преобразования.

Возвращает

string

addEditor() public static

addEditor(string $name, Closure|string $template): void

Добавить формат ссылки редактора

Шаблоны строк могут использовать заполнитель {file} и {line}. Шаблоны с замыканиями должны возвращать строку и принимать два параметра: файл и строку.

Параметры

string $name

Название редактора.

Closure|string $template

Строковый шаблон или замыкание

Возвращает

void

addFormat() 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

Строковые шаблоны или функция обратного вызова, используемые для формата вывода.

Возвращает

array

checkSecurityKeys() public static

checkSecurityKeys(): void

Проверяет, что значение соли и зерна шифра приложения изменено с значения по умолчанию.

Возвращает

void

configInstance() 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

Значение для установки.

Возвращает

$this

dump() public static

dump(mixed $var, int $maxDepth = 3): void

Рекурсивно форматирует и выводит содержимое предоставленной переменной.

Параметры

mixed $var

Переменная для вывода.

int $maxDepth optional

Глубина вывода. По умолчанию 3.

Возвращает

void

См. также

\Cake\Error\Debugger::exportVar()

Ссылки

https://book.cakephp.org/4/en/development/debugging.html#outputting-values

editorUrl() public static

editorUrl(string $file, int $line): string

Получить отформатированный URL для активного редактора.

Параметры

string $file

Файл для создания ссылки.

int $line

Номер строки для создания ссылки.

Возвращает

string

excerpt() 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>

См. также

https://secure.php.net/highlight_string

Ссылки

https://book.cakephp.org/4/en/development/debugging.html#getting-an-excerpt-from-a-file

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\NodeInterface

exportArray() protected static

exportArray(array $var, Cake\Error\Debug\DebugContext $context): Cake\Error\Debug\ArrayNode

Экспорт объекта типа массив. Фильтрует ключи, используемые в конфигурации источника данных.

Следующие ключи заменяются на ***:

  • пароль
  • логин
  • хост
  • база данных
  • порт
  • префикс
  • схема

Параметры

array $var

Массив для экспорта.

Cake\Error\Debug\DebugContext $context

Текущий контекст выгрузки.

Возвращает

Cake\Error\Debug\ArrayNode

exportObject() 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

См. также

\Cake\Error\Debugger::exportVar()

exportVar() public static

exportVar(mixed $var, int $maxDepth = 3): string

Преобразует переменную в строку для вывода отладки.

Примечание: следующие ключи будут заменены на *****:

  • пароль
    • логин
    • хост
    • база данных
    • порт
    • префикс
    • схема

Это делается для защиты данных для входа в базу данных, которые могут случайно отображаться в сообщении об ошибке, если CakePHP развернут в режиме разработки.

Параметры

mixed $var

Переменная для преобразования.

int $maxDepth optional

Глубина вывода. По умолчанию 3.

Возвращает

string

exportVarAsNodes() public static

exportVarAsNodes(mixed $var, int $maxDepth = 3): Cake\Error\Debug\NodeInterface

Преобразует переменную в внутреннее дерево узлов.

Дерево узлов можно более легко обрабатывать и сериализовать, чем многие графы объектов.

Параметры

mixed $var

Переменная для преобразования.

int $maxDepth optional

Глубина для генерации узлов. По умолчанию 3.

Возвращает

Cake\Error\Debug\NodeInterface

exportVarAsPlainText() public static

exportVarAsPlainText(mixed $var, int $maxDepth = 3): string

Преобразует переменную в строку обычного текста.

Параметры

mixed $var

Переменная для преобразования.

int $maxDepth optional

Глубина вывода. По умолчанию 3.

Возвращает

string

formatHtmlMessage() public static

formatHtmlMessage(string $message): string

Форматирует сообщение об ошибке для HTML-вывода.

Выполняет следующие операции форматирования:

  • HTML-экранирование сообщения.
  • Преобразование bool в <code>bool</code>
  • Преобразование символов новой строки в <br />

Параметры

string $message

Строковое сообщение для форматирования.

Возвращает

string

formatTrace() 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

Ссылки

https://book.cakephp.org/4/en/development/debugging.html#generating-stack-traces

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

Возвращаемое значение, если ключ не существует.

Возвращает

mixed

getConfigOrFail() public

getConfigOrFail(string $key): mixed

Возвращает конфигурацию для данного ключа.

Значение конфигурации для этого ключа должно существовать, оно никогда не может быть null.

Параметры

string $key

Ключ для получения.

Возвращает

mixed

Исключения

InvalidArgumentException

getExportFormatter() public

getExportFormatter(): Cake\Error\Debug\FormatterInterface

Получение настроенного форматера экспорта или выведение его на основе среды.

Возвращает

Cake\Error\Debug\FormatterInterface

getInstance() public static

getInstance(string|null $class = null): static

Возвращает ссылку на объект-синглтон Debugger.

Параметры

string|null $class optional

Имя класса.

Возвращает

static

getOutputFormat() public static

getOutputFormat(): string

Получение формата вывода для отображения ошибок Debugger.

Возвращает

string

getType() public static

getType(mixed $var): string

Получение типа заданной переменной. Для объектов возвращает имя класса.

Параметры

mixed $var

Переменная, тип которой требуется получить.

Возвращает

string

log() 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.

Возвращает

void

outputError() public

outputError(array $data): void

Принимает обработанный массив данных из ошибки и отображает его в выбранном формате.

Параметры

array $data

Данные для вывода.

Возвращает

void

outputMask() 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 или условий среды.

Возвращает

void

setConfig() 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

Имя редактора.

Возвращает

void

setOutputFormat() 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.

Возвращает

void

trace() public static

trace(array<string, mixed> $options = []): array|string

Выводит трассировку стека на основе предоставленных параметров.

Параметры

  • depth - Количество кадров стека для возврата. По умолчанию 999
  • format - Формат, который нужно вернуть. По умолчанию, текущий выбранный формат. Если формат 'array' или 'points', возвращаемое значение будет массивом.
  • args - Следует ли показывать аргументы функций? Если true, будут отображаться аргументы каждого вызова метода.
  • start - Кадр стека, с которого начинать генерацию трассировки. По умолчанию 0

Параметры

array<string, mixed> $options необязательный

Формат для вывода трассировки стека.

Возвращает

array|string

Ссылки

https://book.cakephp.org/4/en/development/debugging.html#generating-stack-traces

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API