php swoft 路由,Swoft 学习笔记之控制器

创建控制器

主要通过 @Controller 注解实现,代码可以放在任意位置,但为了统一标准,建议放在 app/Http/Controller 目录下

使用注解@Controller(prefix="路由前缀"),需要引入 Controller 类

路由绑定

swoft 并没有采用配置文件的方式来配置路由,而是采用了注解,可以使用 @RequestMapping 注解添加路由

使用注解 @RequestMapping ,需要引入该类,其中相关属性如下:

route 指定路由

method 指定请求方式(GET、POST、PUT、PATCH、DELETE、OPTIONS、HEAD)

params 指定path变量正则匹配限制

请求对象

请求对象 Request 为 Swoft\Http\Message\Request

获取请求对象

通过控制器方法参数注入 (Request $request)

通过请求上下文获取 Swoft\Context\Context::mustGet()->getRequest()

请求对象获取请求数据

由于获取请求数据内容较多,后面单独讲解,暂时缺省

响应对象

响应对象 Response 为 Swoft\Http\Message\Response

获取响应对象

通过控制器方法参数注入 (Response $response)

通过请求上下文获取 Swoft\Context\Context::mustGet()->getResponse()

响应对象返回数据

由于获取请求数据内容较多,比如设置状态码,输出字符串内容,设置响应数据格式,输出数组,重定向等,后面单独讲解,暂时缺省

参数验证

永远不要相信前端传输的数据

swoft 提供系统自带的验证规则进行声明验证器以及自定义验证器的功能,当然也支持自定义验证器规则,此处缺省,后续文章会详细介绍

代码样例

基类Controller

namespace app\Http\Controller;

use Swoft\Http\Message\Request;

interface BaseController

{

public function index(Request $request);

public function show(Request $request);

public function edit(Request $request);

public function update(Request $request);

public function create();

public function store(Request $request);

public function destroy(Request $request);

}

实现类

namespace app\Http\Controller\Admin;

use app\Http\Controller\BaseController;

use Swoft\Http\Message\Request;

use Swoft\Http\Server\Annotation\Mapping\Controller;

use Swoft\Http\Server\Annotation\Mapping\RequestMethod;

use Swoft\Validator\Annotation\Mapping\Validate;

use app\Validator\TestValidator;

use Swoft\Context\Context;

/**

* Class TestController

* @package app\Http\Controller\Admin

* @Controller(prefix="/admin/test")

*/

class TestController implements BaseController

{

/**

* @RequestMapping(route="index",method={RequestMethod::GET})

* @Validate(validator="TestValidator",fields={"name"})

* @param Request $request

*/

public function index(Request $request){

$response = Context::mustGet()->Response();

$data = ['name'=>'Swoft2.0'];

return $response->withData($data);

}

public function show(Request $request){

}

public function edit(Request $request){

}

public function update(Request $request){

}

public function create(){

}

public function store(Request $request){

}

public function destroy(Request $request){

}

}

本作品采用《CC 协议》,转载必须注明作者和本文链接

趁还没掉光,赶紧给每根头发起个名字吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值