Skip to content

Commit fd71680

Browse files
committed
feat: add Field::getId() method
1 parent bee2986 commit fd71680

File tree

3 files changed

+30
-0
lines changed

3 files changed

+30
-0
lines changed

src/Fields/ControlField.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?php
2+
3+
namespace Scriptotek\Marc\Fields;
4+
5+
class ControlField extends Field implements FieldInterface
6+
{
7+
public function __toString()
8+
{
9+
return $this->field->getData();
10+
}
11+
}

src/Record.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,13 @@ public function getTitle()
127127
return $field ? $this->makeField('Title', $field) : null;
128128
}
129129

130+
public function getId()
131+
{
132+
$field = $this->record->getField('001');
133+
134+
return $field ? $this->makeField('ControlField', $field) : null;
135+
}
136+
130137
/*************************************************************************
131138
* Support methods
132139
*************************************************************************/

tests/IsbnFieldTest.php renamed to tests/FieldsTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,16 @@ public function test020withoutA()
3636
$record = Record::fromString($source);
3737
$this->assertEquals(array(''), $record->isbns);
3838
}
39+
40+
public function testId()
41+
{
42+
$source = '<?xml version="1.0" encoding="UTF-8" ?>
43+
<record xmlns="http://www.loc.gov/MARC21/slim">
44+
<leader>99999cam a2299999 u 4500</leader>
45+
<controlfield tag="001">98218834x</controlfield>
46+
</record>';
47+
48+
$record = Record::fromString($source);
49+
$this->assertEquals('98218834x', $record->id);
50+
}
3951
}

0 commit comments

Comments
 (0)