[ Laravel 5.3 文档 ] HTTP层 —— 控制器

1、简介 将所有的请求处理逻辑都放在单个 routes.php 中显然是不合理的,你也许还希望使用控制器类组织管理这些行为。控制器可以将相关的 HTTP 请求封装到一个类中进行处理。通常控制器存放在 app/Http/Controllers 目录中。 2、基本控制器 定义控制器 下面是一个基本控制器类的例子。所有的 Laravel 控制器应该继承自 Laravel 自带的控制器基类 Co…

[ Laravel 5.3 文档 ] HTTP层 —— CSRF保护

简介 跨站请求伪造是一种通过伪装授权用户的请求来利用授信网站的恶意漏洞。Laravel 使得防止应用遭到跨站请求伪造攻击变得简单。 Laravel 自动为每一个被应用管理的有效用户会话生成一个 CSRF “令牌”,该令牌用于验证授权用户和发起请求者是否是同一个人。 任何时候在 Laravel 应用中定义HTML表单,都需要在表单中引入CSRF令牌字段,这样CSRF保护中间件才能够正常验证…

最佳实践系列(一)—— 漫谈 PHP 组件、框架、Composer 那些事

1、什么是组件 组件是一组打包的代码,是一系列相关的类、接口和Trait,用于帮助我们解决PHP应用中某个具体问题。例如,你的PHP应用需要收发HTTP请求,可以使用现成的组件如guzzle/guzzle实现。我们使用组件不是为了重新实现已经实现的功能,而是把更多时间花在实现项目的长远目标上。 优秀的PHP组件具备以下特性: 作用单一:专注于解决一个问题,而且使用简单的接口封装功能 小型…

现代 PHP 新特性系列(七) —— 内置的 HTTP 服务器

从 PHP 5.4.0 起,PHP内置了Web服务器,这对于认为需要Apache或Nginx才能预览PHP应用的开发者来说又是一个隐藏功能。这个内置的Web服务器不应该用于生产环境,但对于本地开发来说是个极好的工具。Laravel Valet 起初就是使用这个内置的服务器,但是在1.1.0版本后将其替换为Caddy(查看相关新闻)。 1、启动 这个内置的Web服务器很容易启动,打开终端(…

[ Lumen 5.2 文档 ] 更多特性 —— 单元测试

1、简介 Lumen植根于测试,实际上,使用PHPUnit对测试提供支持是开箱即用的,并且测试配置文件phpunit.xml已经为应用设置好了。框架还提供了很多辅助函数从而允许你对应用进行更加富有表现力的测试。 tests目录中提供了一个ExampleTest.php文件,安装完新的Lumen应用后,只需简单在命令行运行phpunit即可运行测试。 1.1 测试环境 Lumen在测试时自…

[ Lumen 5.2 文档 ] 更多特性 —— 错误 & 日志

1、简介 开始一个新的Lumen项目的时候,错误和异常处理已经默认为你配置好了。此外,Lumen还集成了提供各种功能强大日志处理器的Monolog日志库。 2、配置 错误详情 配置文件.env中的APP_DEBUG配置选项控制浏览器显示的错误详情数量。 对本地开发而言,你应该设置环境变量APP_DEBUG值为true。在生产环境,该值应该被设置为false。 自定义Monolog配置 如…

[ Lumen 5.2 文档 ] 基础 —— HTTP 响应

1、基本响应 所有路由和控制器都会返回某种被发送到用户浏览器的响应,Lumen提供了多种不同的方式来返回响应,最基本的响应就是从路由或控制器返回一个简单的字符串: $app->get(‘/’, function () { return ‘Hello World’; }); 给定的字符串会被框架自动转化为HTTP响应。 响应对象 但是大多数路由和控制器动作都会返回一个完整的Illum…

[ Lumen 5.2 文档 ] 基础 —— HTTP 请求

1、访问请求实例 通过依赖注入获取当前HTTP请求实例,应该在控制器的构造函数或方法中对Illuminate\Http\Request类进行类型提示,当前请求实例会被服务容器自动注入: <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Routing\Controlle…

[ Lumen 5.2 文档 ] 基础 —— HTTP 控制器

1、简介 将所有的请求处理逻辑都放在单个routes.php中肯定是不合理的,你也许还希望使用控制器类组织管理这些行为。控制器可以将相关的HTTP请求封装到一个类中进行处理。通常控制器存放在app/Http/Controllers目录中。 2、基本控制器 下面是一个基本控制器类的例子。所有的Lumen控制器应该继承自Lumen安装默认的基本控制器: <?php namespace …

[ Lumen 5.2 文档 ] 基础 —— HTTP 中间件

1、简介 HTTP中间件提供了一个便利的机制来过滤进入应用的HTTP请求。例如,Lumen包含了一个中间件来验证用户是否经过授权,如果用户没有经过授权,中间件会将用户重定向到登录页面,否则如果用户经过授权,中间件就会允许请求继续往前进入下一步操作。 当然,除了认证之外,中间件还可以被用来处理更多其它任务。比如:CORS中间件可以用于为离开站点的响应添加合适的头(跨域);日志中间件可以记录…