The resource requested could not be found on this server!
Please be advised that LiteSpeed Technologies Inc. is not a web hosting company and, as such, has no control over content found on this site.
<div class="kingster-page-wrapper" id="kingster-page-wrapper"> <div class="gdlr-core-page-builder-body"> <div class="gdlr-core-pbf-wrapper " style="padding: 50px 0px 30px 0px;"> <div class="gdlr-core-pbf-background-wrap"></div> <div class="gdlr-core-pbf-wrapper-content gdlr-core-js "> <div class="gdlr-core-pbf-wrapper-container clearfix gdlr-core-container"> <div class="gdlr-core-pbf-element"> <div class="gdlr-core-portfolio-item gdlr-core-item-pdb clearfix gdlr-core-portfolio-item-style-grid" style="padding-bottom: 10px ;"> <!-- Detail --> <div class="kingster-content-container kingster-container"> <div class=" kingster-sidebar-wrap clearfix kingster-line-height-0 kingster-sidebar-style-none"> <div class=" kingster-sidebar-center kingster-column-60 kingster-line-height"> <div class="kingster-content-wrap kingster-item-pdlr clearfix"> <div class="kingster-content-area" style="padding-top: 20px;"> <article id="post-1268" class="post-1268 post type-post status-publish format-standard has-post-thumbnail hentry category-blog category-post-format tag-news"> <div class="kingster-single-article clearfix"> <div class="kingster-single-article-content"> <h4 style="font-family:'Kanit',sans-serif">ชื่อแหล่ง : <?php echo $ancient->name; ?></h4> <h4 style="font-family:'Kanit',sans-serif">ขึ้นทะเบียน</h4> <p style="font-size:'16px'"> <?php echo e(\Carbon\Carbon::parse($ancient->register_date)->addYear(543)->format('d-m-Y')); ?> </p> <h4 style="font-family:'Kanit',sans-serif">ประกาศในราชกิจจานุเบกษา</h4> <p style="font-size:'16px'"> <?php echo $ancient->gazette_published; ?> </p> <h4 style="font-family:'Kanit',sans-serif">ที่อยู่</h4>
"Trying to get property 'name' of non-object (View: /share/resources/views/frontend/ancient/detail.blade.php)"
<div class="kingster-page-wrapper" id="kingster-page-wrapper"> <div class="gdlr-core-page-builder-body"> <div class="gdlr-core-pbf-wrapper " style="padding: 50px 0px 30px 0px;"> <div class="gdlr-core-pbf-background-wrap"></div> <div class="gdlr-core-pbf-wrapper-content gdlr-core-js "> <div class="gdlr-core-pbf-wrapper-container clearfix gdlr-core-container"> <div class="gdlr-core-pbf-element"> <div class="gdlr-core-portfolio-item gdlr-core-item-pdb clearfix gdlr-core-portfolio-item-style-grid" style="padding-bottom: 10px ;"> <!-- Detail --> <div class="kingster-content-container kingster-container"> <div class=" kingster-sidebar-wrap clearfix kingster-line-height-0 kingster-sidebar-style-none"> <div class=" kingster-sidebar-center kingster-column-60 kingster-line-height"> <div class="kingster-content-wrap kingster-item-pdlr clearfix"> <div class="kingster-content-area" style="padding-top: 20px;"> <article id="post-1268" class="post-1268 post type-post status-publish format-standard has-post-thumbnail hentry category-blog category-post-format tag-news"> <div class="kingster-single-article clearfix"> <div class="kingster-single-article-content"> <h4 style="font-family:'Kanit',sans-serif">ชื่อแหล่ง : <?php echo $ancient->name; ?></h4> <h4 style="font-family:'Kanit',sans-serif">ขึ้นทะเบียน</h4> <p style="font-size:'16px'"> <?php echo e(\Carbon\Carbon::parse($ancient->register_date)->addYear(543)->format('d-m-Y')); ?> </p> <h4 style="font-family:'Kanit',sans-serif">ประกาศในราชกิจจานุเบกษา</h4> <p style="font-size:'16px'"> <?php echo $ancient->gazette_published; ?> </p> <h4 style="font-family:'Kanit',sans-serif">ที่อยู่</h4>
"Trying to get property 'name' of non-object"
<div class="kingster-page-wrapper" id="kingster-page-wrapper"> <div class="gdlr-core-page-builder-body"> <div class="gdlr-core-pbf-wrapper " style="padding: 50px 0px 30px 0px;"> <div class="gdlr-core-pbf-background-wrap"></div> <div class="gdlr-core-pbf-wrapper-content gdlr-core-js "> <div class="gdlr-core-pbf-wrapper-container clearfix gdlr-core-container"> <div class="gdlr-core-pbf-element"> <div class="gdlr-core-portfolio-item gdlr-core-item-pdb clearfix gdlr-core-portfolio-item-style-grid" style="padding-bottom: 10px ;"> <!-- Detail --> <div class="kingster-content-container kingster-container"> <div class=" kingster-sidebar-wrap clearfix kingster-line-height-0 kingster-sidebar-style-none"> <div class=" kingster-sidebar-center kingster-column-60 kingster-line-height"> <div class="kingster-content-wrap kingster-item-pdlr clearfix"> <div class="kingster-content-area" style="padding-top: 20px;"> <article id="post-1268" class="post-1268 post type-post status-publish format-standard has-post-thumbnail hentry category-blog category-post-format tag-news"> <div class="kingster-single-article clearfix"> <div class="kingster-single-article-content"> <h4 style="font-family:'Kanit',sans-serif">ชื่อแหล่ง : <?php echo $ancient->name; ?></h4> <h4 style="font-family:'Kanit',sans-serif">ขึ้นทะเบียน</h4> <p style="font-size:'16px'"> <?php echo e(\Carbon\Carbon::parse($ancient->register_date)->addYear(543)->format('d-m-Y')); ?> </p> <h4 style="font-family:'Kanit',sans-serif">ประกาศในราชกิจจานุเบกษา</h4> <p style="font-size:'16px'"> <?php echo $ancient->gazette_published; ?> </p> <h4 style="font-family:'Kanit',sans-serif">ที่อยู่</h4>
8
"Trying to get property 'name' of non-object"
"/share/storage/framework/views/bdbe80a55ab323513151203abef23c800dcc253b.php"
54
array:11 [ "__path" => "/share/storage/framework/views/bdbe80a55ab323513151203abef23c800dcc253b.php" "__data" => array:8 [ "__env" => Factory {#156} "app" => Application {#4} "errors" => ViewErrorBag {#463} "ancient" => null "zones" => Collection {#502} "types" => Collection {#491} "ancient_images" => Collection {#498} "logged_in_user" => null ] "obLevel" => 0 "__env" => Factory {#156} "app" => Application {#4} "errors" => ViewErrorBag {#463} "ancient" => null "zones" => Collection {#502} "types" => Collection {#491} "ancient_images" => Collection {#498} "logged_in_user" => null ]
/** * Get the evaluated contents of the view at the given path. * * @param string $__path * @param array $__data * @return string */ protected function evaluatePath($__path, $__data) { $obLevel = ob_get_level(); ob_start(); extract($__data, EXTR_SKIP); // We'll evaluate the contents of the view inside a try/catch block so we can // flush out any stray output that might get out before an error occurs or // an exception is thrown. This prevents any partial views from leaking. try { include $__path; } catch (Exception $e) { $this->handleViewException($e, $obLevel); } catch (Throwable $e) { $this->handleViewException(new FatalThrowableError($e), $obLevel); } return ltrim(ob_get_clean()); } /** * Handle a view exception. * * @param \Exception $e * @param int $obLevel * @return void * * @throws \Exception */ protected function handleViewException(Exception $e, $obLevel) {
"/share/storage/framework/views/bdbe80a55ab323513151203abef23c800dcc253b.php"
* @param array $data * @return string */ public function get($path, array $data = []) { $this->lastCompiled[] = $path; // If this given view has expired, which means it has simply been edited since // it was last compiled, we will re-compile the views so we can evaluate a // fresh copy of the view. We'll pass the compiler the path of the view. if ($this->compiler->isExpired($path)) { $this->compiler->compile($path); } $compiled = $this->compiler->getCompiledPath($path); // Once we have the path to the compiled file, we will evaluate the paths with // typical PHP just like any other templates. We also keep a stack of views // which have been rendered for right exception messages to be generated. $results = $this->evaluatePath($compiled, $data); array_pop($this->lastCompiled); return $results; } /** * Handle a view exception. * * @param \Exception $e * @param int $obLevel * @return void * * @throws \Exception */ protected function handleViewException(Exception $e, $obLevel) { $e = new ErrorException($this->getMessage($e), 0, 1, $e->getFile(), $e->getLine(), $e); parent::handleViewException($e, $obLevel);
"/share/storage/framework/views/bdbe80a55ab323513151203abef23c800dcc253b.php"
array:8 [ "__env" => Factory {#156} "app" => Application {#4} "errors" => ViewErrorBag {#463} "ancient" => null "zones" => Collection {#502} "types" => Collection {#491} "ancient_images" => Collection {#498} "logged_in_user" => null ]
$this->factory->callComposer($this); $contents = $this->getContents(); // Once we've finished rendering the view, we'll decrement the render count // so that each sections get flushed out next time a view is created and // no old sections are staying around in the memory of an environment. $this->factory->decrementRender(); return $contents; } /** * Get the evaluated contents of the view. * * @return string */ protected function getContents() { return $this->engine->get($this->path, $this->gatherData()); } /** * Get the data bound to the view instance. * * @return array */ protected function gatherData() { $data = array_merge($this->factory->getShared(), $this->data); foreach ($data as $key => $value) { if ($value instanceof Renderable) { $data[$key] = $value->render(); } } return $data; }
throw $e; } } /** * Get the contents of the view instance. * * @return string */ protected function renderContents() { // We will keep track of the amount of views being rendered so we can flush // the section after the complete rendering operation is done. This will // clear out the sections for any separate views that may be rendered. $this->factory->incrementRender(); $this->factory->callComposer($this); $contents = $this->getContents(); // Once we've finished rendering the view, we'll decrement the render count // so that each sections get flushed out next time a view is created and // no old sections are staying around in the memory of an environment. $this->factory->decrementRender(); return $contents; } /** * Get the evaluated contents of the view. * * @return string */ protected function getContents() { return $this->engine->get($this->path, $this->gatherData()); } /**
$this->view = $view; $this->path = $path; $this->engine = $engine; $this->factory = $factory; $this->data = $data instanceof Arrayable ? $data->toArray() : (array) $data; } /** * Get the string contents of the view. * * @param callable|null $callback * @return array|string * * @throws \Throwable */ public function render(callable $callback = null) { try { $contents = $this->renderContents(); $response = isset($callback) ? call_user_func($callback, $this, $contents) : null; // Once we have the contents of the view, we will flush the sections if we are // done rendering all views so that there is nothing left hanging over when // another view gets rendered in the future by the application developer. $this->factory->flushStateIfDoneRendering(); return ! is_null($response) ? $response : $contents; } catch (Exception $e) { $this->factory->flushState(); throw $e; } catch (Throwable $e) { $this->factory->flushState(); throw $e; } }
* @return $this */ public function setContent($content) { $this->original = $content; // If the content is "JSONable" we will set the appropriate header and convert // the content to JSON. This is useful when returning something like models // from routes that will be automatically transformed to their JSON form. if ($this->shouldBeJson($content)) { $this->header('Content-Type', 'application/json'); $content = $this->morphToJson($content); } // If this content implements the "Renderable" interface then we will call the // render method on the object so we will avoid any "__toString" exceptions // that might be thrown and have their errors obscured by PHP's handling. elseif ($content instanceof Renderable) { $content = $content->render(); } parent::setContent($content); return $this; } /** * Determine if the given content should be turned into JSON. * * @param mixed $content * @return bool */ protected function shouldBeJson($content) { return $content instanceof Arrayable || $content instanceof Jsonable || $content instanceof ArrayObject || $content instanceof JsonSerializable || is_array($content);
500 => 'Internal Server Error', 501 => 'Not Implemented', 502 => 'Bad Gateway', 503 => 'Service Unavailable', 504 => 'Gateway Timeout', 505 => 'HTTP Version Not Supported', 506 => 'Variant Also Negotiates', // RFC2295 507 => 'Insufficient Storage', // RFC4918 508 => 'Loop Detected', // RFC5842 510 => 'Not Extended', // RFC2774 511 => 'Network Authentication Required', // RFC6585 ]; /** * @throws \InvalidArgumentException When the HTTP status code is not valid */ public function __construct($content = '', int $status = 200, array $headers = []) { $this->headers = new ResponseHeaderBag($headers); $this->setContent($content); $this->setStatusCode($status); $this->setProtocolVersion('1.0'); } /** * Factory method for chainability. * * Example: * * return Response::create($body, 200) * ->setSharedMaxAge(300); * * @param mixed $content The response content, see setContent() * @param int $status The response status code * @param array $headers An array of response headers * * @return static */ public static function create($content = '', $status = 200, $headers = []) {
View {#489}
*/ public static function toResponse($request, $response) { if ($response instanceof Responsable) { $response = $response->toResponse($request); } if ($response instanceof PsrResponseInterface) { $response = (new HttpFoundationFactory)->createResponse($response); } elseif ($response instanceof Model && $response->wasRecentlyCreated) { $response = new JsonResponse($response, 201); } elseif (! $response instanceof SymfonyResponse && ($response instanceof Arrayable || $response instanceof Jsonable || $response instanceof ArrayObject || $response instanceof JsonSerializable || is_array($response))) { $response = new JsonResponse($response); } elseif (! $response instanceof SymfonyResponse) { $response = new Response($response); } if ($response->getStatusCode() === Response::HTTP_NOT_MODIFIED) { $response->setNotModified(); } return $response->prepare($request); } /** * Substitute the route bindings onto the route. * * @param \Illuminate\Routing\Route $route * @return \Illuminate\Routing\Route * * @throws \Illuminate\Database\Eloquent\ModelNotFoundException */ public function substituteBindings($route) { foreach ($route->parameters() as $key => $value) {
View {#489}
* Sort the given middleware by priority. * * @param \Illuminate\Support\Collection $middlewares * @return array */ protected function sortMiddleware(Collection $middlewares) { return (new SortedMiddleware($this->middlewarePriority, $middlewares))->all(); } /** * Create a response instance from the given value. * * @param \Symfony\Component\HttpFoundation\Request $request * @param mixed $response * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse */ public function prepareResponse($request, $response) { return static::toResponse($request, $response); } /** * Static version of prepareResponse. * * @param \Symfony\Component\HttpFoundation\Request $request * @param mixed $response * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse */ public static function toResponse($request, $response) { if ($response instanceof Responsable) { $response = $response->toResponse($request); } if ($response instanceof PsrResponseInterface) { $response = (new HttpFoundationFactory)->createResponse($response); } elseif ($response instanceof Model && $response->wasRecentlyCreated) { $response = new JsonResponse($response, 201); } elseif (! $response instanceof SymfonyResponse &&
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
View {#489}
/** * Run the given route within a Stack "onion" instance. * * @param \Illuminate\Routing\Route $route * @param \Illuminate\Http\Request $request * @return mixed */ protected function runRouteWithinStack(Route $route, Request $request) { $shouldSkipMiddleware = $this->container->bound('middleware.disable') && $this->container->make('middleware.disable') === true; $middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route); return (new Pipeline($this->container)) ->send($request) ->through($middleware) ->then(function ($request) use ($route) { return $this->prepareResponse( $request, $route->run() ); }); } /** * Gather the middleware for the given route with resolved class names. * * @param \Illuminate\Routing\Route $route * @return array */ public function gatherRouteMiddleware(Route $route) { $middleware = collect($route->gatherMiddleware())->map(function ($name) { return (array) MiddlewareNameResolver::resolve($name, $this->middleware, $this->middlewareGroups); })->flatten(); return $this->sortMiddleware($middleware); } /**
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
View {#489}
use Symfony\Component\Debug\Exception\FatalThrowableError; /** * This extended pipeline catches any exceptions that occur during each slice. * * The exceptions are converted to HTTP responses for proper middleware handling. */ class Pipeline extends BasePipeline { /** * Get the final piece of the Closure onion. * * @param \Closure $destination * @return \Closure */ protected function prepareDestination(Closure $destination) { return function ($passable) use ($destination) { try { return $destination($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry();
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* @param $request * @param Closure $next * * @return \Illuminate\Http\RedirectResponse|mixed */ public function handle($request, Closure $next) { // If the user is to be logged out if ($request->user() && $request->user()->to_be_logged_out) { // Make sure they can log back in next session $request->user()->update(['to_be_logged_out' => false]); // Kill the current session and force back to the login screen session()->flush(); auth()->logout(); return redirect()->route('frontend.auth.login'); } return $next($request); } }
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { [$name, $parameters] = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } $response = method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); return $response instanceof Responsable ? $response->toResponse($this->getContainer()->make(Request::class)) : $response; }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure($passable) {#422 …6}
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
*/ public function __construct(Registrar $router) { $this->router = $router; } /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $this->router->substituteBindings($route = $request->route()); $this->router->substituteImplicitBindings($route); return $next($request); } }
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { [$name, $parameters] = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } $response = method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); return $response instanceof Responsable ? $response->toResponse($this->getContainer()->make(Request::class)) : $response; }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure($passable) {#440 …6}
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// setLocale for php. Enables ->formatLocalized() with localized values for dates setlocale(LC_TIME, config('locale.languages')[session()->get('locale')][1]); // setLocale to use Carbon source locales. Enables diffForHumans() localized Carbon::setLocale(config('locale.languages')[session()->get('locale')][0]); /* * Set the session variable for whether or not the app is using RTL support * for the current language being selected * For use in the blade directive in BladeServiceProvider */ if (config('locale.languages')[session()->get('locale')][2]) { session(['lang-rtl' => true]); } else { session()->forget('lang-rtl'); } } return $next($request); } }
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { [$name, $parameters] = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } $response = method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); return $response instanceof Responsable ? $response->toResponse($this->getContainer()->make(Request::class)) : $response; }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure($passable) {#441 …6}
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
} /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed * * @throws \Illuminate\Session\TokenMismatchException */ public function handle($request, Closure $next) { if ( $this->isReading($request) || $this->runningUnitTests() || $this->inExceptArray($request) || $this->tokensMatch($request) ) { return tap($next($request), function ($response) use ($request) { if ($this->shouldAddXsrfTokenCookie()) { $this->addCookieToResponse($request, $response); } }); } throw new TokenMismatchException('CSRF token mismatch.'); } /** * Determine if the HTTP request uses a ‘read’ verb. * * @param \Illuminate\Http\Request $request * @return bool */ protected function isReading($request) { return in_array($request->method(), ['HEAD', 'GET', 'OPTIONS']); }
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { [$name, $parameters] = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } $response = method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); return $response instanceof Responsable ? $response->toResponse($this->getContainer()->make(Request::class)) : $response; }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure($passable) {#442 …6}
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* * @param \Illuminate\Contracts\Auth\Factory $auth * @return void */ public function __construct(AuthFactory $auth) { $this->auth = $auth; } /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if (! $request->user() || ! $request->session()) { return $next($request); } if ($this->auth->viaRemember()) { $passwordHash = explode('|', $request->cookies->get($this->auth->getRecallerName()))[2]; if ($passwordHash != $request->user()->getAuthPassword()) { $this->logout($request); } } if (! $request->session()->has('password_hash')) { $this->storePasswordHashInSession($request); } if ($request->session()->get('password_hash') !== $request->user()->getAuthPassword()) { $this->logout($request); } return tap($next($request), function () use ($request) { $this->storePasswordHashInSession($request);
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { [$name, $parameters] = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } $response = method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); return $response instanceof Responsable ? $response->toResponse($this->getContainer()->make(Request::class)) : $response; }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure($passable) {#443 …6}
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { // If the current session has an "errors" variable bound to it, we will share // its value with all view instances so the views can easily access errors // without having to bind. An empty bag is set when there aren't errors. $this->view->share( 'errors', $request->session()->get('errors') ?: new ViewErrorBag ); // Putting the errors in the view for every view allows the developer to just // assume that some errors are always available, which is convenient since // they don't have to continually run checks for the presence of errors. return $next($request); } }
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { [$name, $parameters] = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } $response = method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); return $response instanceof Responsable ? $response->toResponse($this->getContainer()->make(Request::class)) : $response; }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure($passable) {#444 …6}
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if (! $this->sessionConfigured()) { return $next($request); } // If a session driver has been configured, we will need to start the session here // so that the data is ready for an application. Note that the Laravel sessions // do not make use of PHP "native" sessions in any way since they are crappy. $request->setLaravelSession( $session = $this->startSession($request) ); $this->collectGarbage($session); $response = $next($request); $this->storeCurrentUrl($request, $session); $this->addCookieToResponse($response, $session); // Again, if the session has been configured we will need to close out the session // so that the attributes may be persisted to some storage medium. We will also // add the session identifier cookie to the application response headers now. $this->saveSession($request); return $response; } /** * Start the session for the given request. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Contracts\Session\Session */ protected function startSession(Request $request)
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { [$name, $parameters] = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } $response = method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); return $response instanceof Responsable ? $response->toResponse($this->getContainer()->make(Request::class)) : $response; }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure($passable) {#445 …6}
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* Create a new CookieQueue instance. * * @param \Illuminate\Contracts\Cookie\QueueingFactory $cookies * @return void */ public function __construct(CookieJar $cookies) { $this->cookies = $cookies; } /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $response = $next($request); foreach ($this->cookies->getQueuedCookies() as $cookie) { $response->headers->setCookie($cookie); } return $response; } }
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { [$name, $parameters] = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } $response = method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); return $response instanceof Responsable ? $response->toResponse($this->getContainer()->make(Request::class)) : $response; }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure($passable) {#446 …6}
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* Disable encryption for the given cookie name(s). * * @param string|array $name * @return void */ public function disableFor($name) { $this->except = array_merge($this->except, (array) $name); } /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return \Symfony\Component\HttpFoundation\Response */ public function handle($request, Closure $next) { return $this->encrypt($next($this->decrypt($request))); } /** * Decrypt the cookies on the request. * * @param \Symfony\Component\HttpFoundation\Request $request * @return \Symfony\Component\HttpFoundation\Request */ protected function decrypt(Request $request) { foreach ($request->cookies as $key => $cookie) { if ($this->isDisabled($key)) { continue; } try { $request->cookies->set($key, $this->decryptCookie($key, $cookie)); } catch (DecryptException $e) { $request->cookies->set($key, null); }
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { [$name, $parameters] = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } $response = method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); return $response instanceof Responsable ? $response->toResponse($this->getContainer()->make(Request::class)) : $response; }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure($passable) {#447 …6}
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
public function via($method) { $this->method = $method; return $this; } /** * Run the pipeline with a final destination callback. * * @param \Closure $destination * @return mixed */ public function then(Closure $destination) { $pipeline = array_reduce( array_reverse($this->pipes), $this->carry(), $this->prepareDestination($destination) ); return $pipeline($this->passable); } /** * Run the pipeline and return the result. * * @return mixed */ public function thenReturn() { return $this->then(function ($passable) { return $passable; }); } /** * Get the final piece of the Closure onion. * * @param \Closure $destination * @return \Closure */
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* * @param \Illuminate\Routing\Route $route * @param \Illuminate\Http\Request $request * @return mixed */ protected function runRouteWithinStack(Route $route, Request $request) { $shouldSkipMiddleware = $this->container->bound('middleware.disable') && $this->container->make('middleware.disable') === true; $middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route); return (new Pipeline($this->container)) ->send($request) ->through($middleware) ->then(function ($request) use ($route) { return $this->prepareResponse( $request, $route->run() ); }); } /** * Gather the middleware for the given route with resolved class names. * * @param \Illuminate\Routing\Route $route * @return array */ public function gatherRouteMiddleware(Route $route) { $middleware = collect($route->gatherMiddleware())->map(function ($name) { return (array) MiddlewareNameResolver::resolve($name, $this->middleware, $this->middlewareGroups); })->flatten(); return $this->sortMiddleware($middleware); } /** * Sort the given middleware by priority. *
Closure($request) {#421 …6}
return $route; } /** * Return the response for the given route. * * @param \Illuminate\Http\Request $request * @param \Illuminate\Routing\Route $route * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse */ protected function runRoute(Request $request, Route $route) { $request->setRouteResolver(function () use ($route) { return $route; }); $this->events->dispatch(new Events\RouteMatched($route, $request)); return $this->prepareResponse($request, $this->runRouteWithinStack($route, $request) ); } /** * Run the given route within a Stack "onion" instance. * * @param \Illuminate\Routing\Route $route * @param \Illuminate\Http\Request $request * @return mixed */ protected function runRouteWithinStack(Route $route, Request $request) { $shouldSkipMiddleware = $this->container->bound('middleware.disable') && $this->container->make('middleware.disable') === true; $middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route); return (new Pipeline($this->container)) ->send($request) ->through($middleware)
Route {#302}
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse */ public function dispatch(Request $request) { $this->currentRequest = $request; return $this->dispatchToRoute($request); } /** * Dispatch the request to a route and return the response. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse */ public function dispatchToRoute(Request $request) { return $this->runRoute($request, $this->findRoute($request)); } /** * Find the route matching a given request. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Routing\Route */ protected function findRoute($request) { $this->current = $route = $this->routes->match($request); $this->container->instance(Route::class, $route); return $route; } /** * Return the response for the given route. *
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Route {#302}
* @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse */ public function respondWithRoute($name) { $route = tap($this->routes->getByName($name))->bind($this->currentRequest); return $this->runRoute($this->currentRequest, $route); } /** * Dispatch the request to the application. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse */ public function dispatch(Request $request) { $this->currentRequest = $request; return $this->dispatchToRoute($request); } /** * Dispatch the request to a route and return the response. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse */ public function dispatchToRoute(Request $request) { return $this->runRoute($request, $this->findRoute($request)); } /** * Find the route matching a given request. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Routing\Route */ protected function findRoute($request)
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* @return void */ public function bootstrap() { if (! $this->app->hasBeenBootstrapped()) { $this->app->bootstrapWith($this->bootstrappers()); } } /** * Get the route dispatcher callback. * * @return \Closure */ protected function dispatchToRouter() { return function ($request) { $this->app->instance('request', $request); return $this->router->dispatch($request); }; } /** * Call the terminate method on any terminable middleware. * * @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Response $response * @return void */ public function terminate($request, $response) { $this->terminateMiddleware($request, $response); $this->app->terminate(); } /** * Call the terminate method on any terminable middleware. *
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
use Symfony\Component\Debug\Exception\FatalThrowableError; /** * This extended pipeline catches any exceptions that occur during each slice. * * The exceptions are converted to HTTP responses for proper middleware handling. */ class Pipeline extends BasePipeline { /** * Get the final piece of the Closure onion. * * @param \Closure $destination * @return \Closure */ protected function prepareDestination(Closure $destination) { return function ($passable) use ($destination) { try { return $destination($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry();
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* @param LaravelDebugbar $debugbar */ public function __construct(Container $container, LaravelDebugbar $debugbar) { $this->container = $container; $this->debugbar = $debugbar; $this->except = config('debugbar.except') ?: []; } /** * Handle an incoming request. * * @param Request $request * @param Closure $next * @return mixed */ public function handle($request, Closure $next) { if (!$this->debugbar->isEnabled() || $this->inExceptArray($request)) { return $next($request); } $this->debugbar->boot(); try { /** @var \Illuminate\Http\Response $response */ $response = $next($request); } catch (Exception $e) { $response = $this->handleException($request, $e); } catch (Error $error) { $e = new FatalThrowableError($error); $response = $this->handleException($request, $e); } // Modify the response to add the Debugbar $this->debugbar->modifyResponse($request, $response); return $response; }
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { [$name, $parameters] = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } $response = method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); return $response instanceof Responsable ? $response->toResponse($this->getContainer()->make(Request::class)) : $response; }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure($passable) {#290 …6}
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
{ $this->config = $config; } /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * * @throws \Symfony\Component\HttpKernel\Exception\HttpException * * @return mixed */ public function handle(Request $request, Closure $next) { $request::setTrustedProxies([], $this->getTrustedHeaderNames()); // Reset trusted proxies between requests $this->setTrustedProxyIpAddresses($request); return $next($request); } /** * Sets the trusted proxies on the request to the value of trustedproxy.proxies * * @param \Illuminate\Http\Request $request */ protected function setTrustedProxyIpAddresses(Request $request) { $trustedIps = $this->proxies ?: $this->config->get('trustedproxy.proxies'); // Trust any IP address that calls us // `**` for backwards compatibility, but is deprecated if ($trustedIps === '*' || $trustedIps === '**') { return $this->setTrustedProxyIpAddressesToTheCallingIp($request); } // Support IPs addresses separated by comma $trustedIps = is_string($trustedIps) ? array_map('trim', explode(',', $trustedIps)) : $trustedIps;
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { [$name, $parameters] = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } $response = method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); return $response instanceof Responsable ? $response->toResponse($this->getContainer()->make(Request::class)) : $response; }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure($passable) {#291 …6}
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
namespace Illuminate\Foundation\Http\Middleware; use Closure; use Symfony\Component\HttpFoundation\ParameterBag; class TransformsRequest { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $this->clean($request); return $next($request); } /** * Clean the request's data. * * @param \Illuminate\Http\Request $request * @return void */ protected function clean($request) { $this->cleanParameterBag($request->query); if ($request->isJson()) { $this->cleanParameterBag($request->json()); } elseif ($request->request !== $request->query) { $this->cleanParameterBag($request->request); } } /**
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { [$name, $parameters] = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } $response = method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); return $response instanceof Responsable ? $response->toResponse($this->getContainer()->make(Request::class)) : $response; }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure($passable) {#293 …6}
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
namespace Illuminate\Foundation\Http\Middleware; use Closure; use Symfony\Component\HttpFoundation\ParameterBag; class TransformsRequest { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $this->clean($request); return $next($request); } /** * Clean the request's data. * * @param \Illuminate\Http\Request $request * @return void */ protected function clean($request) { $this->cleanParameterBag($request->query); if ($request->isJson()) { $this->cleanParameterBag($request->json()); } elseif ($request->request !== $request->query) { $this->cleanParameterBag($request->request); } } /**
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { [$name, $parameters] = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } $response = method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); return $response instanceof Responsable ? $response->toResponse($this->getContainer()->make(Request::class)) : $response; }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure($passable) {#294 …6}
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
class ValidatePostSize { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed * * @throws \Illuminate\Http\Exceptions\PostTooLargeException */ public function handle($request, Closure $next) { $max = $this->getPostMaxSize(); if ($max > 0 && $request->server('CONTENT_LENGTH') > $max) { throw new PostTooLargeException; } return $next($request); } /** * Determine the server 'post_max_size' as bytes. * * @return int */ protected function getPostMaxSize() { if (is_numeric($postMaxSize = ini_get('post_max_size'))) { return (int) $postMaxSize; } $metric = strtoupper(substr($postMaxSize, -1)); $postMaxSize = (int) $postMaxSize; switch ($metric) { case 'K': return $postMaxSize * 1024; case 'M':
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { [$name, $parameters] = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } $response = method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); return $response instanceof Responsable ? $response->toResponse($this->getContainer()->make(Request::class)) : $response; }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure($passable) {#295 …6}
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
*/ class CheckForDemoMode { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * * @return mixed */ public function handle($request, Closure $next) { if (config('app.demo')) { if ($request->isMethod('post') || $request->isMethod('patch') || $request->isMethod('delete')) { abort_if($request->path() !== 'login', Response::HTTP_UNAUTHORIZED); } } return $next($request); } }
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { [$name, $parameters] = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } $response = method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); return $response instanceof Responsable ? $response->toResponse($this->getContainer()->make(Request::class)) : $response; }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure($passable) {#296 …6}
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* * @throws \Symfony\Component\HttpKernel\Exception\HttpException */ public function handle($request, Closure $next) { if ($this->app->isDownForMaintenance()) { $data = json_decode(file_get_contents($this->app->storagePath().'/framework/down'), true); if (isset($data['allowed']) && IpUtils::checkIp($request->ip(), (array) $data['allowed'])) { return $next($request); } if ($this->inExceptArray($request)) { return $next($request); } throw new MaintenanceModeException($data['time'], $data['retry'], $data['message']); } return $next($request); } /** * Determine if the request has a URI that should be accessible in maintenance mode. * * @param \Illuminate\Http\Request $request * @return bool */ protected function inExceptArray($request) { foreach ($this->except as $except) { if ($except !== '/') { $except = trim($except, '/'); } if ($request->fullUrlIs($except) || $request->is($except)) { return true; } }
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { [$name, $parameters] = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } $response = method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); return $response instanceof Responsable ? $response->toResponse($this->getContainer()->make(Request::class)) : $response; }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure($passable) {#297 …6}
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
public function via($method) { $this->method = $method; return $this; } /** * Run the pipeline with a final destination callback. * * @param \Closure $destination * @return mixed */ public function then(Closure $destination) { $pipeline = array_reduce( array_reverse($this->pipes), $this->carry(), $this->prepareDestination($destination) ); return $pipeline($this->passable); } /** * Run the pipeline and return the result. * * @return mixed */ public function thenReturn() { return $this->then(function ($passable) { return $passable; }); } /** * Get the final piece of the Closure onion. * * @param \Closure $destination * @return \Closure */
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
} /** * Send the given request through the middleware / router. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ protected function sendRequestThroughRouter($request) { $this->app->instance('request', $request); Facade::clearResolvedInstance('request'); $this->bootstrap(); return (new Pipeline($this->app)) ->send($request) ->through($this->app->shouldSkipMiddleware() ? [] : $this->middleware) ->then($this->dispatchToRouter()); } /** * Bootstrap the application for HTTP requests. * * @return void */ public function bootstrap() { if (! $this->app->hasBeenBootstrapped()) { $this->app->bootstrapWith($this->bootstrappers()); } } /** * Get the route dispatcher callback. * * @return \Closure */ protected function dispatchToRouter()
Closure($request) {#45 …5}
$router->middlewareGroup($key, $middleware); } foreach ($this->routeMiddleware as $key => $middleware) { $router->aliasMiddleware($key, $middleware); } } /** * Handle an incoming HTTP request. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function handle($request) { try { $request->enableHttpMethodParameterOverride(); $response = $this->sendRequestThroughRouter($request); } catch (Exception $e) { $this->reportException($e); $response = $this->renderException($request, $e); } catch (Throwable $e) { $this->reportException($e = new FatalThrowableError($e)); $response = $this->renderException($request, $e); } $this->app['events']->dispatch( new Events\RequestHandled($request, $response) ); return $response; } /** * Send the given request through the middleware / router. *
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
*/ $app = require_once __DIR__.'/../bootstrap/app.php'; /* |-------------------------------------------------------------------------- | Run The Application |-------------------------------------------------------------------------- | | Once we have the application, we can handle the incoming request | through the kernel, and send the associated response back to | the client's browser allowing them to enjoy the creative | and wonderful application we have prepared for them. | */ $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); $response = $kernel->handle( $request = Illuminate\Http\Request::capture() ); $response->send(); $kernel->terminate($request, $response);
Request {#44 #json: null #convertedFiles: null #userResolver: Closure($guard = null) {#411 …6} #routeResolver: Closure() {#404 …5} +attributes: ParameterBag {#46} +request: ParameterBag {#52} +query: ParameterBag {#52} +server: ServerBag {#48} +files: FileBag {#49} +cookies: ParameterBag {#47} +headers: HeaderBag {#50} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/ancient/engineering.html" #requestUri: "/ancient/engineering.html" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#214} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Key | Value |
USER | "www-data"
|
HOME | "/var/www"
|
HTTP_ACCEPT_ENCODING | "gzip, br, zstd, deflate"
|
HTTP_USER_AGENT | "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
|
HTTP_ACCEPT | "*/*"
|
HTTP_X_FORWARDED_PORT | "443"
|
HTTP_X_FORWARDED_SSL | "on"
|
HTTP_X_FORWARDED_PROTO | "https"
|
HTTP_X_FORWARDED_FOR | "52.15.233.83"
|
HTTP_X_REAL_IP | "52.15.233.83"
|
HTTP_CONNECTION | "close"
|
HTTP_HOST | "prasatsurin.srru.ac.th"
|
REDIRECT_STATUS | "200"
|
SERVER_NAME | "" |
SERVER_PORT | "80"
|
SERVER_ADDR | "172.201.0.48"
|
REMOTE_PORT | "46964"
|
REMOTE_ADDR | "172.201.0.8"
|
SERVER_SOFTWARE | "nginx/1.15.8"
|
GATEWAY_INTERFACE | "CGI/1.1"
|
REQUEST_SCHEME | "http"
|
SERVER_PROTOCOL | "HTTP/1.1"
|
DOCUMENT_ROOT | "/share/public"
|
DOCUMENT_URI | "/index.php"
|
REQUEST_URI | "/ancient/engineering.html"
|
SCRIPT_NAME | "/index.php"
|
CONTENT_LENGTH | "" |
CONTENT_TYPE | "" |
REQUEST_METHOD | "GET"
|
QUERY_STRING | "" |
SCRIPT_FILENAME | "/share/public/index.php"
|
FCGI_ROLE | "RESPONDER"
|
PHP_SELF | "/index.php"
|
REQUEST_TIME_FLOAT | 1738034451.894
|
REQUEST_TIME | 1738034451
|
argv | [] |
argc | 0
|
Key | Value |
USER | "www-data"
|
HOME | "/var/www"
|
HTTP_ACCEPT_ENCODING | "gzip, br, zstd, deflate"
|
HTTP_USER_AGENT | "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
|
HTTP_ACCEPT | "*/*"
|
HTTP_X_FORWARDED_PORT | "443"
|
HTTP_X_FORWARDED_SSL | "on"
|
HTTP_X_FORWARDED_PROTO | "https"
|
HTTP_X_FORWARDED_FOR | "52.15.233.83"
|
HTTP_X_REAL_IP | "52.15.233.83"
|
HTTP_CONNECTION | "close"
|
HTTP_HOST | "prasatsurin.srru.ac.th"
|
REDIRECT_STATUS | "200"
|
SERVER_NAME | "" |
SERVER_PORT | "80"
|
SERVER_ADDR | "172.201.0.48"
|
REMOTE_PORT | "46964"
|
REMOTE_ADDR | "172.201.0.8"
|
SERVER_SOFTWARE | "nginx/1.15.8"
|
GATEWAY_INTERFACE | "CGI/1.1"
|
REQUEST_SCHEME | "http"
|
SERVER_PROTOCOL | "HTTP/1.1"
|
DOCUMENT_ROOT | "/share/public"
|
DOCUMENT_URI | "/index.php"
|
REQUEST_URI | "/ancient/engineering.html"
|
SCRIPT_NAME | "/index.php"
|
CONTENT_LENGTH | "" |
CONTENT_TYPE | "" |
REQUEST_METHOD | "GET"
|
QUERY_STRING | "" |
SCRIPT_FILENAME | "/share/public/index.php"
|
FCGI_ROLE | "RESPONDER"
|
PHP_SELF | "/index.php"
|
REQUEST_TIME_FLOAT | 1738034451.894
|
REQUEST_TIME | 1738034451
|
argv | [] |
argc | 0
|