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.
0.10 - 2018-11-07
- Support for PHP 7.3 added
- New class
Art4\JsonApiClient\Helper\Parserto parse or validate a JSON API string - New class
Art4\JsonApiClient\Manager\ErrorAbortManagerto parse a JSON API input - New class
Art4\JsonApiClient\Serializer\ArraySerializerto create an array from anArt4\JsonApiClient\Accessable - New class
Art4\JsonApiClient\V1\Attributesto represent an Attributes element - New class
Art4\JsonApiClient\V1\Documentto represent a Document element - New class
Art4\JsonApiClient\V1\DocumentLinkto represent a DocumentLink element - New class
Art4\JsonApiClient\V1\Errorto represent an Error element - New class
Art4\JsonApiClient\V1\ErrorCollectionto represent an ErrorCollection element - New class
Art4\JsonApiClient\V1\ErrorLinkto represent an ErrorLink element - New class
Art4\JsonApiClient\V1\ErrorSourceto represent an ErrorSource element - New class
Art4\JsonApiClient\V1\Jsonapito represent a Jsonapi element - New class
Art4\JsonApiClient\V1\Linkto represent a Link element - New class
Art4\JsonApiClient\V1\Metato represent a Meta element - New class
Art4\JsonApiClient\V1\Relationshipto represent a Relationship element - New class
Art4\JsonApiClient\V1\RelationshipCollectionto represent a RelationshipCollection element - New class
Art4\JsonApiClient\V1\RelationshipLinkto represent a RelationshipLink element - New class
Art4\JsonApiClient\V1\ResourceCollectionto represent a ResourceCollection element - New class
Art4\JsonApiClient\V1\ResourceIdentifierto represent a ResourceIdentifier element - New class
Art4\JsonApiClient\V1\ResourceIdentifierCollectionto represent a ResourceIdentifierCollection element - New class
Art4\JsonApiClient\V1\ResourceItemto represent a ResourceItem element - New class
Art4\JsonApiClient\V1\ResourceItemLinkto represent a ResourceItemLink element - New class
Art4\JsonApiClient\V1\ResourceNullto represent a ResourceNull element
- Support for PHP 5.5 dropped, PHP >=5.6 is now required
Art4\JsonApiClient\AccessInterface::asArray()will be removed in v1.0, useArt4\JsonApiClient\Serializer\ArraySerializer::serialize()insteadArt4\JsonApiClient\AccessInterfacewill be removed in v1.0, useArt4\JsonApiClient\AccessableinsteadArt4\JsonApiClient\Attributeswill be removed in v1.0, useArt4\JsonApiClient\V1\AttributesinsteadArt4\JsonApiClient\AttributesInterfacewill be removed in v1.0, useArt4\JsonApiClient\AccessableinsteadArt4\JsonApiClient\Documentwill be removed in v1.0, useArt4\JsonApiClient\V1\DocumentinsteadArt4\JsonApiClient\DocumentInterfacewill be removed in v1.0, useArt4\JsonApiClient\AccessableinsteadArt4\JsonApiClient\DocumentLinkwill be removed in v1.0, useArt4\JsonApiClient\V1\DocumentLinkinsteadArt4\JsonApiClient\DocumentLinkInterfacewill be removed in v1.0, useArt4\JsonApiClient\AccessableinsteadArt4\JsonApiClient\ElementInterfacewill be removed in v1.0, useArt4\JsonApiClient\ElementinsteadArt4\JsonApiClient\Errorwill be removed in v1.0, useArt4\JsonApiClient\V1\ErrorinsteadArt4\JsonApiClient\ErrorCollectionwill be removed in v1.0, useArt4\JsonApiClient\V1\ErrorCollectioninsteadArt4\JsonApiClient\ErrorCollectionInterfacewill be removed in v1.0, useArt4\JsonApiClient\AccessableinsteadArt4\JsonApiClient\ErrorInterfacewill be removed in v1.0, useArt4\JsonApiClient\AccessableinsteadArt4\JsonApiClient\ErrorLinkwill be removed in v1.0, useArt4\JsonApiClient\V1\ErrorLinkinsteadArt4\JsonApiClient\ErrorLinkInterfacewill be removed in v1.0, useArt4\JsonApiClient\AccessableinsteadArt4\JsonApiClient\ErrorSourcewill be removed in v1.0, useArt4\JsonApiClient\V1\ErrorSourceinsteadArt4\JsonApiClient\ErrorSourceInterfacewill be removed in v1.0, useArt4\JsonApiClient\AccessableinsteadArt4\JsonApiClient\Jsonapiwill be removed in v1.0, useArt4\JsonApiClient\V1\JsonapiinsteadArt4\JsonApiClient\JsonapiInterfacewill be removed in v1.0, useArt4\JsonApiClient\AccessableinsteadArt4\JsonApiClient\Linkwill be removed in v1.0, useArt4\JsonApiClient\V1\LinkinsteadArt4\JsonApiClient\LinkInterfacewill be removed in v1.0, useArt4\JsonApiClient\AccessableinsteadArt4\JsonApiClient\Metawill be removed in v1.0, useArt4\JsonApiClient\V1\MetainsteadArt4\JsonApiClient\MetaInterfacewill be removed in v1.0, useArt4\JsonApiClient\AccessableinsteadArt4\JsonApiClient\Relationshipwill be removed in v1.0, useArt4\JsonApiClient\V1\RelationshipinsteadArt4\JsonApiClient\RelationshipCollectionwill be removed in v1.0, useArt4\JsonApiClient\V1\RelationshipCollectioninsteadArt4\JsonApiClient\RelationshipCollectionInterfacewill be removed in v1.0, useArt4\JsonApiClient\AccessableinsteadArt4\JsonApiClient\RelationshipInterfacewill be removed in v1.0, useArt4\JsonApiClient\AccessableinsteadArt4\JsonApiClient\RelationshipLinkwill be removed in v1.0, useArt4\JsonApiClient\V1\RelationshipLinkinsteadArt4\JsonApiClient\RelationshipLinkInterfacewill be removed in v1.0, useArt4\JsonApiClient\AccessableinsteadArt4\JsonApiClient\ResourceCollectionwill be removed in v1.0, useArt4\JsonApiClient\V1\ResourceCollectioninsteadArt4\JsonApiClient\ResourceCollectionInterfacewill be removed in v1.0, useArt4\JsonApiClient\AccessableinsteadArt4\JsonApiClient\ResourceIdentifierwill be removed in v1.0, useArt4\JsonApiClient\V1\ResourceIdentifierinsteadArt4\JsonApiClient\ResourceIdentifierCollectionwill be removed in v1.0, useArt4\JsonApiClient\V1\ResourceIdentifierCollectioninsteadArt4\JsonApiClient\ResourceIdentifierCollectionInterfacewill be removed in v1.0, useArt4\JsonApiClient\AccessableinsteadArt4\JsonApiClient\ResourceIdentifierInterfacewill be removed in v1.0, useArt4\JsonApiClient\AccessableinsteadArt4\JsonApiClient\ResourceItemwill be removed in v1.0, useArt4\JsonApiClient\V1\ResourceIteminsteadArt4\JsonApiClient\ResourceItemInterfacewill be removed in v1.0, useArt4\JsonApiClient\AccessableinsteadArt4\JsonApiClient\ResourceItemLinkwill be removed in v1.0, useArt4\JsonApiClient\V1\ResourceItemLinkinsteadArt4\JsonApiClient\ResourceItemLinkInterfacewill be removed in v1.0, useArt4\JsonApiClient\AccessableinsteadArt4\JsonApiClient\ResourceNullwill be removed in v1.0, useArt4\JsonApiClient\V1\ResourceNullinsteadArt4\JsonApiClient\ResourceNullInterfacewill be removed in v1.0, useArt4\JsonApiClient\AccessableinsteadArt4\JsonApiClient\Utils\AccessKeywill be removed in v1.0Art4\JsonApiClient\Utils\AccessTraitwill be removed in v1.0Art4\JsonApiClient\Utils\DataContainerwill be removed in v1.0Art4\JsonApiClient\Utils\DataContainerInterfacewill be removed in v1.0Art4\JsonApiClient\Utils\Factorywill be removed in v1.0, useArt4\JsonApiClient\V1\FactoryinsteadArt4\JsonApiClient\Utils\FactoryInterfacewill be removed in v1.0, useArt4\JsonApiClient\FactoryinsteadArt4\JsonApiClient\Utils\FactoryManagerInterfacewill be removed in v1.0Art4\JsonApiClient\Utils\Helper::decodeJson()will be removed in v1.0, useArt4\JsonApiClient\Input\ResponseStringInput::getAsObject()insteadArt4\JsonApiClient\Utils\Helperwill be removed in v1.0, useArt4\JsonApiClient\Helper\ParserinsteadArt4\JsonApiClient\Utils\Managerwill be removed in v1.0, useArt4\JsonApiClient\Manager\ErrorAbortManagerinsteadArt4\JsonApiClient\Utils\ManagerInterfacewill be removed in v1.0, useArt4\JsonApiClient\Managerinstead
0.9.1 - 2017-12-21
- Change Code Style to PSR-2
- Tests in Travis for PHP 7.2 and nightly added
0.9 - 2017-06-06
- New method
Utils\Helper::parseResponseBody()to parse a JSON API response body - New method
Utils\Helper::isValidResponseBody()to validate a JSON API response body - New method
Utils\Helper::isValidRequestBody()to validate a JSON API request body with optional item id
Utils\Helper::parse()will be removed in v1.0, useUtils\Helper::parseResponseBody()insteadUtils\Helper::isValid()will be removed in v1.0, useUtils\Helper::isValidResponseBody()instead
0.8.1 - 2017-06-01
- Fixed a bug in the decission if a
dataattribute is aResourceItemorResourceIdentifier
0.8 - 2017-05-29
- New method
Utils\Helper::parseRequestBody()to parse JSON API with optional item id - Run tests with Travis in PHP 7.1
- Drop support for PHP 5.4
- BREAKING: New method
Utils\ManagerInterface::getConfig()to get a config value - BREAKING: New method
Utils\ManagerInterface::setConfig()to set a config value
0.7 - 2016-11-24
- Update license to GPLv3
- BREAKING: Introducing the
ElementInterfaceto seperate the parsing from the constructor - BREAKING: Rename
Art4\JsonApiClient\Resource\CollectiontoArt4\JsonApiClient\ResourceCollection - BREAKING: Rename
Art4\JsonApiClient\Resource\CollectionInterfacetoArt4\JsonApiClient\ResourceCollectionInterface - BREAKING: Rename
Art4\JsonApiClient\Resource\IdentifiertoArt4\JsonApiClient\ResourceIdentifier - BREAKING: Rename
Art4\JsonApiClient\Resource\IdentifierInterfacetoArt4\JsonApiClient\ResourceIdentifierInterface - BREAKING: Rename
Art4\JsonApiClient\Resource\IdentifierCollectiontoArt4\JsonApiClient\ResourceIdentifierCollection - BREAKING: Rename
Art4\JsonApiClient\Resource\IdentifierCollectionInterfacetoArt4\JsonApiClient\ResourceIdentifierCollectionInterface - BREAKING: Rename
Art4\JsonApiClient\Resource\ItemtoArt4\JsonApiClient\ResourceItem - BREAKING: Rename
Art4\JsonApiClient\Resource\ItemInterfacetoArt4\JsonApiClient\ResourceItemInterface - BREAKING: Rename
Art4\JsonApiClient\Resource\ItemLinktoArt4\JsonApiClient\ResourceItemLink - BREAKING: Rename
Art4\JsonApiClient\Resource\ItemLinkInterfacetoArt4\JsonApiClient\ResourceItemLinkInterface - BREAKING: Rename
Art4\JsonApiClient\Resource\NullResourcetoArt4\JsonApiClient\ResourceNull - BREAKING: Rename
Art4\JsonApiClient\Resource\NullResourceInterfacetoArt4\JsonApiClient\ResourceNullInterface
- BREAKING: Remove the
Resource\ResourceInterfaceand its methods
0.6.3 - 2016-04-26
- Prevent PHP bug in json_decode(), if option JSON_BIGINT_AS_STRING is not implemented, see #28
0.6.2 - 2016-04-15
- links in document object can contain objects, see #26
0.6.1 - 2015-12-28
- New
Resource\ItemLinkobject; was seperated fromLinkobject
- links and pagination are now parsed spec conform, see #23
0.6 - 2015-11-06
Helper::isValid()checks if a string is valid JSON API
- BREAKING: pagination links moved from
PaginationtoDocumentLinkandRelationshipLink
- BREAKING: object
Paginationwas removed
0.5 - 2015-10-12
- Dot-notation support in
AccessInterface::has()andAccessInterface::get() - Every object has now his own interface, eg.
DocumentInterface,MetaInterfaceorResource\ItemInterface
- BREAKING: object
PaginationLinkwas renamed toPagination - BREAKING: nearly all classes was set to
finaland can't be extended anymore. Implement the new interfaces instead. See also #18.
0.4 - 2015-09-01
- Introduce
Utils\ManagerandUtils\Factoryfor injecting own classes into the client - Every object inside the document implements
AccessInterface AccessInterfacesupportsasArray()for transforming an object into an array- A
Resource\IdentifierCollectionthat is either empty or holds onlyResource\Identifierobjects
Relationship::get('data')returns aResource\IdentifierCollectionobject instead of an array
0.3 - 2015-08-24
- Better documentation
Document::get('data')returns always aResourceInterfaceobjectDocument::get('error')returns aErrorCollectionobjectDocument::get('included')returns aResource\Collectionobject\Art4\JsonApiClient\Exception\ValidationExceptionwill be thrown instead ofInvalidArgumentException\Art4\JsonApiClient\Exception\AccessExceptionwill be thrown instead ofRuntimeException
0.2 - 2015-08-12
- Documentation, see folder docs/
- Every object has got a
get()andhas()method for better value access - Every object can list his own keys with
keyKeys()
- All old getter like
getMeta()orhasId()were removed
0.1 - 2015-08-11
- Validator fits nearly 100% specification
- Full test coverage