<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Carbon; use Illuminate\Support\Facades\App; use App\Model\Product; use Intervention\Image\Facades\Image; class ShowImgController extends Controller { public function __invoke($id,$type=0,$cid=0){ header("Cache-Control: private, max-age=10800"); $pic = Product::where('id',$id)->select('picture','pictures')->first(); if($pic && $pic['picture']){ if($type==1 && $cid==0){ if($c_img = cache('pro_big_img_'.$id)){ header("content-type:image/".$c_img['ext']); exit($c_img['src']); } $wt = Image::make(App::basePath().'\\public\\images\\logo.png')->resize(100, 100)->opacity(100); $img = Image::make(App::basePath().'\\public\\uploads\\'.$pic['picture'])->insert($wt,'bottom-right', 10, 10); cache(['pro_big_img_'.$id => ['src'=>$img->encode($img->extension),'ext'=>$img->extension]], 60 * 24); header("content-type:image/".$img->extension); exit($img->encode($img->extension)); }elseif($type==1 && $cid > 0 && $pics = $pic['pictures']){ if($c_img = cache('pro_bigs_img_'.$id.'_'.$cid)){ header("content-type:image/".$c_img['ext']); exit($c_img['src']); } $wt = Image::make(App::basePath().'\\public\\images\\logo.png')->resize(100, 100)->opacity(100); $img = Image::make(App::basePath().'\\public\\uploads\\'.$pics[$cid-1])->insert($wt,'bottom-right', 10, 10); cache(['pro_bigs_img_'.$id.'_'.$cid => ['src'=>$img->encode($img->extension),'ext'=>$img->extension]], 60 * 24); header("content-type:image/".$img->extension); exit($img->encode($img->extension)); }else{ if($c_img = cache('pro_small_img_'.$id)){ header("content-type:image/".$c_img['ext']); exit($c_img['src']); } $wt = Image::make(App::basePath().'\\public\\images\\logo.png')->resize(52, 52)->opacity(100);
"Cannot modify header information - headers already sent by (output started at D:\webroot\pt168.com.cn\public\index.php:1)"
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Carbon; use Illuminate\Support\Facades\App; use App\Model\Product; use Intervention\Image\Facades\Image; class ShowImgController extends Controller { public function __invoke($id,$type=0,$cid=0){ header("Cache-Control: private, max-age=10800"); $pic = Product::where('id',$id)->select('picture','pictures')->first(); if($pic && $pic['picture']){ if($type==1 && $cid==0){ if($c_img = cache('pro_big_img_'.$id)){ header("content-type:image/".$c_img['ext']); exit($c_img['src']); } $wt = Image::make(App::basePath().'\\public\\images\\logo.png')->resize(100, 100)->opacity(100); $img = Image::make(App::basePath().'\\public\\uploads\\'.$pic['picture'])->insert($wt,'bottom-right', 10, 10); cache(['pro_big_img_'.$id => ['src'=>$img->encode($img->extension),'ext'=>$img->extension]], 60 * 24); header("content-type:image/".$img->extension); exit($img->encode($img->extension)); }elseif($type==1 && $cid > 0 && $pics = $pic['pictures']){ if($c_img = cache('pro_bigs_img_'.$id.'_'.$cid)){ header("content-type:image/".$c_img['ext']); exit($c_img['src']); } $wt = Image::make(App::basePath().'\\public\\images\\logo.png')->resize(100, 100)->opacity(100); $img = Image::make(App::basePath().'\\public\\uploads\\'.$pics[$cid-1])->insert($wt,'bottom-right', 10, 10); cache(['pro_bigs_img_'.$id.'_'.$cid => ['src'=>$img->encode($img->extension),'ext'=>$img->extension]], 60 * 24); header("content-type:image/".$img->extension); exit($img->encode($img->extension)); }else{ if($c_img = cache('pro_small_img_'.$id)){ header("content-type:image/".$c_img['ext']); exit($c_img['src']); } $wt = Image::make(App::basePath().'\\public\\images\\logo.png')->resize(52, 52)->opacity(100);
"Cache-Control: private, max-age=10800"
/** * Get the middleware assigned to the controller. * * @return array */ public function getMiddleware() { return $this->middleware; } /** * Execute an action on the controller. * * @param string $method * @param array $parameters * @return \Symfony\Component\HttpFoundation\Response */ public function callAction($method, $parameters) { return call_user_func_array([$this, $method], $parameters); } /** * Handle calls to missing methods on the controller. * * @param string $method * @param array $parameters * @return mixed * * @throws \BadMethodCallException */ public function __call($method, $parameters) { throw new BadMethodCallException("Method [{$method}] does not exist on [".get_class($this).'].'); } }
"95"
0
0
/** * Get the middleware assigned to the controller. * * @return array */ public function getMiddleware() { return $this->middleware; } /** * Execute an action on the controller. * * @param string $method * @param array $parameters * @return \Symfony\Component\HttpFoundation\Response */ public function callAction($method, $parameters) { return call_user_func_array([$this, $method], $parameters); } /** * Handle calls to missing methods on the controller. * * @param string $method * @param array $parameters * @return mixed * * @throws \BadMethodCallException */ public function __call($method, $parameters) { throw new BadMethodCallException("Method [{$method}] does not exist on [".get_class($this).'].'); } }
array:2 [ 0 => ShowImgController {#7421} 1 => "__invoke" ]
array:3 [ "id" => "95" 0 => 0 1 => 0 ]
{ $this->container = $container; } /** * Dispatch a request to a given controller and method. * * @param \Illuminate\Routing\Route $route * @param mixed $controller * @param string $method * @return mixed */ public function dispatch(Route $route, $controller, $method) { $parameters = $this->resolveClassMethodDependencies( $route->parametersWithoutNulls(), $controller, $method ); if (method_exists($controller, 'callAction')) { return $controller->callAction($method, $parameters); } return $controller->{$method}(...array_values($parameters)); } /** * Get the middleware for the controller instance. * * @param \Illuminate\Routing\Controller $controller * @param string $method * @return array */ public function getMiddleware($controller, $method) { if (! method_exists($controller, 'getMiddleware')) { return []; } return collect($controller->getMiddleware())->reject(function ($data) use ($method) { return static::methodExcludedByOptions($method, $data['options']);
"__invoke"
array:3 [ "id" => "95" 0 => 0 1 => 0 ]
protected function runCallable() { $callable = $this->action['uses']; return $callable(...array_values($this->resolveMethodDependencies( $this->parametersWithoutNulls(), new ReflectionFunction($this->action['uses']) ))); } /** * Run the route action and return the response. * * @return mixed * * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException */ protected function runController() { return $this->controllerDispatcher()->dispatch( $this, $this->getController(), $this->getControllerMethod() ); } /** * Get the controller instance for the route. * * @return mixed */ public function getController() { if (! $this->controller) { $class = $this->parseControllerCallback()[0]; $this->controller = $this->container->make(ltrim($class, '\\')); } return $this->controller; } /**
* * @throws \UnexpectedValueException */ protected function parseAction($action) { return RouteAction::parse($this->uri, $action); } /** * Run the route action and return the response. * * @return mixed */ public function run() { $this->container = $this->container ?: new Container; try { if ($this->isControllerAction()) { return $this->runController(); } return $this->runCallable(); } catch (HttpResponseException $e) { return $e->getResponse(); } } /** * Checks whether the route's action is a controller. * * @return bool */ protected function isControllerAction() { return is_string($this->action['uses']); } /** * Run the route action and return the response.
/** * 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); } /**
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 {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #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 {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #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)) { list($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]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#7435 : "Illuminate\Routing\Pipeline" : Pipeline {#7432 …} : { : {} } : { : Closure {#7433 …} } }
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 {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #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 $this->addCookieToResponse($request, $next($request)); } throw new TokenMismatchException; } /** * 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']); } /** * Determine if the application is running unit tests. * * @return bool
Request {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #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)) { list($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]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#7436 : "Illuminate\Routing\Pipeline" : Pipeline {#7432 …} : { : {} } : { : Closure {#7435 …} : "Illuminate\Routing\Middleware\SubstituteBindings" } }
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 {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #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 {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #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)) { list($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]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#7437 : "Illuminate\Routing\Pipeline" : Pipeline {#7432 …} : { : {} } : { : Closure {#7436 …} : "App\Http\Middleware\VerifyCsrfToken" } }
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 {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #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) { $this->sessionHandled = true; // 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. if ($this->sessionConfigured()) { $request->setLaravelSession( $session = $this->startSession($request) ); $this->collectGarbage($session); } $response = $next($request); // 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. if ($this->sessionConfigured()) { $this->storeCurrentUrl($request, $session); $this->addCookieToResponse($response, $session); } return $response; } /** * Perform any final actions for the request lifecycle. * * @param \Illuminate\Http\Request $request * @param \Symfony\Component\HttpFoundation\Response $response * @return void */
Request {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #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)) { list($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]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#7438 : "Illuminate\Routing\Pipeline" : Pipeline {#7432 …} : { : {} } : { : Closure {#7437 …} : "Illuminate\View\Middleware\ShareErrorsFromSession" } }
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 {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #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 {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #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)) { list($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]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#7439 : "Illuminate\Routing\Pipeline" : Pipeline {#7432 …} : { : {} } : { : Closure {#7438 …} : "Illuminate\Session\Middleware\StartSession" } }
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 {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* Disable encryption for the given cookie name(s). * * @param string|array $cookieName * @return void */ public function disableFor($cookieName) { $this->except = array_merge($this->except, (array) $cookieName); } /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ 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 => $c) { if ($this->isDisabled($key)) { continue; } try { $request->cookies->set($key, $this->decryptCookie($c)); } catch (DecryptException $e) { $request->cookies->set($key, null); }
Request {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #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)) { list($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]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#7440 : "Illuminate\Routing\Pipeline" : Pipeline {#7432 …} : { : {} } : { : Closure {#7439 …} : "Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse" } }
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 {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #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); } /** * Get the final piece of the Closure onion. * * @param \Closure $destination * @return \Closure */ protected function prepareDestination(Closure $destination) { return function ($passable) use ($destination) { return $destination($passable); }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */
Request {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #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. *
return $route; } /** * Return the response for the given route. * * @param Route $route * @param Request $request * @return mixed */ 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 {#6877}
Request {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #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 mixed */ 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 {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Route {#6877}
* @return mixed */ 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 mixed */ 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 {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #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 {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #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 {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #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, Closure $next) { $this->setTrustedProxyHeaderNames($request); $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) { $trustedIps = $this->proxies ?: $this->config->get('trustedproxy.proxies'); // We only trust specific IP addresses if (is_array($trustedIps)) { return $this->setTrustedProxyIpAddressesToSpecificIps($request, $trustedIps); } // We trust any IP address that calls us, but not proxies further // up the forwarding chain. // TODO: Determine if this should only trust the first IP address // Currently it trusts the entire chain (array of IPs),
Request {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #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)) { list($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]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#6885 : "Illuminate\Routing\Pipeline" : Pipeline {#6882 …} : { : {} } : { : Closure {#6883 …} } }
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 {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #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 {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #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)) { list($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]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#6886 : "Illuminate\Routing\Pipeline" : Pipeline {#6882 …} : { : {} } : { : Closure {#6885 …} : "App\Http\Middleware\TrustProxies" } }
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 {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
} /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed * * @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); throw new MaintenanceModeException($data['time'], $data['retry'], $data['message']); } return $next($request); } }
Request {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #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)) { list($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]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#6887 : "Illuminate\Routing\Pipeline" : Pipeline {#6882 …} : { : {} } : { : Closure {#6886 …} : "Illuminate\Foundation\Http\Middleware\ValidatePostSize" } }
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 {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #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); } /** * Get the final piece of the Closure onion. * * @param \Closure $destination * @return \Closure */ protected function prepareDestination(Closure $destination) { return function ($passable) use ($destination) { return $destination($passable); }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */
Request {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #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()
$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 {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #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 {#55 #json: null #convertedFiles: null #userResolver: Closure {#6910 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#134 …} : { : { : null } } : { : Application {#5 …} } } #routeResolver: Closure {#7417 : "Illuminate\Routing\Router" : Router {#34 …} : { : Route {#6877 …} } } +attributes: ParameterBag {#65} +request: ParameterBag {#63} +query: ParameterBag {#63} +server: ServerBag {#67} +files: FileBag {#60} +cookies: ParameterBag {#66} +headers: HeaderBag {#68} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/lucheng245/s/95.jpg" #requestUri: "/lucheng245/s/95.jpg" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#7474} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Key | Value |
fikker-KEPi-Z7Xa | "BsBSbwRLNOhAxs6UKNM9KWTshGBARUhu"
|
Key | Value |
_FCGI_X_PIPE_ | "\\.\pipe\IISFCGI-c56a58ea-ff1f-4942-a2e4-f7441b9bd9df"
|
PHP_FCGI_MAX_REQUESTS | "10000"
|
PHPRC | "C:\Program Files\iis express\PHP\v7.2"
|
ALLUSERSPROFILE | "C:\ProgramData"
|
APPDATA | "C:\Windows\system32\config\systemprofile\AppData\Roaming"
|
APP_POOL_CONFIG | "C:\inetpub\temp\apppools\pt168\pt168.config"
|
APP_POOL_ID | "pt168"
|
CommonProgramFiles | "C:\Program Files\Common Files"
|
CommonProgramFiles(x86) | "C:\Program Files (x86)\Common Files"
|
CommonProgramW6432 | "C:\Program Files\Common Files"
|
COMPUTERNAME | "iZand5kvnp9931Z"
|
ComSpec | "C:\Windows\system32\cmd.exe"
|
FP_NO_HOST_CHECK | "NO"
|
LOCALAPPDATA | "C:\Windows\system32\config\systemprofile\AppData\Local"
|
NUMBER_OF_PROCESSORS | "4"
|
OS | "Windows_NT"
|
Path | "C:\Program Files\PHP\v5.3;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files\iis express\PHP\v7.2;C:\Program Files\nodejs\;"
|
PATHEXT | ".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC"
|
PROCESSOR_ARCHITECTURE | "AMD64"
|
PROCESSOR_IDENTIFIER | "Intel64 Family 6 Model 79 Stepping 1, GenuineIntel"
|
PROCESSOR_LEVEL | "6"
|
PROCESSOR_REVISION | "4f01"
|
ProgramData | "C:\ProgramData"
|
ProgramFiles | "C:\Program Files"
|
ProgramFiles(x86) | "C:\Program Files (x86)"
|
ProgramW6432 | "C:\Program Files"
|
PSModulePath | "C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules"
|
PUBLIC | "C:\Users\Public"
|
SystemDrive | "C:"
|
SystemRoot | "C:\Windows"
|
TEMP | "C:\Windows\TEMP"
|
TMP | "C:\Windows\TEMP"
|
USERDOMAIN | "WORKGROUP"
|
USERNAME | "iZand5kvnp9931Z$"
|
USERPROFILE | "C:\Windows\system32\config\systemprofile"
|
windir | "C:\Windows"
|
windows_tracing_flags | "3"
|
windows_tracing_logfile | "C:\BVTBin\Tests\installpackage\csilogfile.log"
|
ORIG_PATH_INFO | "/index.php"
|
URL | "/index.php"
|
SERVER_SOFTWARE | "Microsoft-IIS/7.5"
|
SERVER_PROTOCOL | "HTTP/1.1"
|
SERVER_PORT_SECURE | "0"
|
SERVER_PORT | "80"
|
SERVER_NAME | "www.pt168.com.cn"
|
SCRIPT_NAME | "/index.php"
|
SCRIPT_FILENAME | "D:\webroot\pt168.com.cn\public\index.php"
|
REQUEST_URI | "/lucheng245/s/95.jpg"
|
REQUEST_METHOD | "GET"
|
REMOTE_USER | "" |
REMOTE_PORT | "16176"
|
REMOTE_HOST | "18.216.154.39"
|
REMOTE_ADDR | "18.216.154.39"
|
QUERY_STRING | "" |
PATH_TRANSLATED | "D:\webroot\pt168.com.cn\public\index.php"
|
LOGON_USER | "" |
LOCAL_ADDR | "172.17.200.47"
|
INSTANCE_META_PATH | "/LM/W3SVC/5"
|
INSTANCE_NAME | "WWW.PT168.COM.CN"
|
INSTANCE_ID | "5"
|
HTTPS_SERVER_SUBJECT | "" |
HTTPS_SERVER_ISSUER | "" |
HTTPS_SECRETKEYSIZE | "" |
HTTPS_KEYSIZE | "" |
HTTPS | "off"
|
GATEWAY_INTERFACE | "CGI/1.1"
|
DOCUMENT_ROOT | "D:\webroot\pt168.com.cn\public"
|
CONTENT_TYPE | "" |
CONTENT_LENGTH | "0"
|
CERT_SUBJECT | "" |
CERT_SERIALNUMBER | "" |
CERT_ISSUER | "" |
CERT_FLAGS | "" |
CERT_COOKIE | "" |
AUTH_USER | "" |
AUTH_PASSWORD | "" |
AUTH_TYPE | "" |
APPL_PHYSICAL_PATH | "D:\webroot\pt168.com.cn\public\"
|
APPL_MD_PATH | "/LM/W3SVC/5/ROOT"
|
IIS_UrlRewriteModule | "7,1,1993,2351"
|
UNENCODED_URL | "/lucheng245/s/95.jpg"
|
IIS_WasUrlRewritten | "1"
|
HTTP_X_ORIGINAL_URL | "/lucheng245/s/95.jpg"
|
HTTP_USER_AGENT | "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
|
HTTP_HOST | "www.pt168.com.cn"
|
HTTP_COOKIE | "fikker-KEPi-Z7Xa=BsBSbwRLNOhAxs6UKNM9KWTshGBARUhu"
|
HTTP_ACCEPT_ENCODING | "gzip, br, zstd, deflate"
|
HTTP_ACCEPT | "*/*"
|
HTTP_CONTENT_LENGTH | "0"
|
FCGI_ROLE | "RESPONDER"
|
PHP_SELF | "/index.php"
|
REQUEST_TIME_FLOAT | 1715880800.9521
|
REQUEST_TIME | 1715880800
|
APP_NAME | "Laravel"
|
APP_ENV | "production"
|
APP_KEY | "base64:vhdpeObJr/ZK9gl+4iR55tiIeUpjtoe59rwQ0EojYmI="
|
APP_DEBUG | "true"
|
APP_LOG_LEVEL | "error"
|
APP_URL | "http://www.pt168.com.cn/"
|
DB_CONNECTION | "mysql"
|
DB_HOST | "127.0.0.1"
|
DB_PORT | "3306"
|
DB_DATABASE | "zh17_zh"
|
DB_USERNAME | "root"
|
DB_PASSWORD | "zhongying"
|
BROADCAST_DRIVER | "log"
|
CACHE_DRIVER | "file"
|
SESSION_DRIVER | "file"
|
SESSION_LIFETIME | "120"
|
QUEUE_DRIVER | "sync"
|
REDIS_HOST | "127.0.0.1"
|
REDIS_PASSWORD | "null"
|
REDIS_PORT | "6379"
|
MAIL_DRIVER | "smtp"
|
MAIL_HOST | "smtp.mailtrap.io"
|
MAIL_PORT | "2525"
|
MAIL_USERNAME | "null"
|
MAIL_PASSWORD | "null"
|
MAIL_ENCRYPTION | "null"
|
PUSHER_APP_ID | "" |
PUSHER_APP_KEY | "" |
PUSHER_APP_SECRET | "" |
PUSHER_APP_CLUSTER | "mt1"
|
Key | Value |
APP_NAME | "Laravel"
|
APP_ENV | "production"
|
APP_KEY | "base64:vhdpeObJr/ZK9gl+4iR55tiIeUpjtoe59rwQ0EojYmI="
|
APP_DEBUG | "true"
|
APP_LOG_LEVEL | "error"
|
APP_URL | "http://www.pt168.com.cn/"
|
DB_CONNECTION | "mysql"
|
DB_HOST | "127.0.0.1"
|
DB_PORT | "3306"
|
DB_DATABASE | "zh17_zh"
|
DB_USERNAME | "root"
|
DB_PASSWORD | "zhongying"
|
BROADCAST_DRIVER | "log"
|
CACHE_DRIVER | "file"
|
SESSION_DRIVER | "file"
|
SESSION_LIFETIME | "120"
|
QUEUE_DRIVER | "sync"
|
REDIS_HOST | "127.0.0.1"
|
REDIS_PASSWORD | "null"
|
REDIS_PORT | "6379"
|
MAIL_DRIVER | "smtp"
|
MAIL_HOST | "smtp.mailtrap.io"
|
MAIL_PORT | "2525"
|
MAIL_USERNAME | "null"
|
MAIL_PASSWORD | "null"
|
MAIL_ENCRYPTION | "null"
|
PUSHER_APP_ID | "" |
PUSHER_APP_KEY | "" |
PUSHER_APP_SECRET | "" |
PUSHER_APP_CLUSTER | "mt1"
|