-
Notifications
You must be signed in to change notification settings - Fork 1
ru Error
Oleg Grigoriev edited this page Jan 13, 2014
·
1 revision
При отрисовке документа ошибки игнорируются, но логируются, чтобы их можно было обработать.
Получить список ошибок можно из свойства $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
При отрисовке, пустые заголовки и мета-данные, а также неизвестные теги будут просто пропущены. Не закрытые тег, автоматически закрыт.
Что делать при ошибке внутри тега, решает сам тег. Обычно, также просто ничего не выводится.