Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 28 million developers.Sign up
- #6 removes the
\Prismic\Api::reloadApiData()method - whilst
this is a BC break. It was only introduced in
4.1.0a couple of weeks ago so it's unlikely that anyone is even aware
it was there in the first place.
- #6 removes the need to
reloadApiDataafter a cache bust by
simply not keeping a reference to the Api Data payload in memory.
- #5 ensures that the preview token is validated before any attempt
is made to retrieve a ref from the api.
- #4 Adds a new Exception
- #4 Changes behaviour of
Api::previewSession()by throwing an
ExpiredPreviewTokenExceptionin situations where a preview token has expired.
- 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\ApiDatainstance in memory, so you'd need to call this method during perhaps a web-hook triggered cache
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
- 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
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
getByUIDhave been camel-cased to
previewSessionsignature 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)