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_validateable
,
$last_modified
,
$location
,
$status
,
$ttl