- Ability to pass custom request parameters at runtime for cURL adapter
- Documentation for customizing request parameters in README.md
- Support arbitrary query parameters in
Client
class when making requests (thanks (@scheb) - New
Phpoaipmh\EndpointInterface
to make decorating the Endpoint class easier - Scrutinizer support
- Fixed Deprecated warning bug for
until
inEndpoint
class (thanks @igor-kamil) - Fixed date/time format in new
Granularity
helper (thanks @scheb)
- Improved error handling; if well-formed OAI-PMH errors accompany HTTP error codes, a
OaiPmhException
is thrown instead ofHttpException
(thanks @scheb)
- Unset the
RecordIterator
resumption token if end of list is reached so that last page is not repeated indefinitely - Fixed syntax errors fixed in
Endpoint
class when using date/time constraints - Fixed installation instructions in
README.md
(use correct version in Composer)
Endpoint
constructor now accepts optionalgranularity
string parameter to specify date/time granularity for record retrievalEndpoint
will now attempt to automatically fetch date/time granularity from the OAI-PMH provider if not explicitly specified- Added
Granularity
helper class to define allowed date/time granularity levels - Added
.gitattributes
,.scrutinizer
, andCONTRIBUTING.md
files - Sending strings to
Endpoint
class for temporal (from
,until
) parameters will trigger a deprecation warning - Added additional unit tests
- Changed test code to use OpenScholarship repository (the previously-used NSDL endpoint is not working)
- PSR-2 code style improvements
- Removed
.idea
directory
- Bumped PHP requirement to v5.4 or newer
- Renamed
Phpoaipmh\Http
classes toHttpAdapter
for better clarity - Updated Guzzle HTTP adapter to use Guzzle version 5
- Renamed
ResponseList
class toRecordIterator
and made it implement theIterator
interface - Refactored Exception classes to make more sense
Endpoint
class now usesDateTime
objects instead of strings for temporal parameters- Lots of minor PHPDoc comment improvements
- Improved documentation
- Added
getTotalRecordsInCollection
method inRecordIterator
- Added
reset
method toRecordIterator
- Added folder with example scripts
- Removed
processList
method inEndpoint
class, sinceRecordIterator
itself is now an iterator
- Added this changelog
- Fixed bug when the client class is instantiated without passing an HTTP Client
- Fixed Guzzle include to only accept <v4.0 in the composer.json
- Cleaned up API comments
- Added base exception
- Fixed bug in GetRecord Endpoint call
- Added additional tests
- Added type-hinting for request() method in Client class