/raid
/case
/magnifiercomtw
/website
/app
/Model
/Repositories
/Product
/ProductCategoryRepository.php
/**
* 透過 ID 取得包含完整路徑的分類。
*
* @param int $id
* @param int|null $languageId
*
* @return ProductCategory
*/
public function findWithFullRoute($id, $languageId = null)
{
$languageId = $languageId ?: config('app.language_id');
$categories = $this->model->join('product_category_details as details', 'details.product_category_id', '=',
'product_categories.id')
->where('language_id', $languageId)
->get(['product_categories.*', 'details.name']);
$bottomCategory = $categories->where('id', $id)
->first();
$ids = json_decode($bottomCategory->route);
$routes = [];
if (is_array($ids)) {
foreach ($ids as $id) {
$category = $categories->where('id', '=', $id)
->first();
$routes[$category->id] = $category->name;
}
}
$routes[$bottomCategory->id] = $bottomCategory->name;
$bottomCategory->full_route = implode(' > ', $routes);
$bottomCategory->full_routes = $routes;
return $bottomCategory;
}
Arguments
"Trying to get property 'route' of non-object"
/raid
/case
/magnifiercomtw
/website
/app
/Model
/Repositories
/Product
/ProductCategoryRepository.php
/**
* 透過 ID 取得包含完整路徑的分類。
*
* @param int $id
* @param int|null $languageId
*
* @return ProductCategory
*/
public function findWithFullRoute($id, $languageId = null)
{
$languageId = $languageId ?: config('app.language_id');
$categories = $this->model->join('product_category_details as details', 'details.product_category_id', '=',
'product_categories.id')
->where('language_id', $languageId)
->get(['product_categories.*', 'details.name']);
$bottomCategory = $categories->where('id', $id)
->first();
$ids = json_decode($bottomCategory->route);
$routes = [];
if (is_array($ids)) {
foreach ($ids as $id) {
$category = $categories->where('id', '=', $id)
->first();
$routes[$category->id] = $category->name;
}
}
$routes[$bottomCategory->id] = $bottomCategory->name;
$bottomCategory->full_route = implode(' > ', $routes);
$bottomCategory->full_routes = $routes;
return $bottomCategory;
}
Arguments
8
"Trying to get property 'route' of non-object"
"/raid/case/magnifiercomtw/website/app/Model/Repositories/Product/ProductCategoryRepository.php"
272
array:4 [
"id" => 44
"languageId" => 7
"categories" => Collection {#1850}
"bottomCategory" => null
]
/raid
/case
/magnifiercomtw
/website
/app
/Services
/DefaultTitle
/Object
/ProductDefaultTitleFormat.php
/**
* 取得標題。
*
* @param DefaultTitleFormat $format
* @param int|null $languageId
* @param array $data
*
* @return mixed
*/
public function getTitle($format, $languageId = null, $data)
{
$product = $this->productRepository->findOrFailByIdLocale($data['id'], $languageId);
$title = $this->parseDefaultFormat($format, $languageId);
$title = $this->parseFormat($title, 'product_name', $product->name);
if (count($product->categories) > 0) {
$category =
$this->productCategoryRepository->findWithFullRoute($product->categories->first()->id, $languageId);
$routes = $category->full_routes ?? [];
if (array_last($routes) == $category->name) {
array_pop($routes);
}
$parentCategoryName = array_last($routes);
$topCategoryName = (array_first($routes) != $category->name) ? array_first($routes) : null;
$title = $this->parseFormat($title, 'current_category_name', $category->name);
$title = $this->parseFormat($title, 'parent_category_name', $parentCategoryName);
$title = $this->parseFormat($title, 'top_category_name', $topCategoryName);
// $title = $this->parseFormatNested($title, 'nested_category_name_asc,">"', $category->full_routes);
// $title = $this->parseFormatNested($title, 'nested_category_name_desc,">"', $category->full_routes);
}
return $title;
}
Arguments
/raid
/case
/magnifiercomtw
/website
/app
/Services
/DefaultTitle
/DefaultTitleFormatService.php
return $result;
}
/**
* 取得標題。
*
* @param string $sn
* @param int|null $languageId
* @param array $data
*
* @return mixed
*/
public function getTitle($sn, $languageId = null, $data = [])
{
$format = $this->defaultTitleFormatRepository->findBySn($sn, $languageId);
$object = DefaultTitleFormatFactory::create($format->type);
return $object->getTitle($format, $languageId, $data);
}
/**
* 更新預設標題格式。
*
* @param array $data
* @param int $id
*
* @return mixed
*/
public function updateDefaultTitleFormat($data, $id)
{
$data = collect($data);
// DefaultTitleFormat
$format = $this->defaultTitleFormatRepository->findOrFail($id);
// Detail
foreach ($data->get('name', []) as $languageId => $name) {
$scheme = implode(' ', $data->get('format')[$languageId] ?? []);
Arguments
DefaultTitleFormat {#1799}
null
array:1 [
"id" => 340
]
/raid
/case
/magnifiercomtw
/website
/app
/Http
/Controllers
/Frontend
/ProductsController.php
if (FeatureChecker::checkFeature(FeatureSnEnum::PRODUCT_OPTION)) {
$optionGroups = $this->productOptionService->getProductOptionGroups($product);
$optionCombinations = $this->productOptionService->getProductOptionCombinations($product);
}
// 取得分類資訊,讓頁面可以正確顯示麵包屑。
$category = $this->pageCategoryService->getPreviousPageCategory($product->categories);
// Page
// 選單 active 網址。
if (!is_null($category)) {
$activeUrlLists[] = action('Frontend\ProductCategoriesController@show', [$category->slug], false);
}
$menus = $this->menuTypeService->getMenuTypesInFrontend($activeUrlLists ?? []);
$defaultTitle = $cacheService->remember(CacheTypeEnum::FRONTEND_PRODUCT_DEFAULT_TITLE,
function () use ($product) {
return $this->defaultTitleFormatService->getTitle(DefaultTitleFormatSnEnum::PRODUCT, null,
['id' => $product->id]);
}, $request->getRequestUri());
$sideBar = $this->pageSidebarService->getPageSideBar($product, $menus, $category);
$pageBanner = $this->pageBannerService->getProductBanner($product, $category);
$breadcrumbs = Breadcrumb::generate('products', [$menus, $product, $category]);
// View
$view = $this->productService->getViewName($product, $category);
$descriptions = $this->productService->getFrontendViewDescriptions($product);
return view("frontend.products.{$view}",
compact('product', 'category', 'availabilityList', 'additionalProducts', 'optionGroups',
'optionCombinations', 'menus', 'defaultTitle', 'sideBar', 'pageBanner', 'breadcrumbs',
'descriptions'));
} catch (Exception $exception) {
exception_debug($exception);
abort(404);
}
Arguments
"product"
null
array:1 [
"id" => 340
]
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Support
/helpers.php
}
if (is_callable($default)) {
return $default($value);
}
return $default;
}
}
if (! function_exists('value')) {
/**
* Return the default value of the given value.
*
* @param mixed $value
* @return mixed
*/
function value($value)
{
return $value instanceof Closure ? $value() : $value;
}
}
if (! function_exists('windows_os')) {
/**
* Determine whether the current environment is Windows based.
*
* @return bool
*/
function windows_os()
{
return strtolower(substr(PHP_OS, 0, 3)) === 'win';
}
}
if (! function_exists('with')) {
/**
* Return the given value, optionally passed through the given callback.
*
* @param mixed $value
/raid
/case
/magnifiercomtw
/website
/app
/Services
/Optimize
/Cache
/CacheService.php
*
* @param string $type
* @param mixed $default
* @param string|null $id
* @param bool $nullIsPass
*
* @return mixed
* @static
*/
public function remember($type, $default, $id = null, $nullIsPass = false)
{
$key = $type . $id;
$value = $this->cache->get($key);
if (!is_null($value) || $nullIsPass) {
return $value;
}
$value = value($default);
$this->cache->put($key, $value, $this->rememberMinute);
return $value;
}
/**
* 新增路由快取。
*/
public function routeCache()
{
Artisan::call('route:trans:cache');
}
/**
* 設定快取的分鐘數。
*
* @param int $minute
*/
public function setRememberMinute($minute)
Arguments
Closure {#1802
class: "App\Http\Controllers\Frontend\ProductsController"
this: ProductsController {#1417 …}
use: {
$product: Product {#1648 …}
}
}
/raid
/case
/magnifiercomtw
/website
/app
/Http
/Controllers
/Frontend
/ProductsController.php
$optionGroups = $this->productOptionService->getProductOptionGroups($product);
$optionCombinations = $this->productOptionService->getProductOptionCombinations($product);
}
// 取得分類資訊,讓頁面可以正確顯示麵包屑。
$category = $this->pageCategoryService->getPreviousPageCategory($product->categories);
// Page
// 選單 active 網址。
if (!is_null($category)) {
$activeUrlLists[] = action('Frontend\ProductCategoriesController@show', [$category->slug], false);
}
$menus = $this->menuTypeService->getMenuTypesInFrontend($activeUrlLists ?? []);
$defaultTitle = $cacheService->remember(CacheTypeEnum::FRONTEND_PRODUCT_DEFAULT_TITLE,
function () use ($product) {
return $this->defaultTitleFormatService->getTitle(DefaultTitleFormatSnEnum::PRODUCT, null,
['id' => $product->id]);
}, $request->getRequestUri());
$sideBar = $this->pageSidebarService->getPageSideBar($product, $menus, $category);
$pageBanner = $this->pageBannerService->getProductBanner($product, $category);
$breadcrumbs = Breadcrumb::generate('products', [$menus, $product, $category]);
// View
$view = $this->productService->getViewName($product, $category);
$descriptions = $this->productService->getFrontendViewDescriptions($product);
return view("frontend.products.{$view}",
compact('product', 'category', 'availabilityList', 'additionalProducts', 'optionGroups',
'optionCombinations', 'menus', 'defaultTitle', 'sideBar', 'pageBanner', 'breadcrumbs',
'descriptions'));
} catch (Exception $exception) {
exception_debug($exception);
abort(404);
}
}
Arguments
"frontend_product_default_title"
Closure {#1802
class: "App\Http\Controllers\Frontend\ProductsController"
this: ProductsController {#1417 …}
use: {
$product: Product {#1648 …}
}
}
"/es/product-PUT015"
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Controller.php
/**
* 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).'].');
}
}
Arguments
CacheService {#1595}
PageService {#1612}
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
"product-PUT015"
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Controller.php
/**
* 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).'].');
}
}
Arguments
array:2 [
0 => ProductsController {#1417}
1 => "show"
]
array:4 [
0 => CacheService {#1595}
1 => PageService {#1612}
2 => Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
"productSlug" => "product-PUT015"
]
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/ControllerDispatcher.php
{
$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']);
Arguments
"show"
array:4 [
0 => CacheService {#1595}
1 => PageService {#1612}
2 => Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
"productSlug" => "product-PUT015"
]
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Route.php
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;
}
/**
Arguments
Route {#739}
ProductsController {#1417}
"show"
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Route.php
*
* @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.
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Router.php
/**
* 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);
}
/**
/raid
/case
/magnifiercomtw
/website
/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 {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/app
/Http
/Middleware
/AuthorizeFeature.php
use FeatureChecker;
class AuthorizeFeature
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
*
* @return mixed
*/
public function handle($request, Closure $next, $sn)
{
if (!FeatureChecker::checkFeature($sn)) {
abort(404);
}
return $next($request);
}
}
Arguments
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#1400
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#1402 …}
parameters: {
$passable: {}
}
use: {
$destination: Closure {#1401 …}
}
}
"product"
/raid
/case
/magnifiercomtw
/website
/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 {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/app
/Http
/Middleware
/CheckCustomerInformation.php
*
* @param CustomerService $customerService
*/
public function __construct(CustomerService $customerService)
{
$this->customerService = $customerService;
}
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
*
* @return mixed
*/
public function handle($request, Closure $next)
{
if (!FeatureChecker::checkFeature(FeatureSnEnum::CUSTOMER)) {
return $next($request);
}
$customerId = Auth::guard('frontend')
->id();
if (!is_null($customerId) && !$this->customerService->checkCustomerInformationIsCompleted($customerId)) {
return redirect()->action('Frontend\AccountsController@editProfile');
}
return $next($request);
}
}
Arguments
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#1398
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#1402 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#1400 …}
$pipe: "App\Http\Middleware\AuthorizeFeature:product"
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/app
/Http
/Middleware
/DefaultLocateRedirector.php
*/
public function handle($request, Closure $next)
{
$segments = $request->segments();
$customCode = app('fastshop.global')->get('default_locale_custom_code');
if (count($segments) > 0 && $segments[0] === $customCode) {
array_shift($segments);
$path = implode('/', $segments);
if ($request->getQueryString()) {
$path .= '?' . $request->getQueryString();
}
return redirect()->to($path, 301, ['cache-control' => 'no-cache']);
}
return $next($request);
}
}
Arguments
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#1397
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#1402 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#1398 …}
$pipe: "App\Http\Middleware\CheckCustomerInformation"
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/app
/Http
/Middleware
/UrlRedirector.php
{
$url = urldecode($request->getRequestUri());
$seoRedirect = $this->seoRedirectRepository->findBySource($url);
if (is_null($seoRedirect)) {
$url = urldecode($request->getPathInfo());
$seoRedirect = $this->seoRedirectRepository->findBySource($url);
}
if (!is_null($seoRedirect)) {
return redirect()->to(
$seoRedirect->destination,
$seoRedirect->status_code,
['cache-control' => 'no-cache']
);
}
return $next($request);
}
}
Arguments
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#1396
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#1402 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#1397 …}
$pipe: "App\Http\Middleware\DefaultLocateRedirector"
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/app
/Http
/Middleware
/OpenDebugbar.php
public function handle($request, Closure $next)
{
if (app()->bound('debugbar')) {
app('debugbar')->disable();
}
$userService = app(UserService::class);
$isUser = Auth::guard('backend')
->check();
if ($isUser && $userService->isSuperUser()) {
config()->set('app.debug', true);
}
if (config()->get('app.debug', false) && app()->bound('debugbar')) {
app('debugbar')->enable();
}
return $next($request);
}
}
Arguments
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#1395
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#1402 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#1396 …}
$pipe: "App\Http\Middleware\UrlRedirector"
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/vendor
/renatomarinho
/laravel-page-speed
/src
/Middleware
/PageSpeed.php
abstract class PageSpeed
{
/**
* Apply rules.
*
* @param string $buffer
* @return string
*/
abstract public function apply($buffer);
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return \Illuminate\Http\Response $response
*/
public function handle($request, Closure $next)
{
$response = $next($request);
if (! $this->shouldProcessPageSpeed($request, $response)) {
return $response;
}
$html = $response->getContent();
$newContent = $this->apply($html);
return $response->setContent($newContent);
}
/**
* Replace content response.
*
* @param array $replace
* @param string $buffer
* @return string
*/
protected function replace(array $replace, $buffer)
{
Arguments
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#1394
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#1402 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#1395 …}
$pipe: "App\Http\Middleware\OpenDebugbar"
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Middleware
/SubstituteBindings.php
*/
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);
}
}
Arguments
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#1393
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#1402 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#1394 …}
$pipe: "RenatoMarinho\LaravelPageSpeed\Middleware\InsertDNSPrefetch"
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Foundation
/Http
/Middleware
/VerifyCsrfToken.php
}
/**
* 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
Arguments
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#1392
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#1402 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#1393 …}
$pipe: "Illuminate\Routing\Middleware\SubstituteBindings"
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/View
/Middleware
/ShareErrorsFromSession.php
* 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);
}
}
Arguments
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#1391
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#1402 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#1392 …}
$pipe: "App\Http\Middleware\VerifyCsrfToken"
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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 {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#1390
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#1402 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#1391 …}
$pipe: "Illuminate\View\Middleware\ShareErrorsFromSession"
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Cookie
/Middleware
/AddQueuedCookiesToResponse.php
* 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;
}
}
Arguments
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#1385
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#1402 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#1390 …}
$pipe: "Illuminate\Session\Middleware\StartSession"
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Cookie
/Middleware
/EncryptCookies.php
* 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($key, $c));
} catch (DecryptException $e) {
$request->cookies->set($key, null);
}
Arguments
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#1386
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#1402 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#1385 …}
$pipe: "Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse"
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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 {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Router.php
*
* @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.
*
Arguments
Closure {#1401
class: "Illuminate\Routing\Router"
this: Router {#26 …}
parameters: {
$request: {}
}
use: {
$route: Route {#739 …}
}
}
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Router.php
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)
Arguments
Route {#739}
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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 {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Route {#739}
/raid
/case
/magnifiercomtw
/website
/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 {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Support
/Facades
/Facade.php
}
/**
* Handle dynamic, static calls to the object.
*
* @param string $method
* @param array $args
* @return mixed
*
* @throws \RuntimeException
*/
public static function __callStatic($method, $args)
{
$instance = static::getFacadeRoot();
if (! $instance) {
throw new RuntimeException('A facade root has not been set.');
}
return $instance->$method(...$args);
}
}
Arguments
Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/app
/Http
/Controllers
/Frontend
/SeoUrlsController.php
$routeCollection = new RouteCollection();
// 將頁面的 Route 放在最前面。
/** @var \Illuminate\Routing\Route $route */
foreach ($oldRouteCollection->getRoutes() as $index => $route) {
foreach ($pageRoutes as $type => $pageRoute) {
if ($entity->type == $type && $route->getActionName() == $pageRoute) {
$routeCollection->add($route);
break;
}
}
}
// 將 SEO URL 的 Route 放到最後。
$routeCollection = $this->putSEORouteToEnd($oldRouteCollection, $routeCollection);
}
Route::setRoutes($routeCollection);
$response = Route::dispatch($request);
// 還原成原本的 Route。
Route::setRoutes($oldRouteCollection);
// Route response 需要重導向的直接重新導向。
if ($response->isRedirection()) {
$headers = $response->headers->allPreserveCase();
if (isset($headers['Location'][0])) {
return redirect()->to($headers['Location'][0]);
}
}
return $response->getContent();
} catch (HasSeoUrlHttpException $exception) {
return redirect()->to($exception->getMessage(), 301);
}
}
}
Arguments
"dispatch"
array:1 [
0 => Request {#1370
#json: null
#convertedFiles: null
#userResolver: null
#routeResolver: Closure {#1389
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#739 …}
}
}
+attributes: ParameterBag {#1373}
+request: ParameterBag {#1377}
+query: ParameterBag {#1376}
+server: ServerBag {#1380}
+files: FileBag {#1381}
+cookies: ParameterBag {#1382}
+headers: HeaderBag {#1384}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:4 [
0 => "text/html"
1 => "application/xhtml+xml"
2 => "application/xml"
3 => "*/*"
]
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
]
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Controller.php
/**
* 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).'].');
}
}
Arguments
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Controller.php
/**
* 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).'].');
}
}
Arguments
array:2 [
0 => SeoUrlsController {#1300}
1 => "show"
]
array:1 [
"seoKey" => "es/product-PUT015"
]
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/ControllerDispatcher.php
{
$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']);
Arguments
"show"
array:1 [
"seoKey" => "es/product-PUT015"
]
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Route.php
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;
}
/**
Arguments
Route {#677}
SeoUrlsController {#1300}
"show"
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Route.php
*
* @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.
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Router.php
/**
* 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);
}
/**
/raid
/case
/magnifiercomtw
/website
/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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/app
/Http
/Middleware
/DefaultLocateRedirector.php
*/
public function handle($request, Closure $next)
{
$segments = $request->segments();
$customCode = app('fastshop.global')->get('default_locale_custom_code');
if (count($segments) > 0 && $segments[0] === $customCode) {
array_shift($segments);
$path = implode('/', $segments);
if ($request->getQueryString()) {
$path .= '?' . $request->getQueryString();
}
return redirect()->to($path, 301, ['cache-control' => 'no-cache']);
}
return $next($request);
}
}
Arguments
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#1289
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#1293 …}
parameters: {
$passable: {}
}
use: {
$destination: Closure {#1205 …}
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/app
/Http
/Middleware
/UrlRedirector.php
{
$url = urldecode($request->getRequestUri());
$seoRedirect = $this->seoRedirectRepository->findBySource($url);
if (is_null($seoRedirect)) {
$url = urldecode($request->getPathInfo());
$seoRedirect = $this->seoRedirectRepository->findBySource($url);
}
if (!is_null($seoRedirect)) {
return redirect()->to(
$seoRedirect->destination,
$seoRedirect->status_code,
['cache-control' => 'no-cache']
);
}
return $next($request);
}
}
Arguments
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#1298
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#1293 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#1289 …}
$pipe: "App\Http\Middleware\DefaultLocateRedirector"
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/app
/Http
/Middleware
/OpenDebugbar.php
public function handle($request, Closure $next)
{
if (app()->bound('debugbar')) {
app('debugbar')->disable();
}
$userService = app(UserService::class);
$isUser = Auth::guard('backend')
->check();
if ($isUser && $userService->isSuperUser()) {
config()->set('app.debug', true);
}
if (config()->get('app.debug', false) && app()->bound('debugbar')) {
app('debugbar')->enable();
}
return $next($request);
}
}
Arguments
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#1297
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#1293 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#1298 …}
$pipe: "App\Http\Middleware\UrlRedirector"
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/vendor
/renatomarinho
/laravel-page-speed
/src
/Middleware
/PageSpeed.php
abstract class PageSpeed
{
/**
* Apply rules.
*
* @param string $buffer
* @return string
*/
abstract public function apply($buffer);
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return \Illuminate\Http\Response $response
*/
public function handle($request, Closure $next)
{
$response = $next($request);
if (! $this->shouldProcessPageSpeed($request, $response)) {
return $response;
}
$html = $response->getContent();
$newContent = $this->apply($html);
return $response->setContent($newContent);
}
/**
* Replace content response.
*
* @param array $replace
* @param string $buffer
* @return string
*/
protected function replace(array $replace, $buffer)
{
Arguments
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#1296
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#1293 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#1297 …}
$pipe: "App\Http\Middleware\OpenDebugbar"
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Middleware
/SubstituteBindings.php
*/
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);
}
}
Arguments
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#1295
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#1293 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#1296 …}
$pipe: "RenatoMarinho\LaravelPageSpeed\Middleware\InsertDNSPrefetch"
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Foundation
/Http
/Middleware
/VerifyCsrfToken.php
}
/**
* 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
Arguments
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#1294
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#1293 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#1295 …}
$pipe: "Illuminate\Routing\Middleware\SubstituteBindings"
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/View
/Middleware
/ShareErrorsFromSession.php
* 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);
}
}
Arguments
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#1316
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#1293 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#1294 …}
$pipe: "App\Http\Middleware\VerifyCsrfToken"
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#1311
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#1293 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#1316 …}
$pipe: "Illuminate\View\Middleware\ShareErrorsFromSession"
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Cookie
/Middleware
/AddQueuedCookiesToResponse.php
* 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;
}
}
Arguments
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#1303
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#1293 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#1311 …}
$pipe: "Illuminate\Session\Middleware\StartSession"
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Cookie
/Middleware
/EncryptCookies.php
* 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($key, $c));
} catch (DecryptException $e) {
$request->cookies->set($key, null);
}
Arguments
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#1308
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#1293 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#1303 …}
$pipe: "Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse"
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Router.php
*
* @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.
*
Arguments
Closure {#1205
class: "Illuminate\Routing\Router"
this: Router {#26 …}
parameters: {
$request: {}
}
use: {
$route: Route {#677 …}
}
}
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Router.php
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)
Arguments
Route {#677}
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Route {#677}
/raid
/case
/magnifiercomtw
/website
/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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/vendor
/fideloper
/proxy
/src
/TrustProxies.php
{
$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),
Arguments
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#1202
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#31 …}
parameters: {
$passable: {}
}
use: {
$destination: Closure {#23 …}
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Foundation
/Http
/Middleware
/TransformsRequest.php
* The additional attributes passed to the middleware.
*
* @var array
*/
protected $attributes = [];
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#769
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#31 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#1202 …}
$pipe: "App\Http\Middleware\TrustProxies"
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/vendor
/laravel
/framework
/src
/Illuminate
/Foundation
/Http
/Middleware
/TransformsRequest.php
* The additional attributes passed to the middleware.
*
* @var array
*/
protected $attributes = [];
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#770
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#31 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#769 …}
$pipe: "Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull"
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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];
}
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];
Arguments
Request {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#768
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#31 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#770 …}
$pipe: "App\Http\Middleware\TrimStrings"
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/website
/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 {#23
class: "Illuminate\Foundation\Http\Kernel"
this: Kernel {#30 …}
parameters: {
$request: {}
}
}
/raid
/case
/magnifiercomtw
/website
/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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/raid
/case
/magnifiercomtw
/public_html
/index.php
$app->bind('path.public', function() {
return __DIR__;
});
/*
|--------------------------------------------------------------------------
| 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 {#43
#json: null
#convertedFiles: []
#userResolver: Closure {#1286
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#42 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#1287
class: "Illuminate\Routing\Router"
this: Router {#26 …}
use: {
$route: Route {#677 …}
}
}
+attributes: ParameterBag {#45}
+request: ParameterBag {#51}
+query: ParameterBag {#51}
+server: ServerBag {#47}
+files: FileBag {#48}
+cookies: ParameterBag {#46}
+headers: HeaderBag {#49}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/es/product-PUT015"
#requestUri: "/es/product-PUT015"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#1337}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}