Skip to content
Oleg Grigoriev edited this page Jan 13, 2014 · 1 revision

Error: ошибки в документе

При отрисовке документа ошибки игнорируются, но логируются, чтобы их можно было обработать.

Получить список ошибок можно из свойства $result->errors.

$result = $parser->parse($content);
echo $result->html;
$errors = $result->errors;

Список ошибок представляет собой порядковый массив экземпляров класса axy\ml\Error. Каждый экземпляр имеет следующие свойства:

  • code - код ошибки.
  • line - строка на которой встретилась.
  • message - человекопонятное сообщение
  • data - массив неких данных (используются в основном для формирования message).

Коды соответствуют константам Error::*.

  • TAG_UNKNOWN: повстречался неизвестный тег.
  • TAG_NOT_CLOSED: тег не закрыт.
  • HEADER_EMPTY: пустой заголовок.
  • META_EMPTY: пустое мета-данное.
  • TAG_INVALID: ошибка при обработке тега.

TAG_UNKNOWN и TAG_INVALID определяются только при отрисовке HTML.

Пример:

# Заголовок

Пустой заголовок:
##

#= meta: value

Пустое данное:
#=

Неизвестный тег: [unknown].

Тег без нужных данных: [img].

Незакрытый тег: [br

Обработка:

$result = $parser->parse($content);
foreach ($result->errors as $error) {
    echo $error.\PHP_EOL;
}

Ошибки:

Header is empty on line 4
Meta is empty on line 9
Tag [br] is not closed on line 15

На этот момент известны только ошибки по разбору текста.

Отрисуем HTML:

echo $result->html;
foreach ($result->errors as $error) {
    echo $error.\PHP_EOL;
}

Полный список ошибок:

Header is empty on line 4
Meta is empty on line 9
Unknown tag [unknown] on line 11
Invalid [img]: empty src on line 13
Tag [br] is not closed on line 15

При отрисовке, пустые заголовки и мета-данные, а также неизвестные теги будут просто пропущены. Не закрытые тег, автоматически закрыт.

Что делать при ошибке внутри тега, решает сам тег. Обычно, также просто ничего не выводится.

Clone this wiki locally