Class AssetMiddleware

Handles serving plugin assets in development mode.

This should not be used in production environments as it has sub-optimal performance when compared to serving files with a real webserver.

Properties summary

  • $cacheTime protected
    string
    The amount of time to cache the asset.
  • $typeMap protected
    array
    A extension to content type mapping for plain text types.

Method Summary

Method Detail

__construct()source public

__construct( array $options [] )

Constructor.

Parameters

array $options optional []
The options to use

__invoke()source public

__invoke( Psr\Http\Message\ServerRequestInterface $request , Psr\Http\Message\ResponseInterface $response , callable $next )

Serve assets if the path matches one.

Parameters

Psr\Http\Message\ServerRequestInterface $request
The request.
Psr\Http\Message\ResponseInterface $response
The response.
callable $next
Callback to invoke the next middleware.

Returns

Psr\Http\Message\ResponseInterface
A response

_getAssetFile()source protected

_getAssetFile( string $url )

Builds asset file path based off url

Parameters

string $url
Asset URL

Returns

string
Absolute path for asset file

deliverAsset()source protected

deliverAsset( Psr\Http\Message\ServerRequestInterface $request , Psr\Http\Message\ResponseInterface $response , Cake\Filesystem\File $file )

Sends an asset file to the client

Parameters

Psr\Http\Message\ServerRequestInterface $request
The request object to use.
Psr\Http\Message\ResponseInterface $response
The response object to use.
Cake\Filesystem\File $file
The file wrapper for the file.

Returns

Psr\Http\Message\ResponseInterface
The response with the file & headers.

getType()source protected

getType( Cake\Filesystem\File $file )

Return the type from a File object

Parameters

Cake\Filesystem\File $file
The file from which you get the type

Returns

string

isNotModified()source protected

isNotModified( Psr\Http\Message\ServerRequestInterface $request , Cake\Filesystem\File $file )

Check the not modified header.

Parameters

Psr\Http\Message\ServerRequestInterface $request
The request to check.
Cake\Filesystem\File $file
The file object to compare.

Returns

boolean

Properties detail

$cacheTimesource

protected string

The amount of time to cache the asset.

'+1 day'

$typeMapsource

protected array

A extension to content type mapping for plain text types.

Because finfo doesn't give useful information for plain text types, we have to handle that here.

[
    'css' => 'text/css',
    'json' => 'application/json',
    'js' => 'application/javascript',
    'ico' => 'image/x-icon',
    'eot' => 'application/vnd.ms-fontobject',
    'svg' => 'image/svg+xml',
    'html' => 'text/html',
    'rss' => 'application/rss+xml',
    'xml' => 'application/xml',
]

© 2005–2017 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.3/class-Cake.Routing.Middleware.AssetMiddleware.html