Классы MarcRecord, RecordField и SubField
MarcRecord
Каждый экземпляр класса MarcRecord
соответствует одной записи в базе данных ИРБИС. Он содержит следующие поля:
Поле |
Тип |
Назначение |
---|---|---|
database |
string |
Имя базы данных, из которой загружена данная запись. Для вновь созданных записей пустая строка |
mfn |
integer |
Номер записи в мастер-файле. Для вновь созданных записей 0 |
status |
integer |
Статус записи: логически удалена, отсутствует (см. ниже) |
version |
integer |
Номер версии записи |
fields |
array |
Массив полей записи |
Статус записи: набор флагов (определены как константы в PhpIrbis
)
Имя |
Число |
Значение |
---|---|---|
LOGICALLY_DELETED |
1 |
Логически удалена (может быть восстановлена) |
PHYSICALLY_DELETED |
2 |
Физически удалена (не может быть восстановлена) |
ABSENT |
4 |
Отсутствует |
NON_ACTUALIZED |
8 |
Не актуализирована |
LAST |
32 |
Последняя версия записи |
LOCKED |
64 |
Запись заблокирована на ввод |
add($tag, $value=’’) – добавляет в конец записи поле с указанными меткой и значением. Возвращает добавленное поле, поэтому может использоваться для “цепочечных” вызовов методов, добавляющих подполя в это поле (см. пример ниже).
clear() – очищает запись (удаляет все поля). Возвращает $this
.
decode(array $lines) – декодирование записи из протокольного представления.
encode($delimiter) – кодирование записи в протокольное представление.
fm($tag, $code=’’) – получение значения поля (или подполя, если задан $code
) с указанной меткой. Если поле (или подполе) не найдено, возвращает null
.
fma($tag, $code=’’) – получение массива значений полей (или подполей, если задан $code
) с указанной меткой. Если поля (или подполя) не найдены, возвращает пустой массив.
getField($tag, $occurrence=0) – получение поля с указанной меткой (с учётом повторения). Если поле не найдено, возвращает null
.
getFields($tag) – получение массива полей с указанной меткой. Если поля не найдены, возвращается пустой массив.
insertAt($index, RecordField $field) – вставка поля в указанную позицию.
isDeleted() – проверка статуса, не удалена ли запись.
removeAt($index) – удаление поля по указанному индексу.
removeField($tag) – удаление всех полей с указанной меткой.
reset() – сброс состояния записи, отвязка её от базы данных. Поля данных остаются при этом нетронутыми. Возвращает $this
.
verify($throw=true) – проверяет, правильно ли сформирована запись (и все её подполя). При обнаружении ошибки бросает исключение, если $throw==true
.
$record = new Irbis\MarcRecord();
$record->add(700)
->add('a', 'Миронов')
->add('b', 'А. В.')
->add('g', 'Алексей Владимирович');
$record->add(200)
->add('a', 'Заглавие книги');
RecordField
Поле |
Тип |
Назначение |
---|---|---|
tag |
integer |
Метка поля |
value |
string |
Значение поля до первого разделителя |
subfields |
array |
Массив подполей |
__construct($tag=0, $value=’’) – конструктор поля.
add($code, $value) – добавляет подполе с указанными кодом и значением к полю. Возвращает $this
, так что может испольоваться для “цепочечных” вызовов.
clear() – очищает поле (удаляет значение и все подполя). Возвращает $this
.
decode($line) – декодирование поля из протокольного представления.
getEmbeddedFields() – получает массив встроенных полей из данного поля.
getFirstSubfield($code) – возвращает первое вхождение подполя с указанным кодом или null
.
getFirstSubfieldValue($code) – возвращает значение первого вхождения подполя с указанным кодом или пустую строку.
insertAt($index, SubField $subfield) – вставка подполя в указанную позицию.
removeAt($index) – удаление подполя по указанному индексу.
removeSubfield($code) – удаление всех подполей с указанным кодом.
verify($throw=true) – проверяет, правильно ли сформировано поле (и все его подполя). При обнаружении ошибки бросает исключение, если $throw==true
.
$field = new Irbis\RecordField(700);
$field->add('a', 'Миронов')
->add('b', 'А. В.')
->add('g', 'Алексей Владимирович');
SubField
Поле |
Тип |
Назначение |
---|---|---|
code |
string |
Код подполя (один символ!) |
value |
string |
Значение подполя |
__construct($code=’’, $value=’’) – конструктор подполя.
verify($throw=true) – проверяет, правильно ли сформировано подполе. При обнаружении ошибки бросает исключение, если $throw==true
.
$subfield = new Irbis\SubField('a', 'Подполе A');
RawRecord
Запись с нераскодированными полями/подполями.
Поле |
Тип |
Назначение |
---|---|---|
database |
string |
Имя базы данных, из которой загружена данная запись. Для вновь созданных записей пустая строка |
mfn |
integer |
Номер записи в мастер-файле. Для вновь созданных записей 0 |
status |
integer |
Статус записи: логически удалена, отсутствует (см. ниже) |
version |
integer |
Номер версии записи |
fields |
array |
Массив полей записи в “сыром” виде |