Pagination extends Intangible uses PaginationTrait
Represents pagination metadata.
This class defines structured pagination information for a collection of items, such as limits, offsets, and page numbers, following the Oihana::SCHEMA context for JSON-LD interoperability.
It extends the Intangible type from Schema.org and uses PaginationTrait to provide constants and helper methods related to paginated collections.
Example
use xyz\oihana\schema\Pagination;
$pagination = new Pagination();
$pagination->page = 2;
$pagination->limit = 20;
$pagination->numberOfPages = 10;
$pagination->offset = 20;
print_r($pagination);
// Pagination Object
// (
// [page] => 2
// [limit] => 20
// [numberOfPages] => 10
// [offset] => 20
// )
This schema can be used to describe paginated datasets in structured formats such as JSON-LD, APIs, or linked data, ensuring interoperability with other schema-based models.
Tags
Table of Contents
Constants
- CONTEXT = \xyz\oihana\schema\constants\Oihana::SCHEMA
- The @context of the json-ld representation of the thing.
- JSON_PRIORITY_KEYS = [\org\schema\constants\Schema::AT_TYPE, \org\schema\constants\Schema::AT_CONTEXT, \org\schema\constants\Schema::_KEY, \org\schema\constants\Schema::_FROM, \org\schema\constants\Schema::_TO, \org\schema\constants\Schema::ID, \org\schema\constants\Schema::NAME, \org\schema\constants\Schema::URL, \org\schema\constants\Schema::CREATED, \org\schema\constants\Schema::MODIFIED]
- Defines the priority order of keys when serializing the object to JSON-LD.
- LIMIT = 'limit'
- The attribute key for the 'limit' property.
- MAX_LIMIT = 'maxLimit'
- The attribute key for the 'maxLimit' property.
- MIN_LIMIT = 'minLimit'
- The attribute key for the 'minLimit' property.
- NUMBER_OF_PAGES = 'numberOfPages'
- The attribute key for the 'numberOfPages' property.
- OFFSET = 'offset'
- The attribute key for the 'offset' property.
- PAGE = 'page'
- The attribute key for the 'page' property.
Properties
- $_from : string|null
- The metadata to indicates the edge 'from' identifier.
- $_id : null|string
- The metadata identifier of the item.
- $_key : null|string
- The metadata unique key identifier of the thing.
- $_rev : null|string
- The metadata revision value of the thing.
- $_to : string|null
- The metadata to indicates the edge 'to' identifier.
- $active : bool|null
- The active flag.
- $additionalType : array<string|int, mixed>|string|null|object
- An additionalType for the item.
- $alternateName : string|object|array<string|int, mixed>|null
- An alias for the item.
- $created : null|string
- Date of creation of the resource.
- $description : string|object|array<string|int, mixed>|null
- A short description of the item.
- $disambiguatingDescription : string|null
- A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation.
- $hasPart : string|Thing|array<string|int, Thing>|null
- Indicates an item that this part of this item.
- $id : null|int|string
- The unique identifier of the item.
- $identifier : string|null
- The identifier of the item.
- $image : string|ImageObject|array<string|int, ImageObject|string>|null
- The image reference of this resource.
- $isPartOf : string|Thing|array<string|int, Thing>|null
- Indicates an item that this item is part of.
- $license : string|object|null
- A legal document giving official permission to do something with the resource.
- $limit : int|null
- The number of items to return per page.
- $mainEntityOfPage : string|null
- Indicates a page (or other CreativeWork) for which this thing is the main entity being described.
- $maxLimit : int|null
- The maximum allowed number of items per page.
- $minLimit : int|null
- The minimum allowed number of items per page.
- $modified : null|string
- Date on which the resource was changed.
- $name : int|string|null
- The name of the item.
- $numberOfPages : int|null
- The number of pages in the paginated collection.
- $offset : int|null
- The number of items to skip before starting to collect the result set.
- $owner : null|string|Thing
- The owner of this Thing.
- $page : int|null
- The current page number in the paginated collection.
- $potentialAction : array<string|int, mixed>|Action|null
- Indicates a potential Action, which describes an idealized action in which this thing would play an 'object' role.
- $publisher : string|array<string|int, string|Person|Organization>|Person|Organization|null
- The publisher of the resource.
- $sameAs : string|array<string|int, mixed>|null
- URL of a reference Web page that unambiguously indicates the item's identity.
- $subjectOf : null|string|array<string|int, mixed>|CreativeWork|Event
- A CreativeWork or Event about this Thing.
- $url : int|string|null
- URL of the item.
- $atContext : string|null
- The JSON-LD `@context` value.
- $atType : string|null
- The JSON-LD `@type` value.
Methods
- __construct() : mixed
- Constructor to hydrate public properties from an array or stdClass.
- jsonSerialize() : array<string|int, mixed>
- Serializes the current object into a JSON-LD array.
- withAtContext() : $this
- Sets the internal JSON-LD `@context` attribute.
- withAtType() : $this
- Sets the internal JSON-LD `@type` attribute.
- withJSONLDMeta() : $this
- Initializes both JSON-LD metadata: `@type` and `@context`.
Constants
CONTEXT
The @context of the json-ld representation of the thing.
public
mixed
CONTEXT
= \xyz\oihana\schema\constants\Oihana::SCHEMA
JSON_PRIORITY_KEYS
Defines the priority order of keys when serializing the object to JSON-LD.
public
array<string|int, string>
JSON_PRIORITY_KEYS
= [\org\schema\constants\Schema::AT_TYPE, \org\schema\constants\Schema::AT_CONTEXT, \org\schema\constants\Schema::_KEY, \org\schema\constants\Schema::_FROM, \org\schema\constants\Schema::_TO, \org\schema\constants\Schema::ID, \org\schema\constants\Schema::NAME, \org\schema\constants\Schema::URL, \org\schema\constants\Schema::CREATED, \org\schema\constants\Schema::MODIFIED]
Keys listed here will always appear first in the serialized array, in the order specified. All remaining public properties will be sorted alphabetically after these priority keys.
This ensures that important JSON-LD metadata and system fields
(like @type, @context, _key, id, url, created, modified, etc.)
appear at the top of the output for consistency and readability.
Usage:
$orderedKeys = self::JSON_PRIORITY_KEYS;
Notes:
- Can be overridden in a subclass by redefining the constant.
- Late static binding (
static::JSON_PRIORITY_KEYS) allows child classes to modify the serialization order.
List of JSON-LD keys in priority order.
LIMIT
The attribute key for the 'limit' property.
public
mixed
LIMIT
= 'limit'
Used to identify the maximum number of items to return per page in an array, JSON, or other structured representation.
MAX_LIMIT
The attribute key for the 'maxLimit' property.
public
mixed
MAX_LIMIT
= 'maxLimit'
Represents the upper bound on the number of items that can be requested per page.
MIN_LIMIT
The attribute key for the 'minLimit' property.
public
mixed
MIN_LIMIT
= 'minLimit'
Represents the lower bound on the number of items that can be requested per page.
NUMBER_OF_PAGES
The attribute key for the 'numberOfPages' property.
public
mixed
NUMBER_OF_PAGES
= 'numberOfPages'
Represents the total number of pages in the paginated collection. Can be used to generate pagination controls or metadata.
OFFSET
The attribute key for the 'offset' property.
public
mixed
OFFSET
= 'offset'
Indicates the number of items to skip before starting to collect the result set.
PAGE
The attribute key for the 'page' property.
public
mixed
PAGE
= 'page'
Indicates the current page number in the paginated collection.
Properties
$_from
The metadata to indicates the edge 'from' identifier.
public
string|null
$_from
$_id
The metadata identifier of the item.
public
null|string
$_id
$_key
The metadata unique key identifier of the thing.
public
null|string
$_key
$_rev
The metadata revision value of the thing.
public
null|string
$_rev
$_to
The metadata to indicates the edge 'to' identifier.
public
string|null
$_to
$active
The active flag.
public
bool|null
$active
$additionalType
An additionalType for the item.
public
array<string|int, mixed>|string|null|object
$additionalType
$alternateName
An alias for the item.
public
string|object|array<string|int, mixed>|null
$alternateName
$created
Date of creation of the resource.
public
null|string
$created
$description
A short description of the item.
public
string|object|array<string|int, mixed>|null
$description
$disambiguatingDescription
A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation.
public
string|null
$disambiguatingDescription
$hasPart
Indicates an item that this part of this item.
public
string|Thing|array<string|int, Thing>|null
$hasPart
$id
The unique identifier of the item.
public
null|int|string
$id
$identifier
The identifier of the item.
public
string|null
$identifier
$image
The image reference of this resource.
public
string|ImageObject|array<string|int, ImageObject|string>|null
$image
$isPartOf
Indicates an item that this item is part of.
public
string|Thing|array<string|int, Thing>|null
$isPartOf
$license
A legal document giving official permission to do something with the resource.
public
string|object|null
$license
$limit
The number of items to return per page.
public
int|null
$limit
Can be null if unspecified. Used to limit the number of items returned in a paginated collection.
$mainEntityOfPage
Indicates a page (or other CreativeWork) for which this thing is the main entity being described.
public
string|null
$mainEntityOfPage
$maxLimit
The maximum allowed number of items per page.
public
int|null
$maxLimit
This can be used to enforce an upper bound on the limit value.
$minLimit
The minimum allowed number of items per page.
public
int|null
$minLimit
This can be used to enforce a lower bound on the limit value.
$modified
Date on which the resource was changed.
public
null|string
$modified
$name
The name of the item.
public
int|string|null
$name
$numberOfPages
The number of pages in the paginated collection.
public
int|null
$numberOfPages
Tags
$offset
The number of items to skip before starting to collect the result set.
public
int|null
$offset
Useful for paginated collections where items are retrieved in segments.
$owner
The owner of this Thing.
public
null|string|Thing
$owner
Represents any entity (person, organization, system, or other object) that can be considered the possessor of this Thing.
$page
The current page number in the paginated collection.
public
int|null
$page
Starts at 1 by convention. Can be null if not specified.
$potentialAction
Indicates a potential Action, which describes an idealized action in which this thing would play an 'object' role.
public
array<string|int, mixed>|Action|null
$potentialAction
$publisher
The publisher of the resource.
public
string|array<string|int, string|Person|Organization>|Person|Organization|null
$publisher
$sameAs
URL of a reference Web page that unambiguously indicates the item's identity.
public
string|array<string|int, mixed>|null
$sameAs
E.g. the URL of the item's Wikipedia page, Wikidata entry, or official website.
$subjectOf
A CreativeWork or Event about this Thing.
public
null|string|array<string|int, mixed>|CreativeWork|Event
$subjectOf
$url
URL of the item.
public
int|string|null
$url
$atContext
The JSON-LD `@context` value.
private
string|null
$atContext
= null
Default is https://schema.org.
$atType
The JSON-LD `@type` value.
private
string|null
$atType
= null
This can be manually set or automatically inferred from the class name.
Methods
__construct()
Constructor to hydrate public properties from an array or stdClass.
public
__construct([array<string|int, mixed>|object|null $init = null ]) : mixed
This allows objects to be quickly populated with associative data without manually setting each property.
Parameters
- $init : array<string|int, mixed>|object|null = null
-
A data array or object used to initialize the instance. Keys must match public property names.
Tags
jsonSerialize()
Serializes the current object into a JSON-LD array.
public
jsonSerialize() : array<string|int, mixed>
Includes public properties, the JSON-LD @context and @type.
Null values are automatically removed.
Tags
Return values
array<string|int, mixed> —JSON-LD representation of the object.
withAtContext()
Sets the internal JSON-LD `@context` attribute.
public
withAtContext(string $context) : $this
Useful if you need a custom JSON-LD context.
Parameters
- $context : string
-
Optional JSON-LD context.
Return values
$thiswithAtType()
Sets the internal JSON-LD `@type` attribute.
public
withAtType(string $type) : $this
Allows overriding the default type inferred from the class.
Parameters
- $type : string
-
Optional JSON-LD type
Return values
$thiswithJSONLDMeta()
Initializes both JSON-LD metadata: `@type` and `@context`.
public
withJSONLDMeta([string|null $atType = null ][, string|null $atContext = null ]) : $this
Can be called from constructor or later to override default values.
Parameters
- $atType : string|null = null
-
Optional JSON-LD type
- $atContext : string|null = null
-
Optional JSON-LD context