All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Nothing yet
- Updated to
pear/file_marc@dev
since the last stable release is not compatible with PHP >= 8.1 (#26, by @danmichaelo) - Add PHP 8.3 to test matrix
- Fixed crash when 250 is missing (6850aed)
- Made
getSubfieldValues()
public. (#21, by @rudolfbyker)
- Added edition property to BibliographicRecord. (da949e6)
- Made
getSubfieldValues()
public. (#21, by @rudolfbyker)
- Fixed return types in @method annotations. (#20, by @rudolfbyker)
2.1.0 - 2019-11-20
- Added info to contributors (CONTRIBUTING.md). (62949a1)
- Added initialization from SimpleXMLElement object through the new methods
Collection:fromSimpleXMLElement($obj)
andRecord:fromSimpleXMLElement($obj)
.
- Improved documentation and support for IDE code analysis. (#15 by @rudolfbyker)
2.0.2 - 2019-09-13
- Added new method
Field::asLineMarc()
to return a line mode Marc string representation of the field. (ba20a6d)
- Fixed the
Subject::getParts()
method. (1fe8408) - Added additional subject subfield codes that were missing. (7908616)
- Added 852 $i and $j to
Location.callCode
. (cba1508) - Fixed the string representation of the
Location
class. (74652a3)
2.0.1 - 2019-01-09
- Fixed strict comparison in
Field::mapSubFields()
to avoid matching0
to other subfields.
2.0.0 - 2018-10-23
- Added new helper methods to
HoldingsRecord
:getLocation()
andgetLocations()
for 852 fields. - Added new helper methods to
BibliographicRecord
:getCreators()
for 100 and 700 fields.getClassifications()
for 080, 082, 083, 084 fields.getPublisher()
for 26[04]$bgetPubYear()
for pub year in 008getToc()
for 505 fieldsgetSummary()
for 520 fieldsgetPartOf()
for 773 fields
- Added a
mapSubFields()
method to theField
class. - Made the
Record
class JSON serializable. - Added a
getType()
andgetTag()
method toClassification
.
- Changed the
Field::sf()
method to returnNULL
, not an empty string, when no matching subfield was found. - Changed
Record::query()
,Record::getField()
etc. to returnField
objects rather than raw File_MARC objects. - Split the
Record
class into classes that reflect the type of record (HoldingsRecord
,AuthorityRecord
andBibliographicRecord
) and inherit from theRecord
class. - Renamed
Subject::getControlNumber()
toSubject::getId()
. - Added chopping of ending punctuation from the string representations of
Subject
andPerson
in the same way as done by Library of Congress when they convert MARC21 to MODS and BibFrame (see discussion on ISBD punctuation in MARC DISCUSSION PAPER NO. 2010-DP01).
1.0.1 - 2017-12-04
- Fixed a bug in
QueryResult::count()
.
1.0.0 - 2017-07-02
- Removed support for PHP 5.5, now requires PHP 5.6 or 7.x
0.3.2 - 2017-01-15
- Added
JsonSerializable
implementations to theField
classes to make them behave better when passed throughjson_encode()
. - Officially removed PHP 5.4 support
- Re-licensed as MIT (But since the dependency File_MARC is licensed under LGPL-2.1, the library cannot be used without complying with LGPL-2.1).
0.3.1 - 2017-01-15
- Fixed a bug where
makeFieldObjects()
would not create the correct class.
0.3.0 - 2016-11-19
Record::get()
was replaced byRecord::query()
, which returns aQueryResult
object rather than an array of strings. This allows access to the marc fields / subfields matched by the query.Collection::records
has been removed in favor of making the records available directly on theCollection
class. Replaceforeach ($collection->records as $record)
withforeach ($collection as $record)
.Subject::getType()
now returns the tag number (like "650)" instead of a string representing the tag (like "topic"). Constants have been defined onSubject
for comparison, so to check if a subject is a topical term, you can do$subject->type == Subject::TOPICAL_TERM
.Record::fromString
now throws aRecordNotFound
exception rather than anErrorException
exception if no record was found.Record::getType
now throws aUnknownRecordType
exception rather than anErrorException
.