Файл: gapps/vendor/laravel/framework/src/Illuminate/Routing/ResponseFactory.php
Строк: 290
<?php
namespace IlluminateRouting;
use JsonSerializable;
use IlluminateSupportStr;
use IlluminateHttpResponse;
use IlluminateHttpJsonResponse;
use IlluminateSupportTraitsMacroable;
use IlluminateContractsSupportArrayable;
use IlluminateContractsViewFactory as ViewFactory;
use SymfonyComponentHttpFoundationStreamedResponse;
use SymfonyComponentHttpFoundationBinaryFileResponse;
use IlluminateContractsRoutingResponseFactory as FactoryContract;
class ResponseFactory implements FactoryContract
{
use Macroable;
/**
* The view factory instance.
*
* @var IlluminateContractsViewFactory
*/
protected $view;
/**
* The redirector instance.
*
* @var IlluminateRoutingRedirector
*/
protected $redirector;
/**
* Create a new response factory instance.
*
* @param IlluminateContractsViewFactory $view
* @param IlluminateRoutingRedirector $redirector
* @return void
*/
public function __construct(ViewFactory $view, Redirector $redirector)
{
$this->view = $view;
$this->redirector = $redirector;
}
/**
* Return a new response from the application.
*
* @param string $content
* @param int $status
* @param array $headers
* @return IlluminateHttpResponse
*/
public function make($content = '', $status = 200, array $headers = [])
{
return new Response($content, $status, $headers);
}
/**
* Return a new view response from the application.
*
* @param string $view
* @param array $data
* @param int $status
* @param array $headers
* @return IlluminateHttpResponse
*/
public function view($view, $data = [], $status = 200, array $headers = [])
{
return static::make($this->view->make($view, $data), $status, $headers);
}
/**
* Return a new JSON response from the application.
*
* @param string|array $data
* @param int $status
* @param array $headers
* @param int $options
* @return IlluminateHttpJsonResponse
*/
public function json($data = [], $status = 200, array $headers = [], $options = 0)
{
if ($data instanceof Arrayable && ! $data instanceof JsonSerializable) {
$data = $data->toArray();
}
return new JsonResponse($data, $status, $headers, $options);
}
/**
* Return a new JSONP response from the application.
*
* @param string $callback
* @param string|array $data
* @param int $status
* @param array $headers
* @param int $options
* @return IlluminateHttpJsonResponse
*/
public function jsonp($callback, $data = [], $status = 200, array $headers = [], $options = 0)
{
return $this->json($data, $status, $headers, $options)->setCallback($callback);
}
/**
* Return a new streamed response from the application.
*
* @param Closure $callback
* @param int $status
* @param array $headers
* @return SymfonyComponentHttpFoundationStreamedResponse
*/
public function stream($callback, $status = 200, array $headers = [])
{
return new StreamedResponse($callback, $status, $headers);
}
/**
* Create a new file download response.
*
* @param SplFileInfo|string $file
* @param string $name
* @param array $headers
* @param string|null $disposition
* @return SymfonyComponentHttpFoundationBinaryFileResponse
*/
public function download($file, $name = null, array $headers = [], $disposition = 'attachment')
{
$response = new BinaryFileResponse($file, 200, $headers, true, $disposition);
if (! is_null($name)) {
return $response->setContentDisposition($disposition, $name, str_replace('%', '', Str::ascii($name)));
}
return $response;
}
/**
* Return the raw contents of a binary file.
*
* @param SplFileInfo|string $file
* @param array $headers
* @return SymfonyComponentHttpFoundationBinaryFileResponse
*/
public function file($file, array $headers = [])
{
return new BinaryFileResponse($file, 200, $headers);
}
/**
* Create a new redirect response to the given path.
*
* @param string $path
* @param int $status
* @param array $headers
* @param bool|null $secure
* @return IlluminateHttpRedirectResponse
*/
public function redirectTo($path, $status = 302, $headers = [], $secure = null)
{
return $this->redirector->to($path, $status, $headers, $secure);
}
/**
* Create a new redirect response to a named route.
*
* @param string $route
* @param array $parameters
* @param int $status
* @param array $headers
* @return IlluminateHttpRedirectResponse
*/
public function redirectToRoute($route, $parameters = [], $status = 302, $headers = [])
{
return $this->redirector->route($route, $parameters, $status, $headers);
}
/**
* Create a new redirect response to a controller action.
*
* @param string $action
* @param array $parameters
* @param int $status
* @param array $headers
* @return IlluminateHttpRedirectResponse
*/
public function redirectToAction($action, $parameters = [], $status = 302, $headers = [])
{
return $this->redirector->action($action, $parameters, $status, $headers);
}
/**
* Create a new redirect response, while putting the current URL in the session.
*
* @param string $path
* @param int $status
* @param array $headers
* @param bool|null $secure
* @return IlluminateHttpRedirectResponse
*/
public function redirectGuest($path, $status = 302, $headers = [], $secure = null)
{
return $this->redirector->guest($path, $status, $headers, $secure);
}
/**
* Create a new redirect response to the previously intended location.
*
* @param string $default
* @param int $status
* @param array $headers
* @param bool|null $secure
* @return IlluminateHttpRedirectResponse
*/
public function redirectToIntended($default = '/', $status = 302, $headers = [], $secure = null)
{
return $this->redirector->intended($default, $status, $headers, $secure);
}
}