Asset implements ArrayAccess
Asset class.
Represents an asset (file) in the Cecil project. Handles file locating, content reading, compiling, minifying, fingerprinting, resizing images, and more.
Table of Contents
Interfaces
- ArrayAccess
Constants
- IMAGE_THUMB : mixed = 'thumbnails'
Properties
- $builder : Builder
- $cache : Cache
- $cacheTags : array<string|int, mixed>
- $config : Config
- $data : array<string|int, mixed>
Methods
- __construct() : mixed
- Creates an Asset from a file path, an array of files path or an URL.
- __toString() : string
- Returns path.
- avif() : self
- Converts an image asset to AVIF format.
- buildPathFromUrl() : string
- Builds a relative path from a URL.
- compile() : self
- Compiles a SCSS + cache.
- convert() : self
- Converts an image asset to $format format.
- dataurl() : string
- Returns the Data URL (encoded in Base64).
- fingerprint() : self
- Add hash to the file name + cache.
- getAudio() : array<string|int, mixed>
- Returns audio file infos: - duration (in seconds.microseconds) - bitrate (in bps) - channel ('stereo', 'dual_mono', 'joint_stereo' or 'mono')
- getHeight() : int|null
- Returns the height of an image/SVG or a video.
- getVideo() : array<string|int, mixed>
- Returns video file infos: - duration (in seconds) - width (in pixels) - height (in pixels)
- getWidth() : int|null
- Returns the width of an image/SVG or a video.
- integrity() : string
- Hashing content of an asset with the specified algo, sha384 by default.
- isImageInCdn() : bool
- Is the asset an image and is it in CDN?
- isMissing() : bool
- Checks if the asset is missing.
- maskable() : self
- Creates a maskable image (with a padding = 20%).
- minify() : self
- Minifying a CSS or a JS.
- offsetExists() : bool
- Implements \ArrayAccess.
- offsetGet() : mixed
- Implements \ArrayAccess.
- offsetSet() : void
- Implements \ArrayAccess.
- offsetUnset() : void
- Implements \ArrayAccess.
- resize() : self
- Resizes an image to the given width or/and height.
- sanitize() : string
- Replaces some characters by '_'.
- save() : void
- Saves the asset by adding its path to the build assets list.
- webp() : self
- Converts an image asset to WebP format.
- doCompile() : self
- Compiles SCSS to CSS.
- doFingerprint() : self
- Add hash to the file name.
- doMinify() : self
- Minifies a CSS or JS asset.
- buildImageCdnUrl() : string
- Builds CDN image URL.
- cached() : self
- Runs an asset transformation through the shared cache layer.
- checkImage() : void
- Checks if the asset is not missing and is typed as an image.
- deduplicateThumbPath() : string
- Remove redondant '/thumbnails/<width(xheight)>/' in the path.
- getImageSize() : array<string|int, mixed>|false
- Returns image size informations.
- optimizeImage() : int
- Optimizes an image file in-place.
- rebuildContentCacheFile() : bool
- Rebuilds a missing cache content file from the in-memory content when possible.
Constants
IMAGE_THUMB
public
mixed
IMAGE_THUMB
= 'thumbnails'
Properties
$builder
protected
Builder
$builder
$cache
protected
Cache
$cache
$cacheTags
protected
array<string|int, mixed>
$cacheTags
= []
Cache tags
$config
protected
Config
$config
$data
protected
array<string|int, mixed>
$data
= []Methods
__construct()
Creates an Asset from a file path, an array of files path or an URL.
public
__construct(Builder $builder, string|array<string|int, mixed> $paths[, array<string|int, mixed>|null $options = null ]) : mixed
Options:
[
'filename' =>
Parameters
- $builder : Builder
- $paths : string|array<string|int, mixed>
- $options : array<string|int, mixed>|null = null
Tags
__toString()
Returns path.
public
__toString() : string
Return values
stringavif()
Converts an image asset to AVIF format.
public
avif([int|null $quality = null ]) : self
Parameters
- $quality : int|null = null
Tags
Return values
selfbuildPathFromUrl()
Builds a relative path from a URL.
public
static buildPathFromUrl(string $url) : string
Use Locator::buildPathFromUrl() instead.
Used for remote files.
Parameters
- $url : string
Return values
stringcompile()
Compiles a SCSS + cache.
public
compile() : self
Tags
Return values
selfconvert()
Converts an image asset to $format format.
public
convert(string $format[, int|null $quality = null ]) : self
Parameters
- $format : string
- $quality : int|null = null
Tags
Return values
selfdataurl()
Returns the Data URL (encoded in Base64).
public
dataurl() : string
Tags
Return values
stringfingerprint()
Add hash to the file name + cache.
public
fingerprint() : self
Return values
selfgetAudio()
Returns audio file infos: - duration (in seconds.microseconds) - bitrate (in bps) - channel ('stereo', 'dual_mono', 'joint_stereo' or 'mono')
public
getAudio() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed>getHeight()
Returns the height of an image/SVG or a video.
public
getHeight() : int|null
Tags
Return values
int|nullgetVideo()
Returns video file infos: - duration (in seconds) - width (in pixels) - height (in pixels)
public
getVideo() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed>getWidth()
Returns the width of an image/SVG or a video.
public
getWidth() : int|null
Tags
Return values
int|nullintegrity()
Hashing content of an asset with the specified algo, sha384 by default.
public
integrity([string $algo = 'sha384' ]) : string
Used for SRI (Subresource Integrity).
Parameters
- $algo : string = 'sha384'
Tags
Return values
stringisImageInCdn()
Is the asset an image and is it in CDN?
public
isImageInCdn() : bool
Return values
boolisMissing()
Checks if the asset is missing.
public
isMissing() : bool
Return values
boolmaskable()
Creates a maskable image (with a padding = 20%).
public
maskable([int|null $padding = null ]) : self
Parameters
- $padding : int|null = null
Tags
Return values
selfminify()
Minifying a CSS or a JS.
public
minify() : self
Return values
selfoffsetExists()
Implements \ArrayAccess.
public
offsetExists(mixed $offset) : bool
Parameters
- $offset : mixed
Return values
booloffsetGet()
Implements \ArrayAccess.
public
offsetGet(mixed $offset) : mixed
Parameters
- $offset : mixed
offsetSet()
Implements \ArrayAccess.
public
offsetSet(mixed $offset, mixed $value) : void
Parameters
- $offset : mixed
- $value : mixed
offsetUnset()
Implements \ArrayAccess.
public
offsetUnset(mixed $offset) : void
Parameters
- $offset : mixed
resize()
Resizes an image to the given width or/and height.
public
resize([int|null $width = null ][, int|null $height = null ][, bool $rmAnimation = false ]) : self
- If only the width is specified, the height is calculated to preserve the aspect ratio
- If only the height is specified, the width is calculated to preserve the aspect ratio
- If both width and height are specified, the image is resized to fit within the given dimensions, image is cropped and centered if necessary
- If rmAnimation is true, any animation in the image (e.g., GIF) will be removed.
Parameters
- $width : int|null = null
- $height : int|null = null
- $rmAnimation : bool = false
Tags
Return values
selfsanitize()
Replaces some characters by '_'.
public
static sanitize(string $string) : string
Use Locator::sanitize() instead.
Parameters
- $string : string
Return values
stringsave()
Saves the asset by adding its path to the build assets list.
public
save() : void
Skips assets marked as missing and validates that the asset file exists in cache before adding it.
Tags
webp()
Converts an image asset to WebP format.
public
webp([int|null $quality = null ]) : self
Parameters
- $quality : int|null = null
Tags
Return values
selfdoCompile()
Compiles SCSS to CSS.
protected
doCompile() : self
Return values
selfdoFingerprint()
Add hash to the file name.
protected
doFingerprint() : self
Return values
selfdoMinify()
Minifies a CSS or JS asset.
protected
doMinify() : self
Return values
selfbuildImageCdnUrl()
Builds CDN image URL.
private
buildImageCdnUrl() : string
Return values
stringcached()
Runs an asset transformation through the shared cache layer.
private
cached(string $tag, callable $action) : self
Parameters
- $tag : string
- $action : callable
Return values
selfcheckImage()
Checks if the asset is not missing and is typed as an image.
private
checkImage() : void
Tags
deduplicateThumbPath()
Remove redondant '/thumbnails/<width(xheight)>/' in the path.
private
deduplicateThumbPath(string $path) : string
Parameters
- $path : string
Return values
stringgetImageSize()
Returns image size informations.
private
getImageSize() : array<string|int, mixed>|false
Tags
Return values
array<string|int, mixed>|falseoptimizeImage()
Optimizes an image file in-place.
private
optimizeImage(string $filepath, string $path, int $quality) : int
Returns the new file size.
Parameters
- $filepath : string
- $path : string
- $quality : int
Return values
intrebuildContentCacheFile()
Rebuilds a missing cache content file from the in-memory content when possible.
private
rebuildContentCacheFile(string $contentFile) : bool
Parameters
- $contentFile : string