helpers
Table of Contents
Functions
- cacheCollection() : SimpleCache|null
- Creates a namespaced cache collection from a Key/Value store definition registered in the dependency injection container.
- documentUrl() : string
- Generates a full document URL based on the project's base URL.
- getDocumentsModel() : DocumentsModel|null
- Resolves a {@see DocumentsModel} instance from a PSR-11 container or returns a default.
- getModel() : Model|null
- Resolves a model instance from a PSR-11 container or returns a default.
Functions
cacheCollection()
Creates a namespaced cache collection from a Key/Value store definition registered in the dependency injection container.
cacheCollection(Container $container, string $collection, string $definition) : SimpleCache|null
A cache collection is an isolated namespace within the same backend, allowing logical separation of cached values (e.g. per feature, domain, or module). This helper function retrieves a KeyValueStore from the container, and wraps its collection in a PSR-16 SimpleCache implementation.
Example usage:
// Retrieve a cache collection named "users"
$userCache = cacheCollection( $container , "users" , 'cache:memory' );
// Store and retrieve values
$userCache->set("id:42", ["name" => "Alice"]);
$data = $userCache->get("id:42");
Parameters
- $container : Container
-
The DI container used to resolve the cache store definition.
- $collection : string
-
The collection name (namespace) to create inside the cache store.
- $definition : string
-
The container entry identifier of the base key/value store in the DI container.
Tags
Return values
SimpleCache|null —A PSR-16 cache instance scoped to the given collection, or null if the definition is not found or not compatible.
documentUrl()
Generates a full document URL based on the project's base URL.
documentUrl([string $path = Char::EMPTY ][, ContainerInterface|null $container = null ][, string|null $definition = 'baseUrl' ][, bool $trailingSlash = false ]) : string
This helper function is commonly used in IoC container definitions of models to generate the accessible URL of a document or resource.
The function:
- Retrieves the base URL from the DI container using the provided definition key (default 'baseUrl').
- Joins the base URL with the provided relative path.
- Optionally appends a trailing slash.
Example usage:
use Psr\Container\ContainerInterface;
$url = documentUrl('uploads/image.png', $container);
// returns something like 'https://example.com/uploads/image.png'
$urlWithSlash = documentUrl('uploads', $container, 'baseUrl', true);
// returns 'https://example.com/uploads/'
Parameters
- $path : string = Char::EMPTY
-
Relative path of the document (default: empty string).
- $container : ContainerInterface|null = null
-
Optional DI container to fetch the base URL from.
- $definition : string|null = 'baseUrl'
-
Key used to fetch the base URL from the container (default: 'baseUrl').
- $trailingSlash : bool = false
-
Whether to append a trailing slash to the resulting URL (default: false).
Tags
Return values
string —The fully resolved document URL.
getDocumentsModel()
Resolves a {@see DocumentsModel} instance from a PSR-11 container or returns a default.
getDocumentsModel([string|DocumentsModel|null $definition = null ][, ContainerInterface|null $container = null ][, DocumentsModel|null $default = null ]) : DocumentsModel|null
This helper function provides a flexible way to obtain a DocumentsModel instance:
- If
$definitionis already aDocumentsModel, it is returned as-is. - If
$definitionis a string and$containerimplements ContainerInterface, the function attempts to resolve the corresponding service from the container. - If resolution fails, the provided
$default(if any) is returned instead.
This pattern allows for safe dependency resolution in controllers or services, without requiring explicit type-checking or container awareness in user code.
Parameters
- $definition : string|DocumentsModel|null = null
-
The model definition — either:
- a
DocumentsModelinstance (returned directly), - a string service identifier (resolved from
$container), - or
null(uses$default).
- a
- $container : ContainerInterface|null = null
-
Optional PSR-11 container to resolve string identifiers.
- $default : DocumentsModel|null = null
-
Optional fallback model if no valid instance is found.
Tags
Return values
DocumentsModel|null —The resolved model, the provided default, or null if none.
getModel()
Resolves a model instance from a PSR-11 container or returns a default.
getModel([array<string|int, mixed>|string|Model|null $definition = null ][, ContainerInterface|null $container = null ][, Model|null $default = null ]) : Model|null
This function attempts to retrieve a Model instance based on the provided
definition. The definition can be:
- A
Modelinstance (returned directly), - An array containing a
ModelParam::MODELkey, - A string identifier for a model in a PSR-11 container.
Parameters
- $definition : array<string|int, mixed>|string|Model|null = null
-
The model definition, which can be:
- a Model instance,
- an array with key
ModelParam::MODEL, - a string identifier in the container,
- or null.
- $container : ContainerInterface|null = null
-
Optional PSR-11 container used to resolve a string definition.
- $default : Model|null = null
-
Optional fallback model returned if none could be resolved.
Tags
Return values
Model|null —The resolved Model instance, the provided default, or null if none found.