Class FileResponse
Representation of an HTTP response delivering a file.
- ICanBoogie\HTTP\Response implements ICanBoogie\HTTP\ResponseStatus uses ICanBoogie\Accessor\AccessorTrait (not available)
- ┗ ICanBoogie\HTTP\FileResponse
Methods summary
public
__construct( string|SplFileInfo $file, ICanBoogie\HTTP\Request $request, array $options = [], array $headers = [] )
public
__invoke( void )
Changes the status to Status::NOT_MODIFIED if the request's Cache-Control has 'no-cache' and is_modified is false.
protected
finalize( ICanBoogie\HTTP\Headers & $headers, mixed & $body )
The following headers are always modified:
protected
finalize_for_not_modified( ICanBoogie\HTTP\Headers & $headers )
Finalizes the response for Status::NOT_MODIFIED.
protected
finalize_for_partial_content( ICanBoogie\HTTP\Headers & $headers )
Finalizes the response for Status::PARTIAL_CONTENT.
protected
finalize_for_other( ICanBoogie\HTTP\Headers & $headers )
Finalizes the response for status other than Status::NOT_MODIFIED or Status::PARTIAL_CONTENT.
protected
get_content_type( void )
: ICanBoogie\HTTP\Headers\ContentType
If the content type returned by the parent is empty the method tries to obtain it from
the file, if it fails ICanBoogie\HTTP\FileResponse::DEFAULT_MIME is used as fallback.
protected
get_etag( void )
: string
If the etag returned by the parent is empty the method returns a SHA-384 of the file.
protected
get_expires( void )
: ICanBoogie\DateTime|ICanBoogie\HTTP\Headers\Date
If the date returned by the parent is empty the method returns a date created from
ICanBoogie\HTTP\FileResponse::DEFAULT_EXPIRES.
protected
get_modified_time( void )
: integer
Returns the timestamp at which the file was last modified.
Methods inherited from ICanBoogie\HTTP\Response
__clone(),
__toString(),
assert_body_is_valid(),
get_age(),
get_body(),
get_cache_control(),
get_content_length(),
get_date(),
get_is_cacheable(),
get_is_fresh(),
get_is_validateable(),
get_last_modified(),
get_location(),
get_status(),
get_ttl(),
send_body(),
send_headers(),
set_age(),
set_body(),
set_cache_control(),
set_content_length(),
set_content_type(),
set_date(),
set_etag(),
set_expires(),
set_last_modified(),
set_location(),
set_status(),
set_ttl()
Constants summary
OPTION_ETAG
: string
Specifies the ETag header field of the response. If it is not defined the
SHA-384 of the file is used instead.
'etag'
OPTION_EXPIRES
: string
Specifies the expiration date as a ICanBoogie\DateTime instance or a relative date
such as "+3 month", which maps to the Expires header field. The max-age directive of
the Cache-Control header field is computed from the current time. If it is not
defined ICanBoogie\HTTP\FileResponse::DEFAULT_EXPIRES is used instead.
'expires'
OPTION_FILENAME
: string
Specifies the filename of the file and forces download. The following header are updated:
Content-Transfer-Encoding, Content-Description, and Content-Dispositon.
'filename'
Constants inherited from ICanBoogie\HTTP\ResponseStatus
STATUS_ACCEPTED,
STATUS_BAD_GATEWAY,
STATUS_BAD_REQUEST,
STATUS_CONFLICT,
STATUS_CONTINUE,
STATUS_CREATED,
STATUS_EXPECTATION_FAILED,
STATUS_FORBIDDEN,
STATUS_FOUND,
STATUS_GATEWAY_TIMEOUT,
STATUS_GONE,
STATUS_HTTP_VERSION_NOT_SUPPORTED,
STATUS_INTERNAL_SERVER_ERROR,
STATUS_I_M_A_TEAPOT,
STATUS_LENGTH_REQUIRED,
STATUS_METHOD_NOT_ALLOWED,
STATUS_MOVED_PERMANENTLY,
STATUS_MULTIPLE_CHOICES,
STATUS_NON_AUTHORITATIVE_INFORMATION,
STATUS_NOT_ACCEPTABLE,
STATUS_NOT_FOUND,
STATUS_NOT_IMPLEMENTED,
STATUS_NOT_MODIFIED,
STATUS_NO_CONTENT,
STATUS_OK,
STATUS_PARTIAL_CONTENT,
STATUS_PAYMENT_REQUIRED,
STATUS_PRECONDITION_FAILED,
STATUS_PROXY_AUTHENTICATION_REQUIRED,
STATUS_REQUESTED_RANGE_NOT_SATISFIABLE,
STATUS_REQUEST_ENTITY_TOO_LARGE,
STATUS_REQUEST_TIMEOUT,
STATUS_REQUEST_URI_TOO_LONG,
STATUS_RESET_CONTENT,
STATUS_SEE_OTHER,
STATUS_SERVICE_UNAVAILABLE,
STATUS_SWITCHING_PROTOCOLS,
STATUS_TEMPORARY_REDIRECT,
STATUS_UNAUTHORIZED,
STATUS_UNSUPPORTED_MEDIA_TYPE,
STATUS_USE_PROXY
Properties summary
Properties inherited from ICanBoogie\HTTP\Response
Magic properties
Magic properties inherited from ICanBoogie\HTTP\Response
$age,
$body,
$cache_control,
$content_length,
$content_type,
$date,
$etag,
$expires,
$is_cacheable,
$is_fresh,
$is_private,
$is_validateable,
$last_modified,
$location,
$status,
$ttl