ImageTrait uses trait:short
Table of Contents
Constants
- DEFAULT_COMPRESSION : int = \Imagick::COMPRESSION_JPEG
- The default Imagick compression of the output image.
- DEFAULT_FORMAT : string = 'jpg'
- The default output image format.
- DEFAULT_MAX_HEIGHT : int = 1200
- The default maximum height used by {@see self::resize()}.
- DEFAULT_MAX_WIDTH : int = 1920
- The default maximum width used by {@see self::resize()}.
- DEFAULT_QUALITY : int = 70
- The default Imagick compression quality (0-100).
- IMAGE_PATH : string = 'imagePath'
- The key used to initialize the images root path from an array.
Properties
- $imagePath : string
- The root path where the images are stored on the server.
Methods
- fail() : ResponseInterface|null
- Generates a structured error response with an HTTP status code and optional detailed messages.
- getImageDimensions() : array<string|int, mixed>|null
- Returns the dimensions (width and height) of an image.
- getImageHeight() : int
- Returns the height of an image.
- getImagePath() : string
- Returns the root path where the images are stored on the server.
- getImageWidth() : int
- Returns the width of an image.
- imageResponse() : ResponseInterface
- Streams an image file as a PSR-7 response.
- imagickResponse() : ResponseInterface
- Returns an image response, applying optional Imagick transforms beforehand.
- initializeImagePath() : static
- Initializes the images root path.
- resize() : string|Imagick|null
- Resize an image.
- response() : ResponseInterface
- Return a response in the format accepted by the client : JSON by default or CBOR.
- shadow() : string|Imagick|null
- Apply a shadow over an image.
- status() : ResponseInterface|null
- Outputs a generic HTTP status message in a JSON response.
- success() : mixed
- Outputs a success message with optional JSON metadata.
- successWithNewBody() : mixed
- Same as {@see self::success()} but guarantees a fresh response body stream before writing the envelope.
- withFreshBody() : ResponseInterface|null
- Returns the same response with a fresh, empty body stream.
Constants
DEFAULT_COMPRESSION
The default Imagick compression of the output image.
public
int
DEFAULT_COMPRESSION
= \Imagick::COMPRESSION_JPEG
DEFAULT_FORMAT
The default output image format.
public
string
DEFAULT_FORMAT
= 'jpg'
DEFAULT_MAX_HEIGHT
The default maximum height used by {@see self::resize()}.
public
int
DEFAULT_MAX_HEIGHT
= 1200
DEFAULT_MAX_WIDTH
The default maximum width used by {@see self::resize()}.
public
int
DEFAULT_MAX_WIDTH
= 1920
DEFAULT_QUALITY
The default Imagick compression quality (0-100).
public
int
DEFAULT_QUALITY
= 70
IMAGE_PATH
The key used to initialize the images root path from an array.
public
string
IMAGE_PATH
= 'imagePath'
Properties
$imagePath
The root path where the images are stored on the server.
public
string
$imagePath
= ''
Methods
fail()
Generates a structured error response with an HTTP status code and optional detailed messages.
public
fail(ServerRequestInterface|null $request, ResponseInterface|null $response[, int|string|null $code = 400 ][, string|null $details = null ][, array<string|int, mixed> $options = [] ][, string|null $accept = null ]) : ResponseInterface|null
Automatically logs the error if logging is enabled.
Parameters
- $request : ServerRequestInterface|null
-
Optional PSR-7 Request object.
- $response : ResponseInterface|null
-
The PSR-7 Response object.
- $code : int|string|null = 400
-
The HTTP status code (default: 400).
- $details : string|null = null
-
Optional detailed error message to override default description.
- $options : array<string|int, mixed> = []
-
Optional array of additional data to include (e.g., errors).
- $accept : string|null = null
-
The header accepted by the client : 'application/cbor' or by default 'application/json'
Tags
Return values
ResponseInterface|null —Returns a PSR-7 Response object with JSON content or null if $response is not provided.
getImageDimensions()
Returns the dimensions (width and height) of an image.
public
getImageDimensions(Imagick|string $image) : array<string|int, mixed>|null
Parameters
- $image : Imagick|string
-
The Imagick instance or the path of the image file.
Tags
Return values
array<string|int, mixed>|null —An associative array with width and height keys.
getImageHeight()
Returns the height of an image.
public
getImageHeight(Imagick|string $image) : int
Parameters
- $image : Imagick|string
-
The Imagick instance or the path of the image file.
Tags
Return values
int —The image height in pixels.
getImagePath()
Returns the root path where the images are stored on the server.
public
getImagePath() : string
Return values
string —The images root path.
getImageWidth()
Returns the width of an image.
public
getImageWidth(Imagick|string $image) : int
Parameters
- $image : Imagick|string
-
The Imagick instance or the path of the image file.
Tags
Return values
int —The image width in pixels.
imageResponse()
Streams an image file as a PSR-7 response.
public
imageResponse(ServerRequestInterface|null $request, ResponseInterface $response, string $file[, array<string|int, mixed> $options = [] ]) : ResponseInterface
The file is validated with assertFile() first; a missing or unreadable
file is reported as a 500 response (see the catch below). Optional content
headers are toggled via $options, keyed by FileResponseOption.
Parameters
- $request : ServerRequestInterface|null
-
Optional PSR-7 Request object (used to build the failure response).
- $response : ResponseInterface
-
The PSR-7 Response object to write the image into.
- $file : string
-
Absolute path of the image file to send.
- $options : array<string|int, mixed> = []
-
Optional header switches (see FileResponseOption).
Return values
ResponseInterface —The response carrying the image body, or a 500 failure response on error.
imagickResponse()
Returns an image response, applying optional Imagick transforms beforehand.
public
imagickResponse(ResponseInterface $response, string|Imagick $image[, array<string|int, mixed> $options = [] ]) : ResponseInterface
Parameters
- $response : ResponseInterface
-
The PSR-7 Response object to write the image into.
- $image : string|Imagick
-
The Imagick instance or the path of the image file.
- $options : array<string|int, mixed> = []
-
Optional transform/header switches (see ImagickResponseOption and FileResponseOption).
Return values
ResponseInterface —The response carrying the transformed image, or a 500 failure response on error.
initializeImagePath()
Initializes the images root path.
public
initializeImagePath([string|array<string|int, mixed> $init = [] ]) : static
Parameters
- $init : string|array<string|int, mixed> = []
-
Either the path string directly, or an array carrying it under the self::IMAGE_PATH key.
Return values
static —Returns the current instance for method chaining.
resize()
Resize an image.
public
resize(Imagick|string|null $image[, int|null $w = null ][, int|null $h = null ][, array<string|int, mixed> $options = [] ]) : string|Imagick|null
Ex: ../image?resize=true&w=50&h=50
Parameters
- $image : Imagick|string|null
-
The url of the image file or the Imagick object reference to transform.
- $w : int|null = null
-
Optional explicit target width.
- $h : int|null = null
-
Optional explicit target height.
- $options : array<string|int, mixed> = []
-
Optional overrides (see ResizeOption).
Tags
Return values
string|Imagick|nullresponse()
Return a response in the format accepted by the client : JSON by default or CBOR.
public
response(ResponseInterface $response[, mixed $data = null ][, int $status = 200 ][, string|null $accept = null ]) : ResponseInterface
Checks the Accept header in the request to determine the preferred format.
Parameters
- $response : ResponseInterface
-
PSR-7 Response object to write to.
- $data : mixed = null
-
Data to send in the response.
- $status : int = 200
-
HTTP status code (default: 200).
- $accept : string|null = null
-
The header accepted by the client : 'application/cbor' or by default 'application/json'
Tags
Return values
ResponseInterfaceshadow()
Apply a shadow over an image.
public
shadow(Imagick|string|null $image[, string|null $value = null ]) : string|Imagick|null
Ex: ../image?shadow=true Ex: ../image?shadow=60,4,10,20
Parameters
- $image : Imagick|string|null
-
The url of the image file or the Imagick object reference to transform.
- $value : string|null = null
-
The shadow definition:
opacity,sigma,x,y.
Tags
Return values
string|Imagick|nullstatus()
Outputs a generic HTTP status message in a JSON response.
public
status(ServerRequestInterface|null $request, ResponseInterface|null $response[, mixed $message = Char::EMPTY ][, int|string|null $code = 200 ][, array<string|int, mixed>|null $options = null ][, string|null $accept = null ]) : ResponseInterface|null
Parameters
- $request : ServerRequestInterface|null
-
Optional PSR-7 Request object.
- $response : ResponseInterface|null
-
PSR-7 Response object to send output.
- $message : mixed = Char::EMPTY
-
The message content.
- $code : int|string|null = 200
-
The HTTP status code (default: 200).
- $options : array<string|int, mixed>|null = null
-
Optional array of additional output properties.
- $accept : string|null = null
-
The header accepted by the client : 'application/cbor' or by default 'application/json'
Tags
Return values
ResponseInterface|null —Returns a PSR-7 Response object with JSON content or null if $response is not provided.
success()
Outputs a success message with optional JSON metadata.
public
success(ServerRequestInterface|null $request, ResponseInterface|null $response[, mixed $data = null ][, array<string|int, mixed>|null $init = null ][, string|null $accept = null ]) : mixed
If $response is null, returns the $data directly. Supports optional initialization properties like count, limit, offset, owner, URL, status, total, position, options.
Parameters
- $request : ServerRequestInterface|null
-
Optional PSR-7 Request object.
- $response : ResponseInterface|null
-
Optional PSR-7 Response object.
- $data : mixed = null
-
The main payload or data to return.
- $init : array<string|int, mixed>|null = null
-
Optional associative array with keys:
- count (int): Number of elements
- limit (int): Pagination limit
- offset (int): Pagination offset
- params (array): Parameters for getCurrentPath()
- status (int): HTTP status code
- total (int): Total elements
- url (string): URL to include in response
- owner (array|object): Owner reference
- options (array): Additional properties
- position (int): Optional position in list
- $accept : string|null = null
-
The header accepted by the client : 'application/cbor' or by default 'application/json'
Tags
Return values
mixed —Returns a PSR-7 Response object with JSON if $response is provided, otherwise returns $data directly.
successWithNewBody()
Same as {@see self::success()} but guarantees a fresh response body stream before writing the envelope.
public
successWithNewBody(ServerRequestInterface|null $request, ResponseInterface|null $response[, mixed $data = null ][, array<string|int, mixed>|null $init = null ][, string|null $accept = null ]) : mixed
Use this only when an upstream actor (typically a sub-controller called from the current controller method) may have already written into the shared PSR-7 body stream. Calling the plain success() in that case would concatenate two JSON envelopes — invalid JSON for any strict parser (NextJS RSC, modern fetch, etc.).
Implementation: swaps the response body for an empty stream via self::withFreshBody(), then delegates to success(). Whatever was previously written is discarded; the resulting body contains exactly one envelope.
Parameters
- $request : ServerRequestInterface|null
-
Optional PSR-7 Request object.
- $response : ResponseInterface|null
-
Optional PSR-7 Response object.
- $data : mixed = null
-
The main payload or data to return.
- $init : array<string|int, mixed>|null = null
-
Same keys as success().
- $accept : string|null = null
-
The header accepted by the client.
Tags
Return values
mixed —Same return contract as success().
withFreshBody()
Returns the same response with a fresh, empty body stream.
public
withFreshBody(ResponseInterface|null $response) : ResponseInterface|null
Use to discard whatever an upstream actor (sub-controller, middleware) may have already written, then chain into any other response helper.
Parameters
- $response : ResponseInterface|null
-
Optional PSR-7 Response object.
Tags
Return values
ResponseInterface|null —The same response with a fresh empty body,
or null if $response was null.