Documentation

Api
in package

This class embodies a connection to your Prismic repository's API.

Initialize it with Prismic::Api::get(), and use your Prismic::Api::form() to make API calls (read more in the kit's README file)

Table of Contents

EXPERIMENTS_COOKIE  = "io.prismic.experiment"
Name of the cookie that will be used to remember the experiment reference
PREVIEW_COOKIE  = "io.prismic.preview"
Name of the cookie that will be used to remember the preview reference
VERSION  = "5.0.0"
Kit version number
$accessToken  : string|null
The API's access token to be used with each API call
$data  : ApiData
An instance of ApiData containing information about types, tags and refs etc
$cache  : CacheInterface
The cache instance
$httpClient  : ClientInterface
Guzzle HTTP Client
bookmark()  : string|null
From a bookmark name, returns the ID of the attached document.
bookmarks()  : array<string|int, mixed>
Returns the list of all bookmarks on the repository. If you're looking for a document from it's bookmark name, you should use the bookmark() function.
defaultCache()  : CacheInterface
Use the APCu cache if APCu is activated on the server, otherwise fallback to the noop cache (no cache)
form()  : SearchForm
Returns the form of type Prismic::SearchForm based on its name.
get()  : static
This is the factory method with which to retrieve your API client instance
getByID()  : stdClass|null
Search a document by its id
getByIDs()  : stdClass
Return a set of document from their ids
getByUID()  : stdClass|null
Search a document by its uid
getCache()  : CacheInterface
Accessing the cache object specifying how to store the cache
getData()  : ApiData
Accessing raw data returned by the /api endpoint
getExperiments()  : Experiments
getHttpClient()  : ClientInterface
Accessing the underlying Guzzle HTTP client
getRefFromLabel()  : Ref|null
Return the ref identified by the given label
getSingle()  : stdClass|null
Get a single typed document by its type
inExperiment()  : bool
Whether the current ref in use is an experiment
inPreview()  : bool
Whether the current ref in use is a preview, i.e. the user is in preview mode
master()  : Ref
Returns the master ref repository: the ref which is to be used to query content that is live right now.
oauthInitiateEndpoint()  : string
Return the URL of the endpoint to initiate OAuth authentication.
oauthTokenEndpoint()  : string
Return the URL of the endpoint to use OAuth authentication.
previewSession()  : string
Return the URL to display a given preview
query()  : stdClass
Shortcut to query on the default reference.
queryFirst()  : stdClass|null
Return the first document matching the query Use the reference from previews or experiment cookie, fallback to the master reference otherwise.
ref()  : string
Return the ref currently in use
refs()  : array<string|int, Ref>
Returns all of the repository's references (queryable points in time)
submit()  : array<string|int, mixed>
Submit several requests in parallel
__construct()  : mixed
getExperimentRef()  : string|null
If an experiment cookie is set, return the ref as determined by \Prismic\Experiments::refFromCookie
getPreviewRef()  : string|null
If a preview cookie is set, return the ref stored in that cookie
prepareDefaultQueryOptions()  : array<string|int, mixed>
Given an options array for a query, fill the lang parameter with a default value

Constants

Name of the cookie that will be used to remember the experiment reference

public mixed EXPERIMENTS_COOKIE = "io.prismic.experiment"

Name of the cookie that will be used to remember the preview reference

public mixed PREVIEW_COOKIE = "io.prismic.preview"

VERSION

Kit version number

public mixed VERSION = "5.0.0"

Properties

$accessToken

The API's access token to be used with each API call

protected string|null $accessToken

$data

An instance of ApiData containing information about types, tags and refs etc

protected ApiData $data

$httpClient

Guzzle HTTP Client

private ClientInterface $httpClient

Methods

bookmark()

From a bookmark name, returns the ID of the attached document.

public bookmark(string $name) : string|null

You can then use this ID for anything, for instance to query with a predicate that looks like this [:d = at(document.id, "abcdefghijkl")]. Most starter projects embed a helper to query a document from their ID string, which makes this even easier.

Parameters
$name : string

the bookmark name to use

Return values
string|null —

the ID string for a given bookmark name

bookmarks()

Returns the list of all bookmarks on the repository. If you're looking for a document from it's bookmark name, you should use the bookmark() function.

public bookmarks() : array<string|int, mixed>
Return values
array<string|int, mixed> —

the array of bookmarks

defaultCache()

Use the APCu cache if APCu is activated on the server, otherwise fallback to the noop cache (no cache)

public static defaultCache() : CacheInterface
Return values
CacheInterface —

form()

Returns the form of type Prismic::SearchForm based on its name.

public form(string $formName) : SearchForm

The intended syntax of a call is: api->form('everything')->query(query)->ref(ref)->submit(). Learn more about those keywords in Prismic's documentation on our developers' portal.

Parameters
$formName : string
Return values
SearchForm —

get()

This is the factory method with which to retrieve your API client instance

public static get(string $action[, string $accessToken = null ][, ClientInterface $httpClient = null ][, CacheInterface $cache = null ][, int $apiCacheTTL = 5 ]) : static

If your API is set to "public" or "open", you can instantiate your Api object just like this: Api::get('https://your-repository-name.prismic.io/api/v2')

Parameters
$action : string

The URL of your repository API's endpoint

$accessToken : string = null

A permanent access token to use if your repository API is set to private

$httpClient : ClientInterface = null

Custom Guzzle http client

$cache : CacheInterface = null

Cache implementation

$apiCacheTTL : int = 5

Max time to keep the API object in cache (in seconds)

Return values
static —

getByID()

Search a document by its id

public getByID(string $id[, array<string|int, mixed> $options = [] ]) : stdClass|null
Parameters
$id : string

the requested id

$options : array<string|int, mixed> = []

query options: pageSize, orderings, etc.

Return values
stdClass|null —

the resulting document (null if no match)

getByIDs()

Return a set of document from their ids

public getByIDs(array<string|int, mixed> $ids[, array<string|int, mixed> $options = [] ]) : stdClass
Parameters
$ids : array<string|int, mixed>

array of strings, the requested ids

$options : array<string|int, mixed> = []

query options: pageSize, orderings, etc.

Return values
stdClass —

the response, including documents and pagination information

getByUID()

Search a document by its uid

public getByUID(string $type, string $uid[, array<string|int, mixed> $options = [] ]) : stdClass|null
Parameters
$type : string

the custom type of the requested document

$uid : string

the requested uid

$options : array<string|int, mixed> = []

query options: pageSize, orderings, etc.

Return values
stdClass|null —

the resulting document (null if no match)

getData()

Accessing raw data returned by the /api endpoint

public getData() : ApiData
Return values
ApiData —

getHttpClient()

Accessing the underlying Guzzle HTTP client

public getHttpClient() : ClientInterface
Return values
ClientInterface —

getRefFromLabel()

Return the ref identified by the given label

public getRefFromLabel(string $label) : Ref|null
Parameters
$label : string

The label of the requested ref

Return values
Ref|null —

a reference or null

getSingle()

Get a single typed document by its type

public getSingle(string $type[, array<string|int, mixed> $options = [] ]) : stdClass|null
Parameters
$type : string

the custom type of the requested document

$options : array<string|int, mixed> = []

query options: pageSize, orderings, etc.

Return values
stdClass|null —

the resulting document (null if no match)

inExperiment()

Whether the current ref in use is an experiment

public inExperiment() : bool
Return values
bool —

inPreview()

Whether the current ref in use is a preview, i.e. the user is in preview mode

public inPreview() : bool
Return values
bool —

master()

Returns the master ref repository: the ref which is to be used to query content that is live right now.

public master() : Ref
Return values
Ref —

the master ref

oauthInitiateEndpoint()

Return the URL of the endpoint to initiate OAuth authentication.

public oauthInitiateEndpoint() : string
Return values
string —

oauthTokenEndpoint()

Return the URL of the endpoint to use OAuth authentication.

public oauthTokenEndpoint() : string
Return values
string —

previewSession()

Return the URL to display a given preview

public previewSession(string $token, LinkResolver $linkResolver, string $defaultUrl) : string
Parameters
$token : string

as received from Prismic server to identify the content to preview

$linkResolver : LinkResolver

the link resolver to build URL for your site

$defaultUrl : string

the URL to default to return if the preview doesn't correspond to a document (usually the home page of your site)

Return values
string —

the URL you should redirect the user to preview the requested change

query()

Shortcut to query on the default reference.

public query(string|array<string|int, mixed>|Predicate $q[, array<string|int, mixed> $options = [] ]) : stdClass

Use the reference from previews or experiment cookie, fallback to the master reference otherwise.

Parameters
$q : string|array<string|int, mixed>|Predicate

the query, as a string, predicate or array of predicates

$options : array<string|int, mixed> = []

query options: pageSize, orderings, etc.

Return values
stdClass —

queryFirst()

Return the first document matching the query Use the reference from previews or experiment cookie, fallback to the master reference otherwise.

public queryFirst(string|array<string|int, mixed>|Predicate $q[, array<string|int, mixed> $options = [] ]) : stdClass|null
Parameters
$q : string|array<string|int, mixed>|Predicate

the query, as a string, predicate or array of predicates

$options : array<string|int, mixed> = []

query options: pageSize, orderings, etc.

Return values
stdClass|null —

the resulting document, or null

ref()

Return the ref currently in use

public ref() : string

In order of preference, returns the preview cookie, the experiments cookie or the master ref otherwise

Return values
string —

refs()

Returns all of the repository's references (queryable points in time)

public refs() : array<string|int, Ref>
Return values
array<string|int, Ref> —

submit()

Submit several requests in parallel

public submit() : array<string|int, mixed>
Tags
TODO

Discover the use-case for this method and either refactor it or remove it

Return values
array<string|int, mixed> —

__construct()

private __construct(ApiData $data[, string|null $accessToken = null ][, ClientInterface|null $httpClient = null ][, CacheInterface|null $cache = null ]) : mixed
Parameters
$data : ApiData
$accessToken : string|null = null
$httpClient : ClientInterface|null = null
$cache : CacheInterface|null = null
Return values
mixed —

getExperimentRef()

If an experiment cookie is set, return the ref as determined by \Prismic\Experiments::refFromCookie

private getExperimentRef() : string|null
Return values
string|null —

getPreviewRef()

If a preview cookie is set, return the ref stored in that cookie

private getPreviewRef() : string|null
Return values
string|null —

prepareDefaultQueryOptions()

Given an options array for a query, fill the lang parameter with a default value

private prepareDefaultQueryOptions(array<string|int, mixed> $options) : array<string|int, mixed>
Parameters
$options : array<string|int, mixed>
Return values
array<string|int, mixed> —

Search results