Class Asset
Class for generating asset URLs.
Property Summary
-
$inflectionType protected static
stringInflection type.
Method Summary
-
assetTimestamp() public static
Adds a timestamp to a file based resource based on the value of
Asset.timestampin Configure. If Asset.timestamp is true and debug is true, or Asset.timestamp === 'force' a timestamp will be added. -
cssUrl() public static
Generates URL for given CSS file.
-
encodeUrl() protected static
Encodes URL parts using rawurlencode().
-
imageUrl() public static
Generates URL for given image file.
-
inflectString() protected static
Inflect the theme/plugin name to type set using
Asset::setInflectionType(). -
pluginSplit() protected static
Splits a dot syntax plugin name into its plugin and filename. If $name does not have a dot, then index 0 will be null. It checks if the plugin is loaded, else filename will stay unchanged for filenames containing dot.
-
requestWebroot() protected static
Get webroot from request.
-
scriptUrl() public static
Generates URL for given javascript file.
-
setInflectionType() public static
Set inflection type to use when inflecting plugin/theme name.
-
url() public static
Generates URL for given asset file.
-
webroot() public static
Checks if a file exists when theme is used, if no file is found default location is returned.
Method Detail
assetTimestamp() ¶ public static
assetTimestamp(string $path, string|bool $timestamp = null): string
Adds a timestamp to a file based resource based on the value of Asset.timestamp in
Configure. If Asset.timestamp is true and debug is true, or Asset.timestamp === 'force'
a timestamp will be added.
Parameters
-
string$path The file path to timestamp, the path must be inside
App.wwwRootin Configure.-
string|bool$timestamp optional If set will overrule the value of
Asset.timestampin Configure.
Returns
stringcssUrl() ¶ public static
cssUrl(string $path, array<string, mixed> $options = []): string
Generates URL for given CSS file.
Depending on options passed provides full URL with domain name. Also calls
Asset::assetTimestamp() to add timestamp to local files.
Parameters
-
string$path Path string.
-
array<string, mixed>$options optional Options array. Possible keys:
fullBaseReturn full URL with domain namepathPrefixPath prefix for relative URLsextAsset extension to appendpluginFalse value will prevent parsing path as a plugintimestampOverrides the value ofAsset.timestampin Configure. Set to false to skip timestamp generation. Set to true to apply timestamps when debug is true. Set to 'force' to always enable timestamping regardless of debug value.
Returns
stringencodeUrl() ¶ protected static
encodeUrl(string $url): string
Encodes URL parts using rawurlencode().
Parameters
-
string$url The URL to encode.
Returns
stringimageUrl() ¶ public static
imageUrl(string $path, array<string, mixed> $options = []): string
Generates URL for given image file.
Depending on options passed provides full URL with domain name. Also calls
Asset::assetTimestamp() to add timestamp to local files.
Parameters
-
string$path Path string.
-
array<string, mixed>$options optional Options array. Possible keys:
fullBaseReturn full URL with domain namepathPrefixPath prefix for relative URLspluginFalse value will prevent parsing path as a plugintimestampOverrides the value ofAsset.timestampin Configure. Set to false to skip timestamp generation. Set to true to apply timestamps when debug is true. Set to 'force' to always enable timestamping regardless of debug value.
Returns
stringinflectString() ¶ protected static
inflectString(string $string): string
Inflect the theme/plugin name to type set using Asset::setInflectionType().
Parameters
-
string$string String inflected.
Returns
stringpluginSplit() ¶ protected static
pluginSplit(string $name): array
Splits a dot syntax plugin name into its plugin and filename. If $name does not have a dot, then index 0 will be null. It checks if the plugin is loaded, else filename will stay unchanged for filenames containing dot.
Parameters
-
string$name The name you want to plugin split.
Returns
arrayrequestWebroot() ¶ protected static
requestWebroot(): string
Get webroot from request.
Returns
stringscriptUrl() ¶ public static
scriptUrl(string $path, array<string, mixed> $options = []): string
Generates URL for given javascript file.
Depending on options passed provides full URL with domain name. Also calls
Asset::assetTimestamp() to add timestamp to local files.
Parameters
-
string$path Path string.
-
array<string, mixed>$options optional Options array. Possible keys:
fullBaseReturn full URL with domain namepathPrefixPath prefix for relative URLsextAsset extension to appendpluginFalse value will prevent parsing path as a plugintimestampOverrides the value ofAsset.timestampin Configure. Set to false to skip timestamp generation. Set to true to apply timestamps when debug is true. Set to 'force' to always enable timestamping regardless of debug value.
Returns
stringsetInflectionType() ¶ public static
setInflectionType(string $inflectionType): void
Set inflection type to use when inflecting plugin/theme name.
Parameters
-
string$inflectionType Inflection type. Value should be a valid method name of
Inflectorclass like'dasherize'or'underscore'`.
Returns
voidurl() ¶ public static
url(string $path, array<string, mixed> $options = []): string
Generates URL for given asset file.
Depending on options passed provides full URL with domain name. Also calls
Asset::assetTimestamp() to add timestamp to local files.
Options:
fullBaseBoolean true or a string (e.g. https://example) to return full URL with protocol and domain name.pathPrefixPath prefix for relative URLsextAsset extension to appendpluginFalse value will prevent parsing path as a pluginthemeOptional theme nametimestampOverrides the value ofAsset.timestampin Configure. Set to false to skip timestamp generation. Set to true to apply timestamps when debug is true. Set to 'force' to always enable timestamping regardless of debug value.
Parameters
-
string$path Path string or URL array
-
array<string, mixed>$options optional Options array.
Returns
stringwebroot() ¶ public static
webroot(string $file, array<string, mixed> $options = []): string
Checks if a file exists when theme is used, if no file is found default location is returned.
Options:
themeOptional theme name
Parameters
-
string$file The file to create a webroot path to.
-
array<string, mixed>$options optional Options array.
Returns
string