/www
/wwwroot
/www.h5tpl.com
/storage
/framework
/views
/8b8f0b8cdbd085e47195e1740e2bddbaf7a47aa2.php
<head>
<meta charset="utf-8">
<title><?php echo e($seoInfo['title']); ?></title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="keywords" content="<?php echo e($seoInfo['keywords']); ?>">
<meta name="description" content="<?php echo e($seoInfo['description']); ?>">
<link rel="stylesheet" href="/static/home/layui/css/layui.css">
<link rel="stylesheet" href="/static/home/css/global.css">
</head>
Arguments
"Undefined variable: seoInfo (View: /www/wwwroot/www.h5tpl.com/resources/views/home/components/header.blade.php) (View: /www/wwwroot/www.h5tpl.com/resources/views/home/components/header.blade.php)"
/www
/wwwroot
/www.h5tpl.com
/storage
/framework
/views
/8b8f0b8cdbd085e47195e1740e2bddbaf7a47aa2.php
<head>
<meta charset="utf-8">
<title><?php echo e($seoInfo['title']); ?></title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="keywords" content="<?php echo e($seoInfo['keywords']); ?>">
<meta name="description" content="<?php echo e($seoInfo['description']); ?>">
<link rel="stylesheet" href="/static/home/layui/css/layui.css">
<link rel="stylesheet" href="/static/home/css/global.css">
</head>
Arguments
"Undefined variable: seoInfo (View: /www/wwwroot/www.h5tpl.com/resources/views/home/components/header.blade.php)"
/www
/wwwroot
/www.h5tpl.com
/storage
/framework
/views
/8b8f0b8cdbd085e47195e1740e2bddbaf7a47aa2.php
<head>
<meta charset="utf-8">
<title><?php echo e($seoInfo['title']); ?></title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="keywords" content="<?php echo e($seoInfo['keywords']); ?>">
<meta name="description" content="<?php echo e($seoInfo['description']); ?>">
<link rel="stylesheet" href="/static/home/layui/css/layui.css">
<link rel="stylesheet" href="/static/home/css/global.css">
</head>
Arguments
"Undefined variable: seoInfo"
/www
/wwwroot
/www.h5tpl.com
/storage
/framework
/views
/8b8f0b8cdbd085e47195e1740e2bddbaf7a47aa2.php
<head>
<meta charset="utf-8">
<title><?php echo e($seoInfo['title']); ?></title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="keywords" content="<?php echo e($seoInfo['keywords']); ?>">
<meta name="description" content="<?php echo e($seoInfo['description']); ?>">
<link rel="stylesheet" href="/static/home/layui/css/layui.css">
<link rel="stylesheet" href="/static/home/css/global.css">
</head>
Arguments
8
"Undefined variable: seoInfo"
"/www/wwwroot/www.h5tpl.com/storage/framework/views/8b8f0b8cdbd085e47195e1740e2bddbaf7a47aa2.php"
3
array:8 [
"__path" => "/www/wwwroot/www.h5tpl.com/storage/framework/views/8b8f0b8cdbd085e47195e1740e2bddbaf7a47aa2.php"
"__data" => array:6 [
"__env" => Factory {#148}
"app" => Application {#2}
"UeditorLangFile" => "/laravel-u-editor/lang/zh-cn/zh-cn.js"
"errors" => ViewErrorBag {#434}
"obLevel" => 1
"info" => array:14 [
"id" => 207
"category_id" => 3
"name" => "PHP专业实例开发 中文PDF版"
"imgurl" => "994f390341d246249457f2afbbc4b4cc.png"
"baiduurl" => "http://pan.baidu.com/s/1slog0TB"
"baidupwd" => "texr"
"description" => "本书是学习PHP编程的优秀参考书,其主要内容有:第1部分概述了PHP编程的基础知识,如PHP的安装和配置、变量、运算符和常量、控制结构、数组和函数、类的应用,并介绍了在线购物站点的创建过程:在第2部分到第6部分中,每部分都围绕一个专业项目展开讨论,并通过实例引导读者,通过由浅入深的方式学习各种专业项目的创建,如创建用户注册表单、存储和检索文件信息、MySQL与PHP的综合使用、创建产品目录和购物车以及发送电子邮件、用户身份验证和跟踪等;第7部分可以作为读者从项目中所学知识的总结,以及拓宽其知识的指导,这部分"
"content" => "<p><strong><span style="font-size: 12px; font-family: 宋体, SimSun;">PHP专业实例开发 中文PDF版数据目录:</span></strong></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">译者序 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">NIIT简介 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">作者简介 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">前言 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第1部分 PHP概述 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第1章 PHP概述 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第2章 PHP的安装和配置 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第3章 变量、运算符和常量 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第4章 控制结构 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第5章 数组 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第6章 函数 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第7章 理解类 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第8章 项目个案研究——创建在线购物站点 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第2部分 专业项目1 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目1 为在线购物站点创建用户注册表单 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第9章 HTML基础 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第10章 PHP中的表单解析 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第3部分 专业项目2 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目2 在文件中存储和检索信息 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第11章 处理文件 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第4部分 专业项目3 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目3 PHP与MYSQL的结合 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第12章 处理数据存储 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第13章 PHP与SQL数据库(MYSQL)的综合使用 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第5部分 专业项目4 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目4 创建产品目录和购物车并发送 电子邮件 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第14章 创建产品目录 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第15章 购物车 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第16章 发送电子邮件 第</span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">6部分 专业项目5 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目5 用户身份验证与跟踪 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第17章 用户身份验证脚本 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第18章 会话跟踪 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第7部分 专业项目6 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目6 超越实验室 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第19章 PHP中的图形 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第20章 PHP中的输入验证程序 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第21章 理解CVS </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第22章 PEAR </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第23章 PHP-NUKE </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第24章 COOKIES </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第8部分 附录 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录A 使用目录 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录B MCRYPT 库 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录C PHP中使用POSTGRESQL </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录D 基本HTML标记概览 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录E PHP函数概览 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录F 网站设计最佳实践</span></p><p><br/></p>"
"frequency" => 1
"click" => 111
"dclick" => 11
"created_at" => "2019-07-30 16:37:08"
"updated_at" => "2024-03-16 02:45:20"
"category_name" => "php"
]
]
"obLevel" => 3
"__env" => Factory {#148}
"app" => Application {#2}
"UeditorLangFile" => "/laravel-u-editor/lang/zh-cn/zh-cn.js"
"errors" => ViewErrorBag {#434}
"info" => array:14 [
"id" => 207
"category_id" => 3
"name" => "PHP专业实例开发 中文PDF版"
"imgurl" => "994f390341d246249457f2afbbc4b4cc.png"
"baiduurl" => "http://pan.baidu.com/s/1slog0TB"
"baidupwd" => "texr"
"description" => "本书是学习PHP编程的优秀参考书,其主要内容有:第1部分概述了PHP编程的基础知识,如PHP的安装和配置、变量、运算符和常量、控制结构、数组和函数、类的应用,并介绍了在线购物站点的创建过程:在第2部分到第6部分中,每部分都围绕一个专业项目展开讨论,并通过实例引导读者,通过由浅入深的方式学习各种专业项目的创建,如创建用户注册表单、存储和检索文件信息、MySQL与PHP的综合使用、创建产品目录和购物车以及发送电子邮件、用户身份验证和跟踪等;第7部分可以作为读者从项目中所学知识的总结,以及拓宽其知识的指导,这部分"
"content" => "<p><strong><span style="font-size: 12px; font-family: 宋体, SimSun;">PHP专业实例开发 中文PDF版数据目录:</span></strong></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">译者序 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">NIIT简介 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">作者简介 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">前言 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第1部分 PHP概述 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第1章 PHP概述 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第2章 PHP的安装和配置 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第3章 变量、运算符和常量 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第4章 控制结构 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第5章 数组 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第6章 函数 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第7章 理解类 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第8章 项目个案研究——创建在线购物站点 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第2部分 专业项目1 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目1 为在线购物站点创建用户注册表单 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第9章 HTML基础 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第10章 PHP中的表单解析 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第3部分 专业项目2 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目2 在文件中存储和检索信息 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第11章 处理文件 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第4部分 专业项目3 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目3 PHP与MYSQL的结合 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第12章 处理数据存储 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第13章 PHP与SQL数据库(MYSQL)的综合使用 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第5部分 专业项目4 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目4 创建产品目录和购物车并发送 电子邮件 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第14章 创建产品目录 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第15章 购物车 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第16章 发送电子邮件 第</span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">6部分 专业项目5 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目5 用户身份验证与跟踪 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第17章 用户身份验证脚本 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第18章 会话跟踪 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第7部分 专业项目6 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目6 超越实验室 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第19章 PHP中的图形 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第20章 PHP中的输入验证程序 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第21章 理解CVS </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第22章 PEAR </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第23章 PHP-NUKE </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第24章 COOKIES </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第8部分 附录 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录A 使用目录 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录B MCRYPT 库 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录C PHP中使用POSTGRESQL </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录D 基本HTML标记概览 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录E PHP函数概览 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录F 网站设计最佳实践</span></p><p><br/></p>"
"frequency" => 1
"click" => 111
"dclick" => 11
"created_at" => "2019-07-30 16:37:08"
"updated_at" => "2024-03-16 02:45:20"
"category_name" => "php"
]
]
/www
/wwwroot
/www.h5tpl.com
/vendor
/laravel
/framework
/src
/Illuminate
/View
/Engines
/PhpEngine.php
/**
* Get the evaluated contents of the view at the given path.
*
* @param string $__path
* @param array $__data
* @return string
*/
protected function evaluatePath($__path, $__data)
{
$obLevel = ob_get_level();
ob_start();
extract($__data, EXTR_SKIP);
// We'll evaluate the contents of the view inside a try/catch block so we can
// flush out any stray output that might get out before an error occurs or
// an exception is thrown. This prevents any partial views from leaking.
try {
include $__path;
} catch (Exception $e) {
$this->handleViewException($e, $obLevel);
} catch (Throwable $e) {
$this->handleViewException(new FatalThrowableError($e), $obLevel);
}
return ltrim(ob_get_clean());
}
/**
* Handle a view exception.
*
* @param \Exception $e
* @param int $obLevel
* @return void
*
* @throws \Exception
*/
protected function handleViewException(Exception $e, $obLevel)
{
Arguments
"/www/wwwroot/www.h5tpl.com/storage/framework/views/8b8f0b8cdbd085e47195e1740e2bddbaf7a47aa2.php"
/www
/wwwroot
/www.h5tpl.com
/vendor
/laravel
/framework
/src
/Illuminate
/View
/Engines
/CompilerEngine.php
* @param array $data
* @return string
*/
public function get($path, array $data = [])
{
$this->lastCompiled[] = $path;
// If this given view has expired, which means it has simply been edited since
// it was last compiled, we will re-compile the views so we can evaluate a
// fresh copy of the view. We'll pass the compiler the path of the view.
if ($this->compiler->isExpired($path)) {
$this->compiler->compile($path);
}
$compiled = $this->compiler->getCompiledPath($path);
// Once we have the path to the compiled file, we will evaluate the paths with
// typical PHP just like any other templates. We also keep a stack of views
// which have been rendered for right exception messages to be generated.
$results = $this->evaluatePath($compiled, $data);
array_pop($this->lastCompiled);
return $results;
}
/**
* Handle a view exception.
*
* @param \Exception $e
* @param int $obLevel
* @return void
*
* @throws \Exception
*/
protected function handleViewException(Exception $e, $obLevel)
{
$e = new ErrorException($this->getMessage($e), 0, 1, $e->getFile(), $e->getLine(), $e);
parent::handleViewException($e, $obLevel);
Arguments
"/www/wwwroot/www.h5tpl.com/storage/framework/views/8b8f0b8cdbd085e47195e1740e2bddbaf7a47aa2.php"
array:6 [
"__env" => Factory {#148}
"app" => Application {#2}
"UeditorLangFile" => "/laravel-u-editor/lang/zh-cn/zh-cn.js"
"errors" => ViewErrorBag {#434}
"obLevel" => 1
"info" => array:14 [
"id" => 207
"category_id" => 3
"name" => "PHP专业实例开发 中文PDF版"
"imgurl" => "994f390341d246249457f2afbbc4b4cc.png"
"baiduurl" => "http://pan.baidu.com/s/1slog0TB"
"baidupwd" => "texr"
"description" => "本书是学习PHP编程的优秀参考书,其主要内容有:第1部分概述了PHP编程的基础知识,如PHP的安装和配置、变量、运算符和常量、控制结构、数组和函数、类的应用,并介绍了在线购物站点的创建过程:在第2部分到第6部分中,每部分都围绕一个专业项目展开讨论,并通过实例引导读者,通过由浅入深的方式学习各种专业项目的创建,如创建用户注册表单、存储和检索文件信息、MySQL与PHP的综合使用、创建产品目录和购物车以及发送电子邮件、用户身份验证和跟踪等;第7部分可以作为读者从项目中所学知识的总结,以及拓宽其知识的指导,这部分"
"content" => "<p><strong><span style="font-size: 12px; font-family: 宋体, SimSun;">PHP专业实例开发 中文PDF版数据目录:</span></strong></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">译者序 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">NIIT简介 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">作者简介 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">前言 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第1部分 PHP概述 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第1章 PHP概述 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第2章 PHP的安装和配置 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第3章 变量、运算符和常量 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第4章 控制结构 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第5章 数组 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第6章 函数 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第7章 理解类 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第8章 项目个案研究——创建在线购物站点 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第2部分 专业项目1 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目1 为在线购物站点创建用户注册表单 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第9章 HTML基础 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第10章 PHP中的表单解析 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第3部分 专业项目2 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目2 在文件中存储和检索信息 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第11章 处理文件 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第4部分 专业项目3 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目3 PHP与MYSQL的结合 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第12章 处理数据存储 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第13章 PHP与SQL数据库(MYSQL)的综合使用 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第5部分 专业项目4 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目4 创建产品目录和购物车并发送 电子邮件 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第14章 创建产品目录 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第15章 购物车 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第16章 发送电子邮件 第</span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">6部分 专业项目5 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目5 用户身份验证与跟踪 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第17章 用户身份验证脚本 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第18章 会话跟踪 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第7部分 专业项目6 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目6 超越实验室 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第19章 PHP中的图形 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第20章 PHP中的输入验证程序 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第21章 理解CVS </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第22章 PEAR </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第23章 PHP-NUKE </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第24章 COOKIES </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第8部分 附录 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录A 使用目录 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录B MCRYPT 库 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录C PHP中使用POSTGRESQL </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录D 基本HTML标记概览 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录E PHP函数概览 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录F 网站设计最佳实践</span></p><p><br/></p>"
"frequency" => 1
"click" => 111
"dclick" => 11
"created_at" => "2019-07-30 16:37:08"
"updated_at" => "2024-03-16 02:45:20"
"category_name" => "php"
]
]
/www
/wwwroot
/www.h5tpl.com
/vendor
/laravel
/framework
/src
/Illuminate
/View
/View.php
$this->factory->callComposer($this);
$contents = $this->getContents();
// Once we've finished rendering the view, we'll decrement the render count
// so that each sections get flushed out next time a view is created and
// no old sections are staying around in the memory of an environment.
$this->factory->decrementRender();
return $contents;
}
/**
* Get the evaluated contents of the view.
*
* @return string
*/
protected function getContents()
{
return $this->engine->get($this->path, $this->gatherData());
}
/**
* Get the data bound to the view instance.
*
* @return array
*/
protected function gatherData()
{
$data = array_merge($this->factory->getShared(), $this->data);
foreach ($data as $key => $value) {
if ($value instanceof Renderable) {
$data[$key] = $value->render();
}
}
return $data;
}
Arguments
"/www/wwwroot/www.h5tpl.com/resources/views/home/components/header.blade.php"
array:6 [
"__env" => Factory {#148}
"app" => Application {#2}
"UeditorLangFile" => "/laravel-u-editor/lang/zh-cn/zh-cn.js"
"errors" => ViewErrorBag {#434}
"obLevel" => 1
"info" => array:14 [
"id" => 207
"category_id" => 3
"name" => "PHP专业实例开发 中文PDF版"
"imgurl" => "994f390341d246249457f2afbbc4b4cc.png"
"baiduurl" => "http://pan.baidu.com/s/1slog0TB"
"baidupwd" => "texr"
"description" => "本书是学习PHP编程的优秀参考书,其主要内容有:第1部分概述了PHP编程的基础知识,如PHP的安装和配置、变量、运算符和常量、控制结构、数组和函数、类的应用,并介绍了在线购物站点的创建过程:在第2部分到第6部分中,每部分都围绕一个专业项目展开讨论,并通过实例引导读者,通过由浅入深的方式学习各种专业项目的创建,如创建用户注册表单、存储和检索文件信息、MySQL与PHP的综合使用、创建产品目录和购物车以及发送电子邮件、用户身份验证和跟踪等;第7部分可以作为读者从项目中所学知识的总结,以及拓宽其知识的指导,这部分"
"content" => "<p><strong><span style="font-size: 12px; font-family: 宋体, SimSun;">PHP专业实例开发 中文PDF版数据目录:</span></strong></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">译者序 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">NIIT简介 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">作者简介 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">前言 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第1部分 PHP概述 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第1章 PHP概述 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第2章 PHP的安装和配置 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第3章 变量、运算符和常量 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第4章 控制结构 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第5章 数组 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第6章 函数 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第7章 理解类 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第8章 项目个案研究——创建在线购物站点 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第2部分 专业项目1 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目1 为在线购物站点创建用户注册表单 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第9章 HTML基础 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第10章 PHP中的表单解析 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第3部分 专业项目2 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目2 在文件中存储和检索信息 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第11章 处理文件 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第4部分 专业项目3 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目3 PHP与MYSQL的结合 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第12章 处理数据存储 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第13章 PHP与SQL数据库(MYSQL)的综合使用 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第5部分 专业项目4 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目4 创建产品目录和购物车并发送 电子邮件 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第14章 创建产品目录 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第15章 购物车 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第16章 发送电子邮件 第</span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">6部分 专业项目5 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目5 用户身份验证与跟踪 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第17章 用户身份验证脚本 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第18章 会话跟踪 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第7部分 专业项目6 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目6 超越实验室 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第19章 PHP中的图形 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第20章 PHP中的输入验证程序 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第21章 理解CVS </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第22章 PEAR </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第23章 PHP-NUKE </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第24章 COOKIES </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第8部分 附录 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录A 使用目录 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录B MCRYPT 库 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录C PHP中使用POSTGRESQL </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录D 基本HTML标记概览 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录E PHP函数概览 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录F 网站设计最佳实践</span></p><p><br/></p>"
"frequency" => 1
"click" => 111
"dclick" => 11
"created_at" => "2019-07-30 16:37:08"
"updated_at" => "2024-03-16 02:45:20"
"category_name" => "php"
]
]
/www
/wwwroot
/www.h5tpl.com
/vendor
/laravel
/framework
/src
/Illuminate
/View
/View.php
throw $e;
}
}
/**
* Get the contents of the view instance.
*
* @return string
*/
protected function renderContents()
{
// We will keep track of the amount of views being rendered so we can flush
// the section after the complete rendering operation is done. This will
// clear out the sections for any separate views that may be rendered.
$this->factory->incrementRender();
$this->factory->callComposer($this);
$contents = $this->getContents();
// Once we've finished rendering the view, we'll decrement the render count
// so that each sections get flushed out next time a view is created and
// no old sections are staying around in the memory of an environment.
$this->factory->decrementRender();
return $contents;
}
/**
* Get the evaluated contents of the view.
*
* @return string
*/
protected function getContents()
{
return $this->engine->get($this->path, $this->gatherData());
}
/**
/www
/wwwroot
/www.h5tpl.com
/vendor
/laravel
/framework
/src
/Illuminate
/View
/View.php
$this->view = $view;
$this->path = $path;
$this->engine = $engine;
$this->factory = $factory;
$this->data = $data instanceof Arrayable ? $data->toArray() : (array) $data;
}
/**
* Get the string contents of the view.
*
* @param callable|null $callback
* @return string
*
* @throws \Throwable
*/
public function render(callable $callback = null)
{
try {
$contents = $this->renderContents();
$response = isset($callback) ? call_user_func($callback, $this, $contents) : null;
// Once we have the contents of the view, we will flush the sections if we are
// done rendering all views so that there is nothing left hanging over when
// another view gets rendered in the future by the application developer.
$this->factory->flushStateIfDoneRendering();
return ! is_null($response) ? $response : $contents;
} catch (Exception $e) {
$this->factory->flushState();
throw $e;
} catch (Throwable $e) {
$this->factory->flushState();
throw $e;
}
}
/www
/wwwroot
/www.h5tpl.com
/storage
/framework
/views
/0a3e26761f636faef770193c4379a3ee2c6dba9d.php
<?php $__env->startSection('header'); ?>
<?php echo $__env->make('home/components/header', [], array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
<?php $__env->stopSection(); ?>
<?php $__env->startSection('nav'); ?>
<?php echo $__env->make('home/components/nav', [], array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
<?php $__env->stopSection(); ?>
<?php $__env->startSection('sub-nav'); ?>
<?php echo $__env->make('home/components/sub-nav', [], array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
<?php $__env->stopSection(); ?>
<?php $__env->startSection('content'); ?>
<div class="layui-col-md8 content detail">
<div class="fly-panel detail-box">
<h1><?php echo e($info['name']); ?></h1>
<div class="fly-detail-info">
<a href="<?php echo e(path('ebook', ['cid' => $info['category_id']])); ?>">
<span class="layui-badge layui-bg-red"><?php echo e($info['category_name']); ?></span>
</a>
<span class="fly-list-nums">
<a href="#comment"><i class="iconfont" title="回答"></i> 66</a>
<i class="iconfont" title="人气"></i> <?php echo e($info['click']); ?>
</span>
</div>
<div class="detail-about" style="padding-left: 15px;color: #FF7200"><?php echo e($info['description']); ?></div>
<pre>#下载地址:<a href="<?php echo e($info['baiduurl']); ?>">百度云下载</a> 密码: <?php echo e($info['baidupwd']); ?></pre>
<div class="detail-body photos">
<pre><p><?php echo $info['content']; ?></p></pre>
</div>
</div>
<?php echo $__env->make('home/components/comment', [], array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
</div>
<?php $__env->stopSection(); ?>
<?php $__env->startSection('hot-right'); ?>
<?php echo $__env->make('home/components/hot-right', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
<?php $__env->stopSection(); ?>
<?php $__env->startSection('sign'); ?>
<!-- <?php echo $__env->make('home/components/sign', [], array_except(get_defined_vars(), array('__data', '__path')))->render(); ?> -->
<?php $__env->stopSection(); ?>
<?php $__env->startSection('imglogo-right'); ?>
<!-- <?php echo $__env->make('home/components/imglogo-right', [], array_except(get_defined_vars(), array('__data', '__path')))->render(); ?> -->
/www
/wwwroot
/www.h5tpl.com
/vendor
/laravel
/framework
/src
/Illuminate
/View
/Engines
/PhpEngine.php
/**
* Get the evaluated contents of the view at the given path.
*
* @param string $__path
* @param array $__data
* @return string
*/
protected function evaluatePath($__path, $__data)
{
$obLevel = ob_get_level();
ob_start();
extract($__data, EXTR_SKIP);
// We'll evaluate the contents of the view inside a try/catch block so we can
// flush out any stray output that might get out before an error occurs or
// an exception is thrown. This prevents any partial views from leaking.
try {
include $__path;
} catch (Exception $e) {
$this->handleViewException($e, $obLevel);
} catch (Throwable $e) {
$this->handleViewException(new FatalThrowableError($e), $obLevel);
}
return ltrim(ob_get_clean());
}
/**
* Handle a view exception.
*
* @param \Exception $e
* @param int $obLevel
* @return void
*
* @throws \Exception
*/
protected function handleViewException(Exception $e, $obLevel)
{
Arguments
"/www/wwwroot/www.h5tpl.com/storage/framework/views/0a3e26761f636faef770193c4379a3ee2c6dba9d.php"
/www
/wwwroot
/www.h5tpl.com
/vendor
/laravel
/framework
/src
/Illuminate
/View
/Engines
/CompilerEngine.php
* @param array $data
* @return string
*/
public function get($path, array $data = [])
{
$this->lastCompiled[] = $path;
// If this given view has expired, which means it has simply been edited since
// it was last compiled, we will re-compile the views so we can evaluate a
// fresh copy of the view. We'll pass the compiler the path of the view.
if ($this->compiler->isExpired($path)) {
$this->compiler->compile($path);
}
$compiled = $this->compiler->getCompiledPath($path);
// Once we have the path to the compiled file, we will evaluate the paths with
// typical PHP just like any other templates. We also keep a stack of views
// which have been rendered for right exception messages to be generated.
$results = $this->evaluatePath($compiled, $data);
array_pop($this->lastCompiled);
return $results;
}
/**
* Handle a view exception.
*
* @param \Exception $e
* @param int $obLevel
* @return void
*
* @throws \Exception
*/
protected function handleViewException(Exception $e, $obLevel)
{
$e = new ErrorException($this->getMessage($e), 0, 1, $e->getFile(), $e->getLine(), $e);
parent::handleViewException($e, $obLevel);
Arguments
"/www/wwwroot/www.h5tpl.com/storage/framework/views/0a3e26761f636faef770193c4379a3ee2c6dba9d.php"
array:5 [
"__env" => Factory {#148}
"app" => Application {#2}
"UeditorLangFile" => "/laravel-u-editor/lang/zh-cn/zh-cn.js"
"errors" => ViewErrorBag {#434}
"info" => array:14 [
"id" => 207
"category_id" => 3
"name" => "PHP专业实例开发 中文PDF版"
"imgurl" => "994f390341d246249457f2afbbc4b4cc.png"
"baiduurl" => "http://pan.baidu.com/s/1slog0TB"
"baidupwd" => "texr"
"description" => "本书是学习PHP编程的优秀参考书,其主要内容有:第1部分概述了PHP编程的基础知识,如PHP的安装和配置、变量、运算符和常量、控制结构、数组和函数、类的应用,并介绍了在线购物站点的创建过程:在第2部分到第6部分中,每部分都围绕一个专业项目展开讨论,并通过实例引导读者,通过由浅入深的方式学习各种专业项目的创建,如创建用户注册表单、存储和检索文件信息、MySQL与PHP的综合使用、创建产品目录和购物车以及发送电子邮件、用户身份验证和跟踪等;第7部分可以作为读者从项目中所学知识的总结,以及拓宽其知识的指导,这部分"
"content" => "<p><strong><span style="font-size: 12px; font-family: 宋体, SimSun;">PHP专业实例开发 中文PDF版数据目录:</span></strong></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">译者序 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">NIIT简介 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">作者简介 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">前言 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第1部分 PHP概述 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第1章 PHP概述 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第2章 PHP的安装和配置 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第3章 变量、运算符和常量 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第4章 控制结构 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第5章 数组 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第6章 函数 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第7章 理解类 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第8章 项目个案研究——创建在线购物站点 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第2部分 专业项目1 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目1 为在线购物站点创建用户注册表单 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第9章 HTML基础 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第10章 PHP中的表单解析 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第3部分 专业项目2 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目2 在文件中存储和检索信息 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第11章 处理文件 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第4部分 专业项目3 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目3 PHP与MYSQL的结合 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第12章 处理数据存储 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第13章 PHP与SQL数据库(MYSQL)的综合使用 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第5部分 专业项目4 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目4 创建产品目录和购物车并发送 电子邮件 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第14章 创建产品目录 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第15章 购物车 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第16章 发送电子邮件 第</span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">6部分 专业项目5 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目5 用户身份验证与跟踪 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第17章 用户身份验证脚本 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第18章 会话跟踪 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第7部分 专业项目6 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目6 超越实验室 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第19章 PHP中的图形 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第20章 PHP中的输入验证程序 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第21章 理解CVS </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第22章 PEAR </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第23章 PHP-NUKE </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第24章 COOKIES </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第8部分 附录 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录A 使用目录 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录B MCRYPT 库 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录C PHP中使用POSTGRESQL </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录D 基本HTML标记概览 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录E PHP函数概览 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录F 网站设计最佳实践</span></p><p><br/></p>"
"frequency" => 1
"click" => 111
"dclick" => 11
"created_at" => "2019-07-30 16:37:08"
"updated_at" => "2024-03-16 02:45:20"
"category_name" => "php"
]
]
/www
/wwwroot
/www.h5tpl.com
/vendor
/laravel
/framework
/src
/Illuminate
/View
/View.php
$this->factory->callComposer($this);
$contents = $this->getContents();
// Once we've finished rendering the view, we'll decrement the render count
// so that each sections get flushed out next time a view is created and
// no old sections are staying around in the memory of an environment.
$this->factory->decrementRender();
return $contents;
}
/**
* Get the evaluated contents of the view.
*
* @return string
*/
protected function getContents()
{
return $this->engine->get($this->path, $this->gatherData());
}
/**
* Get the data bound to the view instance.
*
* @return array
*/
protected function gatherData()
{
$data = array_merge($this->factory->getShared(), $this->data);
foreach ($data as $key => $value) {
if ($value instanceof Renderable) {
$data[$key] = $value->render();
}
}
return $data;
}
Arguments
"/www/wwwroot/www.h5tpl.com/resources/views/home/ebook/detail.blade.php"
array:5 [
"__env" => Factory {#148}
"app" => Application {#2}
"UeditorLangFile" => "/laravel-u-editor/lang/zh-cn/zh-cn.js"
"errors" => ViewErrorBag {#434}
"info" => array:14 [
"id" => 207
"category_id" => 3
"name" => "PHP专业实例开发 中文PDF版"
"imgurl" => "994f390341d246249457f2afbbc4b4cc.png"
"baiduurl" => "http://pan.baidu.com/s/1slog0TB"
"baidupwd" => "texr"
"description" => "本书是学习PHP编程的优秀参考书,其主要内容有:第1部分概述了PHP编程的基础知识,如PHP的安装和配置、变量、运算符和常量、控制结构、数组和函数、类的应用,并介绍了在线购物站点的创建过程:在第2部分到第6部分中,每部分都围绕一个专业项目展开讨论,并通过实例引导读者,通过由浅入深的方式学习各种专业项目的创建,如创建用户注册表单、存储和检索文件信息、MySQL与PHP的综合使用、创建产品目录和购物车以及发送电子邮件、用户身份验证和跟踪等;第7部分可以作为读者从项目中所学知识的总结,以及拓宽其知识的指导,这部分"
"content" => "<p><strong><span style="font-size: 12px; font-family: 宋体, SimSun;">PHP专业实例开发 中文PDF版数据目录:</span></strong></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">译者序 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">NIIT简介 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">作者简介 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">前言 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第1部分 PHP概述 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第1章 PHP概述 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第2章 PHP的安装和配置 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第3章 变量、运算符和常量 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第4章 控制结构 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第5章 数组 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第6章 函数 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第7章 理解类 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第8章 项目个案研究——创建在线购物站点 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第2部分 专业项目1 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目1 为在线购物站点创建用户注册表单 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第9章 HTML基础 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第10章 PHP中的表单解析 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第3部分 专业项目2 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目2 在文件中存储和检索信息 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第11章 处理文件 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第4部分 专业项目3 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目3 PHP与MYSQL的结合 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第12章 处理数据存储 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第13章 PHP与SQL数据库(MYSQL)的综合使用 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第5部分 专业项目4 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目4 创建产品目录和购物车并发送 电子邮件 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第14章 创建产品目录 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第15章 购物车 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第16章 发送电子邮件 第</span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">6部分 专业项目5 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目5 用户身份验证与跟踪 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第17章 用户身份验证脚本 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第18章 会话跟踪 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第7部分 专业项目6 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">项目6 超越实验室 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第19章 PHP中的图形 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第20章 PHP中的输入验证程序 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第21章 理解CVS </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第22章 PEAR </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第23章 PHP-NUKE </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第24章 COOKIES </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">第8部分 附录 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录A 使用目录 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录B MCRYPT 库 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录C PHP中使用POSTGRESQL </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录D 基本HTML标记概览 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录E PHP函数概览 </span></p><p><span style="font-size: 12px; font-family: 宋体, SimSun;">附录F 网站设计最佳实践</span></p><p><br/></p>"
"frequency" => 1
"click" => 111
"dclick" => 11
"created_at" => "2019-07-30 16:37:08"
"updated_at" => "2024-03-16 02:45:20"
"category_name" => "php"
]
]
/www
/wwwroot
/www.h5tpl.com
/vendor
/laravel
/framework
/src
/Illuminate
/View
/View.php
throw $e;
}
}
/**
* Get the contents of the view instance.
*
* @return string
*/
protected function renderContents()
{
// We will keep track of the amount of views being rendered so we can flush
// the section after the complete rendering operation is done. This will
// clear out the sections for any separate views that may be rendered.
$this->factory->incrementRender();
$this->factory->callComposer($this);
$contents = $this->getContents();
// Once we've finished rendering the view, we'll decrement the render count
// so that each sections get flushed out next time a view is created and
// no old sections are staying around in the memory of an environment.
$this->factory->decrementRender();
return $contents;
}
/**
* Get the evaluated contents of the view.
*
* @return string
*/
protected function getContents()
{
return $this->engine->get($this->path, $this->gatherData());
}
/**
/www
/wwwroot
/www.h5tpl.com
/vendor
/laravel
/framework
/src
/Illuminate
/View
/View.php
$this->view = $view;
$this->path = $path;
$this->engine = $engine;
$this->factory = $factory;
$this->data = $data instanceof Arrayable ? $data->toArray() : (array) $data;
}
/**
* Get the string contents of the view.
*
* @param callable|null $callback
* @return string
*
* @throws \Throwable
*/
public function render(callable $callback = null)
{
try {
$contents = $this->renderContents();
$response = isset($callback) ? call_user_func($callback, $this, $contents) : null;
// Once we have the contents of the view, we will flush the sections if we are
// done rendering all views so that there is nothing left hanging over when
// another view gets rendered in the future by the application developer.
$this->factory->flushStateIfDoneRendering();
return ! is_null($response) ? $response : $contents;
} catch (Exception $e) {
$this->factory->flushState();
throw $e;
} catch (Throwable $e) {
$this->factory->flushState();
throw $e;
}
}
/www
/wwwroot
/www.h5tpl.com
/vendor
/laravel
/framework
/src
/Illuminate
/Http
/Response.php
* @return $this
*/
public function setContent($content)
{
$this->original = $content;
// If the content is "JSONable" we will set the appropriate header and convert
// the content to JSON. This is useful when returning something like models
// from routes that will be automatically transformed to their JSON form.
if ($this->shouldBeJson($content)) {
$this->header('Content-Type', 'application/json');
$content = $this->morphToJson($content);
}
// If this content implements the "Renderable" interface then we will call the
// render method on the object so we will avoid any "__toString" exceptions
// that might be thrown and have their errors obscured by PHP's handling.
elseif ($content instanceof Renderable) {
$content = $content->render();
}
parent::setContent($content);
return $this;
}
/**
* Determine if the given content should be turned into JSON.
*
* @param mixed $content
* @return bool
*/
protected function shouldBeJson($content)
{
return $content instanceof Arrayable ||
$content instanceof Jsonable ||
$content instanceof ArrayObject ||
$content instanceof JsonSerializable ||
is_array($content);
/www
/wwwroot
/www.h5tpl.com
/vendor
/symfony
/http-foundation
/Response.php
504 => 'Gateway Timeout',
505 => 'HTTP Version Not Supported',
506 => 'Variant Also Negotiates', // RFC2295
507 => 'Insufficient Storage', // RFC4918
508 => 'Loop Detected', // RFC5842
510 => 'Not Extended', // RFC2774
511 => 'Network Authentication Required', // RFC6585
];
/**
* @param mixed $content The response content, see setContent()
* @param int $status The response status code
* @param array $headers An array of response headers
*
* @throws \InvalidArgumentException When the HTTP status code is not valid
*/
public function __construct($content = '', $status = 200, $headers = [])
{
$this->headers = new ResponseHeaderBag($headers);
$this->setContent($content);
$this->setStatusCode($status);
$this->setProtocolVersion('1.0');
}
/**
* Factory method for chainability.
*
* Example:
*
* return Response::create($body, 200)
* ->setSharedMaxAge(300);
*
* @param mixed $content The response content, see setContent()
* @param int $status The response status code
* @param array $headers An array of response headers
*
* @return static
*/
public static function create($content = '', $status = 200, $headers = [])
{
Arguments
/www
/wwwroot
/www.h5tpl.com
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Router.php
* @param mixed $response
* @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse
*/
public static function toResponse($request, $response)
{
if ($response instanceof Responsable) {
$response = $response->toResponse($request);
}
if ($response instanceof PsrResponseInterface) {
$response = (new HttpFoundationFactory)->createResponse($response);
} elseif (! $response instanceof SymfonyResponse &&
($response instanceof Arrayable ||
$response instanceof Jsonable ||
$response instanceof ArrayObject ||
$response instanceof JsonSerializable ||
is_array($response))) {
$response = new JsonResponse($response);
} elseif (! $response instanceof SymfonyResponse) {
$response = new Response($response);
}
if ($response->getStatusCode() === Response::HTTP_NOT_MODIFIED) {
$response->setNotModified();
}
return $response->prepare($request);
}
/**
* Substitute the route bindings onto the route.
*
* @param \Illuminate\Routing\Route $route
* @return \Illuminate\Routing\Route
*/
public function substituteBindings($route)
{
foreach ($route->parameters() as $key => $value) {
if (isset($this->binders[$key])) {
$route->setParameter($key, $this->performBinding($key, $value, $route));
Arguments
/www
/wwwroot
/www.h5tpl.com
/vendor
/laravel
/framework
/src
/Illuminate
/Routing
/Router.php
* Sort the given middleware by priority.
*
* @param \Illuminate\Support\Collection $middlewares
* @return array
*/
protected function sortMiddleware(Collection $middlewares)
{
return (new SortedMiddleware($this->middlewarePriority, $middlewares))->all();
}
/**
* Create a response instance from the given value.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* @param mixed $response
* @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse
*/
public function prepareResponse($request, $response)
{
return static::toResponse($request, $response);
}
/**
* Static version of prepareResponse.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* @param mixed $response
* @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse
*/
public static function toResponse($request, $response)
{
if ($response instanceof Responsable) {
$response = $response->toResponse($request);
}
if ($response instanceof PsrResponseInterface) {
$response = (new HttpFoundationFactory)->createResponse($response);
} elseif (! $response instanceof SymfonyResponse &&
($response instanceof Arrayable ||
$response instanceof Jsonable ||
Arguments
Request {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
View {#467}
/www
/wwwroot
/www.h5tpl.com
/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);
}
/**
Arguments
Request {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
View {#467}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/app
/Http
/Middleware
/AdminOperationLog.php
class AdminOperationLog
{
/**
* Handle an incoming request.
*
* @param $request
* @param \Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
$userId = Auth::id();
$queryParams = $request->all();
unset($queryParams['_token']);
$targetUrl = explode('?', isset($_SERVER['REQUEST_URI'])?$_SERVER['REQUEST_URI']:'')[0];
$ua = $_SERVER['HTTP_USER_AGENT'] ?? '';
$ip = ($request->ip() !== '127.0.0.1') ? $request->ip() : '139.129.50.178';
$this->writeLog($userId, $queryParams, $targetUrl, $ua, $ip);
return $next($request);
}
public function writeLog($userId, $queryParams, $targetUrl, $ua, $ip)
{
$adminOperationLogModel = new AdminOperationLogModel();
$adminOperationLogModel->user_id = $userId;
$adminOperationLogModel->target_url = $targetUrl;
$adminOperationLogModel->query_params = json_encode($queryParams);
$adminOperationLogModel->ua = $ua;
$adminOperationLogModel->ip = $ip;
$ipConvertService = new IpConvertService();
$ipData = $ipConvertService->convert($ip);
$adminOperationLogModel->province = $ipData['province'];
$adminOperationLogModel->opera_type = 1;
$adminOperationLogModel->save();
}
}
Arguments
Request {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#385
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#390 …}
parameters: {
$passable: {}
}
use: {
$destination: Closure {#380 …}
}
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#410
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#390 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#385 …}
$pipe: "App\Http\Middleware\AdminOperationLog"
}
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#411
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#390 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#410 …}
$pipe: "Illuminate\Routing\Middleware\SubstituteBindings"
}
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#412
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#390 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#411 …}
$pipe: "App\Http\Middleware\VerifyCsrfToken"
}
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#413
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#390 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#412 …}
$pipe: "Illuminate\View\Middleware\ShareErrorsFromSession"
}
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#414
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#390 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#413 …}
$pipe: "Illuminate\Session\Middleware\StartSession"
}
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#415
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#390 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#414 …}
$pipe: "Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse"
}
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#380
class: "Illuminate\Routing\Router"
this: Router {#25 …}
parameters: {
$request: {}
}
use: {
$route: Route {#232 …}
}
}
/www
/wwwroot
/www.h5tpl.com
/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 {#232}
Request {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Route {#232}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#213
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#30 …}
parameters: {
$passable: {}
}
use: {
$destination: Closure {#22 …}
}
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#293
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#30 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#213 …}
$pipe: "App\Http\Middleware\TrustProxies"
}
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#362
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#30 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#293 …}
$pipe: "Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull"
}
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#363
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#30 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#362 …}
$pipe: "App\Http\Middleware\TrimStrings"
}
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/vendor
/laravel
/framework
/src
/Illuminate
/Foundation
/Http
/Middleware
/CheckForMaintenanceMode.php
}
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*
* @throws \Symfony\Component\HttpKernel\Exception\HttpException
*/
public function handle($request, Closure $next)
{
if ($this->app->isDownForMaintenance()) {
$data = json_decode(file_get_contents($this->app->storagePath().'/framework/down'), true);
throw new MaintenanceModeException($data['time'], $data['retry'], $data['message']);
}
return $next($request);
}
}
Arguments
Request {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
Closure {#364
class: "Illuminate\Routing\Pipeline"
this: Pipeline {#30 …}
parameters: {
$passable: {}
}
use: {
$stack: Closure {#363 …}
$pipe: "Illuminate\Foundation\Http\Middleware\ValidatePostSize"
}
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/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 {#22
class: "Illuminate\Foundation\Http\Kernel"
this: Kernel {#29 …}
parameters: {
$request: {}
}
}
/www
/wwwroot
/www.h5tpl.com
/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 {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
/www
/wwwroot
/www.h5tpl.com
/public
/index.php
*/
$app = require_once __DIR__.'/../bootstrap/app.php';
/*
|--------------------------------------------------------------------------
| Run The Application
|--------------------------------------------------------------------------
|
| Once we have the application, we can handle the incoming request
| through the kernel, and send the associated response back to
| the client's browser allowing them to enjoy the creative
| and wonderful application we have prepared for them.
|
*/
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
$response->send();
$kernel->terminate($request, $response);
Arguments
Request {#42
#json: null
#convertedFiles: []
#userResolver: Closure {#381
class: "Illuminate\Auth\AuthServiceProvider"
this: AuthServiceProvider {#41 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Application {#2 …}
}
}
#routeResolver: Closure {#383
class: "Illuminate\Routing\Router"
this: Router {#25 …}
use: {
$route: Route {#232 …}
}
}
+attributes: ParameterBag {#44}
+request: ParameterBag {#50}
+query: ParameterBag {#50}
+server: ServerBag {#46}
+files: FileBag {#47}
+cookies: ParameterBag {#45}
+headers: HeaderBag {#48}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: array:1 [
0 => "*/*"
]
#pathInfo: "/ebook/207"
#requestUri: "/ebook/207"
#baseUrl: ""
#basePath: null
#method: "GET"
#format: null
#session: Store {#427}
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}