Elgg  Version 5.1
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Elgg\Http\ResponseFactory Class Reference

HTTP response service. More...

Public Member Functions

 __construct (Request $request, AjaxService $ajax, EventsService $events)
 Constructor. More...
 
 setHeader (string $name, string $value, bool $replace=true)
 Sets headers to apply to all responses being sent. More...
 
 setCookie (\ElggCookie $cookie)
 Set a cookie, but allow plugins to customize it first. More...
 
 getHeaders (bool $remove_existing=true)
 Get headers set to apply to all responses. More...
 
 prepareResponse (?string $content= '', int $status=200, array $headers=[])
 Creates an HTTP response. More...
 
 prepareRedirectResponse (string $url, int $status=302, array $headers=[])
 Creates a redirect response. More...
 
 prepareJsonResponse ($content= '', int $status=200, array $headers=[])
 Creates an JSON response. More...
 
 send (SymfonyResponse $response)
 Send a response. More...
 
 getSentResponse ()
 Returns a response that was sent to the client. More...
 
 respond (ResponseBuilder $response)
 Send HTTP response. More...
 
 respondWithError (ResponseBuilder $response)
 Send error HTTP response. More...
 
 respondFromContent (ResponseBuilder $response)
 Send OK response. More...
 
 wrapAjaxResponse ($content= '', string $forward_url=null)
 Wraps response content in an Ajax2 compatible format. More...
 
 redirect (string $forward_url=REFERRER, $status_code=ELGG_HTTP_FOUND)
 Prepares a redirect response. More...
 
 parseContext ()
 Parses response type to be used as event type. More...
 
 isXhr ()
 Check if the request is an XmlHttpRequest. More...
 
 isAction ()
 Check if the requested path is an action. More...
 
 normalize ($content= '')
 Normalizes content into serializable data by walking through arrays and objectifying Elgg entities. More...
 
 stringify ($content= '')
 Stringify/serialize response data. More...
 
 setTransport (ResponseTransport $transport)
 Replaces response transport. More...
 

Protected Member Functions

 getSiteRefererUrl ()
 Ensures the referer header is a site url. More...
 
 makeSecureForwardUrl (string $url)
 Ensure the url has a valid protocol for browser use. More...
 
 closeSession ()
 Closes the session. More...
 

Protected Attributes

Request $request
 
AjaxService $ajax
 
EventsService $events
 
ResponseTransport $transport
 
ResponseHeaderBag $headers
 
SymfonyResponse $response_sent = null
 

Detailed Description

HTTP response service.

Since
2.3

Definition at line 21 of file ResponseFactory.php.

Constructor & Destructor Documentation

Elgg\Http\ResponseFactory::__construct ( Request  $request,
AjaxService  $ajax,
EventsService  $events 
)

Constructor.

Parameters
Request$requestHTTP request
AjaxService$ajaxAJAX service
EventsService$eventsEvents service

Definition at line 44 of file ResponseFactory.php.

Member Function Documentation

Elgg\Http\ResponseFactory::closeSession ( )
protected

Closes the session.

Force closing the session so session is saved to the database before headers are sent preventing race conditions with session data

See also
https://github.com/Elgg/Elgg/issues/12348
Returns
void

Definition at line 639 of file ResponseFactory.php.

Elgg\Http\ResponseFactory::getHeaders ( bool  $remove_existing = true)

Get headers set to apply to all responses.

Parameters
bool$remove_existingRemove existing headers found in headers_list()
Returns
ResponseHeaderBag

Definition at line 101 of file ResponseFactory.php.

Elgg\Http\ResponseFactory::getSentResponse ( )

Returns a response that was sent to the client.

Returns
SymfonyResponse|null

Definition at line 225 of file ResponseFactory.php.

Elgg\Http\ResponseFactory::getSiteRefererUrl ( )
protected

Ensures the referer header is a site url.

Returns
string

Definition at line 609 of file ResponseFactory.php.

Elgg\Http\ResponseFactory::isAction ( )

Check if the requested path is an action.

Returns
bool

Definition at line 539 of file ResponseFactory.php.

Elgg\Http\ResponseFactory::isXhr ( )

Check if the request is an XmlHttpRequest.

Returns
bool

Definition at line 530 of file ResponseFactory.php.

Elgg\Http\ResponseFactory::makeSecureForwardUrl ( string  $url)
protected

Ensure the url has a valid protocol for browser use.

Parameters
string$urlurl the secure
Returns
string

Definition at line 620 of file ResponseFactory.php.

Elgg\Http\ResponseFactory::normalize (   $content = '')

Normalizes content into serializable data by walking through arrays and objectifying Elgg entities.

Parameters
mixed$contentData to normalize
Returns
mixed

Definition at line 551 of file ResponseFactory.php.

Elgg\Http\ResponseFactory::parseContext ( )

Parses response type to be used as event type.

Returns
string

Definition at line 497 of file ResponseFactory.php.

Elgg\Http\ResponseFactory::prepareJsonResponse (   $content = '',
int  $status = 200,
array  $headers = [] 
)

Creates an JSON response.

Parameters
mixed$contentThe response content
integer$statusThe response status code
array$headersAn array of response headers
Returns
JsonResponse

Removing Content-Type header because in some cases content-type headers were already set This is a problem when serving a cachable view (for example a .css) in ajax/view

See also
https://github.com/Elgg/Elgg/issues/9794

Definition at line 165 of file ResponseFactory.php.

Elgg\Http\ResponseFactory::prepareRedirectResponse ( string  $url,
int  $status = 302,
array  $headers = [] 
)

Creates a redirect response.

Parameters
string$urlURL to redirect to
integer$statusThe status code (302 by default)
array$headersAn array of response headers (Location is always set to the given URL)
Returns
SymfonyRedirectResponse

Definition at line 147 of file ResponseFactory.php.

Elgg\Http\ResponseFactory::prepareResponse ( ?string  $content = '',
int  $status = 200,
array  $headers = [] 
)

Creates an HTTP response.

Parameters
string$contentThe response content
integer$statusThe response status code
array$headersAn array of response headers
Returns
SymfonyResponse

Definition at line 129 of file ResponseFactory.php.

Elgg\Http\ResponseFactory::redirect ( string  $forward_url = REFERRER,
  $status_code = ELGG_HTTP_FOUND 
)

Prepares a redirect response.

Parameters
string$forward_urlRedirection URL
mixed$status_codeHTTP status code or forward reason
Returns
false|SymfonyResponse
Exceptions
UnexpectedValueException

Definition at line 411 of file ResponseFactory.php.

Elgg\Http\ResponseFactory::respond ( ResponseBuilder  $response)

Send HTTP response.

Parameters
ResponseBuilder$responseResponseBuilder instance An instance of an ErrorResponse, OkResponse or RedirectResponse
Returns
false|SymfonyResponse
Exceptions
UnexpectedValueException

Definition at line 239 of file ResponseFactory.php.

Elgg\Http\ResponseFactory::respondFromContent ( ResponseBuilder  $response)

Send OK response.

Parameters
ResponseBuilder$responseResponseBuilder instance An instance of an ErrorResponse, OkResponse or RedirectResponse
Returns
SymfonyResponse|false

Definition at line 370 of file ResponseFactory.php.

Elgg\Http\ResponseFactory::respondWithError ( ResponseBuilder  $response)

Send error HTTP response.

Parameters
ResponseBuilder$responseResponseBuilder instance An instance of an ErrorResponse, OkResponse or RedirectResponse
Returns
false|SymfonyResponse

Definition at line 311 of file ResponseFactory.php.

Elgg\Http\ResponseFactory::send ( SymfonyResponse  $response)

Send a response.

Parameters
SymfonyResponse$responseResponse object
Returns
SymfonyResponse|false

Definition at line 189 of file ResponseFactory.php.

Elgg\Http\ResponseFactory::setCookie ( \ElggCookie  $cookie)

Set a cookie, but allow plugins to customize it first.

To customize all cookies, register for the 'init:cookie', 'all' event.

Parameters
\ElggCookie$cookieThe cookie that is being set
Returns
bool

Definition at line 75 of file ResponseFactory.php.

Elgg\Http\ResponseFactory::setHeader ( string  $name,
string  $value,
bool  $replace = true 
)

Sets headers to apply to all responses being sent.

Parameters
string$nameHeader name
string$valueHeader value
bool$replaceReplace existing headers
Returns
void

Definition at line 62 of file ResponseFactory.php.

Elgg\Http\ResponseFactory::setTransport ( ResponseTransport  $transport)

Replaces response transport.

Parameters
ResponseTransport$transportTransport interface
Returns
void

Definition at line 600 of file ResponseFactory.php.

Elgg\Http\ResponseFactory::stringify (   $content = '')

Stringify/serialize response data.

Casts objects implementing __toString method to strings Serializes non-scalar values to JSON

Parameters
mixed$contentContent to serialize
Returns
string

Definition at line 575 of file ResponseFactory.php.

Elgg\Http\ResponseFactory::wrapAjaxResponse (   $content = '',
string  $forward_url = null 
)

Wraps response content in an Ajax2 compatible format.

Parameters
string$contentResponse content
string$forward_urlForward URL
Returns
string

Definition at line 388 of file ResponseFactory.php.

Member Data Documentation

AjaxService Elgg\Http\ResponseFactory::$ajax
protected

Definition at line 27 of file ResponseFactory.php.

EventsService Elgg\Http\ResponseFactory::$events
protected

Definition at line 29 of file ResponseFactory.php.

ResponseHeaderBag Elgg\Http\ResponseFactory::$headers
protected

Definition at line 33 of file ResponseFactory.php.

Request Elgg\Http\ResponseFactory::$request
protected

Definition at line 25 of file ResponseFactory.php.

SymfonyResponse Elgg\Http\ResponseFactory::$response_sent = null
protected

Definition at line 35 of file ResponseFactory.php.

ResponseTransport Elgg\Http\ResponseFactory::$transport
protected

Definition at line 31 of file ResponseFactory.php.


The documentation for this class was generated from the following file: