@gsteel gsteel released this Nov 26, 2018

Assets 2

Added

  • Nothing.

Changed

  • Nothing.

Deprecated

  • Nothing.

Removed

  • #6 removes the \Prismic\Api::reloadApiData() method - whilst
    this is a BC break. It was only introduced in 4.1.0 a couple of weeks ago so it's unlikely that anyone is even aware
    it was there in the first place.

Fixed

  • #6 removes the need to reloadApiData after a cache bust by
    simply not keeping a reference to the Api Data payload in memory.

@gsteel gsteel released this Nov 16, 2018 · 6 commits to master since this release

Assets 2

Added

  • Nothing.

Changed

  • Nothing.

Deprecated

  • Nothing.

Removed

  • Nothing.

Fixed

  • #5 ensures that the preview token is validated before any attempt
    is made to retrieve a ref from the api.

@gsteel gsteel released this Nov 15, 2018 · 15 commits to master since this release

Assets 2

Added

  • #4 Adds a new Exception ExpiredPreviewTokenException that is
    thrown during Api::previewSession()

Changed

  • #4 Changes behaviour of Api::previewSession() by throwing an
    ExpiredPreviewTokenException in situations where a preview token has expired.

Deprecated

  • Nothing.

Removed

  • Nothing.

Fixed

  • Nothing.

@gsteel gsteel released this Nov 12, 2018 · 23 commits to master since this release

Assets 2

Fixed

  • Nothing

Added

  • Added method void \Prismic\Api::reloadApiData() to forcefully re-fetch the api data from the remote service. You
    would not normally need to call this in a standard web server environment because simply flushing the cache would be
    sufficient. However, in a cli environment handling multiple requests, flushing the cache will not free the
    \Prismic\ApiData instance in memory, so you'd need to call this method during perhaps a web-hook triggered cache
    busting event…

Deprecated

  • Nothing

Removed

  • Nothing
Oct 18, 2018

@gsteel gsteel released this Jul 18, 2018 · 43 commits to master since this release

Assets 2

HTML serializers for StructuredText now preserve line breaks in content by replacing new lines with
tags

Jul 16, 2018
V4

@gsteel gsteel released this Jun 12, 2018 · 47 commits to master since this release

Assets 2

Initial release of this fork. There's a lot of breaking changes compared to the 3.x series and due to these significant changes there might be some awkward stuff to come in the future so keep an eye on the changelog…

Initial release highlights include:

  • \Psr\Cache is now used for caching
  • Min version of PHP is now >= 7.1
  • strict_types throughout with scalar type hints and return types
  • Much improved test coverage ~ 95%
  • Introduced document hydration so you can implement concrete content models in code
  • Re-Introduced typed content fragments such as RichText, Date, Embed, GeoPoint etc.
  • Transparent support for both V1 and V2 Apis
  • Default document implementation can retrieve it's own relationships such as alternative translations
  • Guaranteed to throw predictable exceptions all implementing the same interface in the same namespace

Future changes

The LinkResolver as a concept is now pretty much a hard dependency for \Prismic\Api but relies on setter injection. The good thing is that this enables other elements, such as RichText to be serialised to HTML without needing to keep a link resolver handy all the time, i.e. $textFragment->asHtml() instead of $textFragment->asHtml($linkResolver) which can be annoying in views, but the bad thing is that it's a hidden dependency. At some point this needs to be made more friendly…

The same could be said of the Hydrator - The defaults are perfectly acceptable and they are straight-forward to override but it's still a hidden dependency.

In future, I'm considering providing ready to use factories and configuration suitable for Psr\Container - it's good to practice dependency injection and everyone's doing it right?

\Prismic\Api Notable Gotchas

  • Methods getByID, getByIDs, getByUID have been camel-cased to getById, getByIds and getByUid
  • Method previewSession signature has changed. A Link resolver is no longer required: previewSession( string $token, string $defaultUrl) : string
  • Named constructor get() has changed to `Api::get( string $action, string $accessToken, Client $httpClient, \Psr\Cache\CacheItemPoolInterface $cache)
Pre-release
Pre-release

@gsteel gsteel released this May 31, 2018 · 73 commits to master since this release

Assets 2

Initial RC for this fork

Feb 14, 2018
Merge pull request prismicio#146 from prismicio/apiv2
Introducing php kit api v2