/data
/wwwroot
/kuaijiwenda
/app
/helpers.php
setcookie($cookie,'',0,'/','.kuaiji.com');
unset($_COOKIE[$cookie]);
}
//清除权限
request()->session()->forget('user_permissions');
}
}
/*通过jwt加密信息获取session_key*/
function get_ucenter_session_key($authCode){
return (new UcenterService())->getSessionKey($authCode);
}
/*本地注册用户*/
function user_local_register($request, $userId){
//用户注册来源
$userOpen = (new \App\Services\UcenterService())->getUcenterUser($userId);
$data = array();
$data['id'] = $userOpen['userid'];
$data['name'] = $userOpen['username'];//昵称
$data['username'] = $userOpen['username'];//账户
$data['status'] = 1;
$data['visit_ip'] = getUserRealIp($request);
$data['password'] = rand(100000 , 999999); //生成随机密码;
$data['register_source'] = session('register_source');//用户注册来源
$data['wechat_openid'] = '';//如果有openid,就记录
//创建用户
$data['password'] = Hash::make($data['password']);
$data['site_notifications'] = implode(',', array_keys(config('tipask.notification_types')));
$data['email_notifications'] = 'adopt_answer,invite_answer';
$registerSourceType = 1;
if (isset($data['register_source_type'])) {
$registerSourceType = $data['register_source_type'];
}
$user = User::create($data);
if ($user) {
$userData = [
'user_id' => $user->id,
Arguments
"Undefined index: userid"
/data
/wwwroot
/kuaijiwenda
/app
/helpers.php
setcookie($cookie,'',0,'/','.kuaiji.com');
unset($_COOKIE[$cookie]);
}
//清除权限
request()->session()->forget('user_permissions');
}
}
/*通过jwt加密信息获取session_key*/
function get_ucenter_session_key($authCode){
return (new UcenterService())->getSessionKey($authCode);
}
/*本地注册用户*/
function user_local_register($request, $userId){
//用户注册来源
$userOpen = (new \App\Services\UcenterService())->getUcenterUser($userId);
$data = array();
$data['id'] = $userOpen['userid'];
$data['name'] = $userOpen['username'];//昵称
$data['username'] = $userOpen['username'];//账户
$data['status'] = 1;
$data['visit_ip'] = getUserRealIp($request);
$data['password'] = rand(100000 , 999999); //生成随机密码;
$data['register_source'] = session('register_source');//用户注册来源
$data['wechat_openid'] = '';//如果有openid,就记录
//创建用户
$data['password'] = Hash::make($data['password']);
$data['site_notifications'] = implode(',', array_keys(config('tipask.notification_types')));
$data['email_notifications'] = 'adopt_answer,invite_answer';
$registerSourceType = 1;
if (isset($data['register_source_type'])) {
$registerSourceType = $data['register_source_type'];
}
$user = User::create($data);
if ($user) {
$userData = [
'user_id' => $user->id,
Arguments
8
"Undefined index: userid"
"/data/wwwroot/kuaijiwenda/app/helpers.php"
962
array:4 [
"request" => Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
"userId" => "5725503"
"userOpen" => []
"data" => []
]
/data
/wwwroot
/kuaijiwenda
/app
/Http
/Controllers
/Account
/KJSpaceController.php
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\View;
class KJSpaceController extends ClientController
{
protected $user;
//分页
protected $pagesize = 10;
public function __construct(Request $request){
//重载父类cms头
parent::__construct($request);
$userId = $request->route()->parameter('user_id');
$user = User::with('userData')->find($userId);
if(!$user){
$user = user_local_register($request, $userId);
!$user && abort(404);
}
// 获取用户中心信息
$ucenterUsers = (new UcenterService())->getUcenterUserList([$userId]);
if (!empty($ucenterUsers)) {
foreach ($ucenterUsers as $item) {
if ($item['userid'] == $user->id) {
$user->name = $item['nickname'];
$user->email = isset($item['email']) && $item['email'] ? : $user->email;
$user->mobile = isset($item['mobile']) && $item['mobile'] ? : $user->mobile;
$user->gender = isset($user->gender) && $user->gender ? : $item['gender'];
$user->birthday = isset($user->birthday) && $user->birthday ? : $item['birthday'];
$user->province = isset($user->province) && $user->province ? : $item['province'];
$user->city = isset($user->city) && $user->city ? : $item['city'];
$user->title = isset($user->title) && $user->title ? : $item['occupation'];
$user->description = isset($user->description) && $user->description ? : $item['introduction'];
$user->avatars = isset($item['avatars']) && $item['avatars'] ? : $user->avatars;
}
}
}
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
"5725503"
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Container
/Container.php
// we can just resolve the instances of the objects right away, without
// resolving any other types or dependencies out of these containers.
if (is_null($constructor)) {
array_pop($this->buildStack);
return new $concrete;
}
$dependencies = $constructor->getParameters();
// Once we have all the constructor's parameters we can create each of the
// dependency instances and then use the reflection instances to make a
// new instance of this class, injecting the created dependencies in.
$instances = $this->resolveDependencies(
$dependencies
);
array_pop($this->buildStack);
return $reflector->newInstanceArgs($instances);
}
/**
* Resolve all of the dependencies from the ReflectionParameters.
*
* @param array $dependencies
* @return array
*/
protected function resolveDependencies(array $dependencies)
{
$results = [];
foreach ($dependencies as $dependency) {
// If this dependency has a override for this particular build we will use
// that instead as the value. Otherwise, we will continue with this run
// of resolutions and let reflection attempt to determine the result.
if ($this->hasParameterOverride($dependency)) {
$results[] = $this->getParameterOverride($dependency);
continue;
Arguments
array:1 [
0 => Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
]
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Container
/Container.php
$needsContextualBuild = ! empty($parameters) || ! is_null(
$this->getContextualConcrete($abstract)
);
// If an instance of the type is currently being managed as a singleton we'll
// just return an existing instance instead of instantiating new instances
// so the developer can keep using the same objects instance every time.
if (isset($this->instances[$abstract]) && ! $needsContextualBuild) {
return $this->instances[$abstract];
}
$this->with[] = $parameters;
$concrete = $this->getConcrete($abstract);
// We're ready to instantiate an instance of the concrete type registered for
// the binding. This will instantiate the types, as well as resolve any of
// its "nested" dependencies recursively until all have gotten resolved.
if ($this->isBuildable($concrete, $abstract)) {
$object = $this->build($concrete);
} else {
$object = $this->make($concrete);
}
// If we defined any extenders for this type, we'll need to spin through them
// and apply them to the object being built. This allows for the extension
// of services, such as changing configuration or decorating the object.
foreach ($this->getExtenders($abstract) as $extender) {
$object = $extender($object, $this);
}
// If the requested type is registered as a singleton we'll want to cache off
// the instances in "memory" so we can return it later without creating an
// entirely new instance of an object on each subsequent request for it.
if ($this->isShared($abstract) && ! $needsContextualBuild) {
$this->instances[$abstract] = $object;
}
$this->fireResolvingCallbacks($abstract, $object);
Arguments
"App\Http\Controllers\Account\KJSpaceController"
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Container
/Container.php
*
* @param string $abstract
* @param array $parameters
* @return mixed
*/
public function makeWith($abstract, array $parameters = [])
{
return $this->make($abstract, $parameters);
}
/**
* Resolve the given type from the container.
*
* @param string $abstract
* @param array $parameters
* @return mixed
*/
public function make($abstract, array $parameters = [])
{
return $this->resolve($abstract, $parameters);
}
/**
* {@inheritdoc}
*/
public function get($id)
{
if ($this->has($id)) {
return $this->resolve($id);
}
throw new EntryNotFoundException;
}
/**
* Resolve the given type from the container.
*
* @param string $abstract
* @param array $parameters
* @return mixed
Arguments
"App\Http\Controllers\Account\KJSpaceController"
[]
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Foundation
/Application.php
}
/**
* Resolve the given type from the container.
*
* (Overriding Container::make)
*
* @param string $abstract
* @param array $parameters
* @return mixed
*/
public function make($abstract, array $parameters = [])
{
$abstract = $this->getAlias($abstract);
if (isset($this->deferredServices[$abstract]) && ! isset($this->instances[$abstract])) {
$this->loadDeferredProvider($abstract);
}
return parent::make($abstract, $parameters);
}
/**
* Determine if the given abstract type has been bound.
*
* (Overriding Container::bound)
*
* @param string $abstract
* @return bool
*/
public function bound($abstract)
{
return isset($this->deferredServices[$abstract]) || parent::bound($abstract);
}
/**
* Determine if the application has booted.
*
* @return bool
*/
Arguments
"App\Http\Controllers\Account\KJSpaceController"
[]
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Route.php
* @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;
}
/**
* Get the controller method used for the route.
*
* @return string
*/
protected function getControllerMethod()
{
return $this->parseControllerCallback()[1];
}
/**
* Parse the controller.
*
* @return array
*/
Arguments
"App\Http\Controllers\Account\KJSpaceController"
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Route.php
$this->action['middleware'] = array_merge(
(array) ($this->action['middleware'] ?? []), $middleware
);
return $this;
}
/**
* Get the middleware for the route's controller.
*
* @return array
*/
public function controllerMiddleware()
{
if (! $this->isControllerAction()) {
return [];
}
return $this->controllerDispatcher()->getMiddleware(
$this->getController(), $this->getControllerMethod()
);
}
/**
* Get the dispatcher for the route's controller.
*
* @return \Illuminate\Routing\Contracts\ControllerDispatcher
*/
public function controllerDispatcher()
{
if ($this->container->bound(ControllerDispatcherContract::class)) {
return $this->container->make(ControllerDispatcherContract::class);
}
return new ControllerDispatcher($this->container);
}
/**
* Get the route validators for the instance.
*
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Route.php
$this->action = $action;
return $this;
}
/**
* Get all middleware, including the ones from the controller.
*
* @return array
*/
public function gatherMiddleware()
{
if (! is_null($this->computedMiddleware)) {
return $this->computedMiddleware;
}
$this->computedMiddleware = [];
return $this->computedMiddleware = array_unique(array_merge(
$this->middleware(), $this->controllerMiddleware()
), SORT_REGULAR);
}
/**
* Get or set the middlewares attached to the route.
*
* @param array|string|null $middleware
* @return $this|array
*/
public function middleware($middleware = null)
{
if (is_null($middleware)) {
return (array) ($this->action['middleware'] ?? []);
}
if (is_string($middleware)) {
$middleware = func_get_args();
}
$this->action['middleware'] = array_merge(
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Router.php
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.
*
* @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.
*
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Router.php
$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)
->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) {
Arguments
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Router.php
return $route;
}
/**
* Return the response for the given route.
*
* @param \Illuminate\Http\Request $request
* @param \Illuminate\Routing\Route $route
* @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)
Arguments
Route {#790}
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Router.php
*
* @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.
*
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Route {#790}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Router.php
* @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)
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Foundation
/Http
/Kernel.php
* @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.
*
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Pipeline.php
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();
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Session
/Middleware
/StartSession.php
* @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
*/
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Pipeline
/Pipeline.php
// 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];
}
$response = method_exists($pipe, $this->method)
? $pipe->{$this->method}(...$parameters)
: $pipe(...$parameters);
return $response instanceof Responsable
? $response->toResponse($this->container->make(Request::class))
: $response;
};
};
}
/**
* 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)) {
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure($passable) {#1230 …6}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Pipeline.php
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)
{
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Cookie
/Middleware
/EncryptCookies.php
* 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);
}
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Pipeline
/Pipeline.php
// 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];
}
$response = method_exists($pipe, $this->method)
? $pipe->{$this->method}(...$parameters)
: $pipe(...$parameters);
return $response instanceof Responsable
? $response->toResponse($this->container->make(Request::class))
: $response;
};
};
}
/**
* 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)) {
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure($passable) {#1060 …6}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Pipeline.php
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)
{
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/data
/wwwroot
/kuaijiwenda
/app
/Http
/Middleware
/BanIpCheck.php
* @return mixed
*/
public function handle($request, Closure $next)
{
$ip = getUserRealIp($request);
$ips = Cache::rememberForever('ip_blacklist', function () {
if (!file_exists(storage_path('installed'))) {
return [];
}
return BanIp::all()->pluck('ip')->toArray();
});
if (Auth::check() && !Auth::user()->isSuperAdmin()) {
if (in_array($ip, $ips)) {
abort('403');
return false;
}
}
return $next($request);
}
}
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Pipeline
/Pipeline.php
// 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];
}
$response = method_exists($pipe, $this->method)
? $pipe->{$this->method}(...$parameters)
: $pipe(...$parameters);
return $response instanceof Responsable
? $response->toResponse($this->container->make(Request::class))
: $response;
};
};
}
/**
* 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)) {
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure($passable) {#1061 …6}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Pipeline.php
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)
{
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/data
/wwwroot
/kuaijiwenda
/app
/Http
/Middleware
/TrustProxies.php
{
/**
* The trusted proxies for this application.
*
* @var array
*/
protected $proxies;
/**
* The headers that should be used to detect proxies.
*
* @var int
*/
protected $headers = Request::HEADER_X_FORWARDED_ALL;
public function handle(Request $request, Closure $next)
{
$request->setTrustedProxies($request->getClientIps(), $this->headers);
return $next($request);
}
}
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Pipeline
/Pipeline.php
// 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];
}
$response = method_exists($pipe, $this->method)
? $pipe->{$this->method}(...$parameters)
: $pipe(...$parameters);
return $response instanceof Responsable
? $response->toResponse($this->container->make(Request::class))
: $response;
};
};
}
/**
* 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)) {
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure($passable) {#2406 …6}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Pipeline.php
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)
{
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Foundation
/Http
/Middleware
/TransformsRequest.php
*
* @var array
*/
protected $attributes = [];
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param array ...$attributes
* @return mixed
*/
public function handle($request, Closure $next, ...$attributes)
{
$this->attributes = $attributes;
$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());
} else {
$this->cleanParameterBag($request->request);
}
}
/**
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Pipeline
/Pipeline.php
// 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];
}
$response = method_exists($pipe, $this->method)
? $pipe->{$this->method}(...$parameters)
: $pipe(...$parameters);
return $response instanceof Responsable
? $response->toResponse($this->container->make(Request::class))
: $response;
};
};
}
/**
* 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)) {
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure($passable) {#2407 …6}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Pipeline.php
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)
{
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Foundation
/Http
/Middleware
/TransformsRequest.php
*
* @var array
*/
protected $attributes = [];
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param array ...$attributes
* @return mixed
*/
public function handle($request, Closure $next, ...$attributes)
{
$this->attributes = $attributes;
$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());
} else {
$this->cleanParameterBag($request->request);
}
}
/**
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Pipeline
/Pipeline.php
// 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];
}
$response = method_exists($pipe, $this->method)
? $pipe->{$this->method}(...$parameters)
: $pipe(...$parameters);
return $response instanceof Responsable
? $response->toResponse($this->container->make(Request::class))
: $response;
};
};
}
/**
* 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)) {
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure($passable) {#2408 …6}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Pipeline.php
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)
{
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Foundation
/Http
/Middleware
/ValidatePostSize.php
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':
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Pipeline
/Pipeline.php
// 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];
}
$response = method_exists($pipe, $this->method)
? $pipe->{$this->method}(...$parameters)
: $pipe(...$parameters);
return $response instanceof Responsable
? $response->toResponse($this->container->make(Request::class))
: $response;
};
};
}
/**
* 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)) {
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure($passable) {#2409 …6}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Pipeline.php
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)
{
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Foundation
/Http
/Middleware
/CheckForMaintenanceMode.php
*
* @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;
}
}
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Pipeline
/Pipeline.php
// 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];
}
$response = method_exists($pipe, $this->method)
? $pipe->{$this->method}(...$parameters)
: $pipe(...$parameters);
return $response instanceof Responsable
? $response->toResponse($this->container->make(Request::class))
: $response;
};
};
}
/**
* 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)) {
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure($passable) {#2410 …6}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Pipeline.php
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)
{
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Pipeline
/Pipeline.php
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
*/
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Foundation
/Http
/Kernel.php
}
/**
* 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()
Arguments
Closure($request) {#796 …5}
/data
/wwwroot
/kuaijiwenda
/vendor
/laravel
/framework
/src
/Illuminate
/Foundation
/Http
/Kernel.php
$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.
*
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/data
/wwwroot
/kuaijiwenda
/public
/index.php
//加载不同环境env
$app->loadEnvironmentFrom(ENV_FILE);
/*
|--------------------------------------------------------------------------
| 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);
Arguments
Request {#1219
#json: null
#convertedFiles: []
#userResolver: Closure($guard = null) {#2470 …6}
#routeResolver: Closure() {#2464 …5}
+attributes: ParameterBag {#1217}
+request: ParameterBag {#1211}
+query: ParameterBag {#1211}
+server: ServerBag {#1215}
+files: FileBag {#1214}
+cookies: ParameterBag {#1216}
+headers: HeaderBag {#1213}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ask/people/5725503/followed/users"
#requestUri: "/ask/people/5725503/followed/users"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#2459}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}