big-dream/think-jump
Composer 安装命令:
composer require big-dream/think-jump
包简介
ThinkPHP 8.0 跳转扩展
关键字:
README 文档
README
从 ThinkPHP 6.0 开始,从核心中移除Jump类,类里面包含success、error、redirect和result方法。这几个方法在项目里面用的蛮多的,所以将它们移植成一个扩展使用。
安装
composer require big-dream/think-jump:4.*
使用示例
Jump::success($msg, $url, $wait, $header, $data)
// 显示提示信息,然后返回上一页 \bigDream\thinkJump\Jump::success('操作成功!'); // 显示提示信息,然后返回Index/index页面 \bigDream\thinkJump\Jump::success('操作成功!', 'Index/index'); // 显示提示信息,然后15秒后返回Index/index页面 \bigDream\thinkJump\Jump::success('操作成功!', 'Index/index', 15); // 显示提示信息,并且为页面添加header头,然后15秒后返回Index/index页面 \bigDream\thinkJump\Jump::success('操作成功!', 'Index/index', 15, ['auth-token' => 'abcd学英语']);
Jump::error($msg, $url, $wait, $header, $data)
// 显示提示信息,然后返回上一页 \bigDream\thinkJump\Jump::error('操作失败!'); // 显示提示信息,然后返回Index/index页面 \bigDream\thinkJump\Jump::error('操作失败!', 'Index/index'); // 显示提示信息,然后15秒后返回Index/index页面 \bigDream\thinkJump\Jump::error('操作失败!', 'Index/index', 15); // 显示提示信息,并且为页面添加header头,然后15秒后返回Index/index页面 \bigDream\thinkJump\Jump::error('操作失败!', 'Index/index', 15, ['auth-token' => 'abcd学英语']);
Jump::redirect($url, $msg, $code, $header)
// 跳转到上一页 \bigDream\thinkJump\Jump::redirect(); // 跳转到Index/index页面,设置在AJAX请求下返回的信息 \bigDream\thinkJump\Jump::redirect('Index/index', '请先登录'); // 跳转到Index/index页面,设置状态码和在AJAX请求下返回的信息 \bigDream\thinkJump\Jump::redirect('Index/index', '请先登录', 301); // 跳转到Index/index页面,设置状态码、Header头和在AJAX请求下返回的信息 \bigDream\thinkJump\Jump::redirect('Index/index', '请先登录', 301, ['auth-token' => 'abcd学英语']);
Jump::result($data, $code, $msg, $type, $header)
$result = [ ['id' => 1, 'name' => 'jwj'], ['id' => 2, 'name' => 'china'], ]; // 返回封装后的数据集 \bigDream\thinkJump\Jump::result($result); // 返回封装后的数据集,并且设置code \bigDream\thinkJump\Jump::result($result, 'success'); // 返回封装后的数据集,并且设置code和msg \bigDream\thinkJump\Jump::result($result, 'success', '查询成功'); // 返回封装后的数据集,并且设置code、msg和数据类型 \bigDream\thinkJump\Jump::result($result, 'success', '查询成功', 'json'); // 返回封装后的数据集,并且设置code、msg、数据类型和Header头 \bigDream\thinkJump\Jump::result($result, 'success', '查询成功', 'json', ['auth-token' => 'abcd学英语']);
AJAX请求
当前请求信息header中的x-requested-with为XMLHttpRequest时,会被认定为AJAX请求。
这时候,程序根据header中的accept来自动判断客户端所需要的数据类型,然后返回对应的数据类型。
目前,仅支持三种数据类型:json、jsonp和xml。
JSON返回示例
{
"code": 0,
"msg": "操作成功!",
"url": "/Index/index",
"wait": 15,
"data": null
}
JSONP返回示例
可在请求信息中携带
callback参数来自定义JSONP回调方法,一般放在URL地址参数中,也可以放在POST参数中。
jsonpReturn({ "code": 0, "msg": "操作成功!", "url": "/Index/index", "wait": 15, "data": null });
XML返回示例
<?xml version="1.0" encoding="utf-8"?> <think> <code>0</code> <msg>操作成功!</msg> <url>/Index/index</url> <wait>15</wait> <data></data> </think>
返回Response
为了方便在中间件里使用,2.0.0版本增加了返回\think\Response对象的支持,只需要在调用跳转方法前调用returnResponse方法即可。
简单示例:
return \bigDream\thinkJump\Jump::returnResponse()->success('操作成功!'); return \bigDream\thinkJump\Jump::returnResponse()->error('操作失败!'); return \bigDream\thinkJump\Jump::returnResponse()->redirect(); reutrn \bigDream\thinkJump\Jump::returnResponse()->result([ ['id' => 1, 'name' => 'jwj'], ['id' => 2, 'name' => 'china'], ]);
中间件完整示例:
<?php namespace app\middleware; use bigDream\thinkJump\Jump; class Check { /** * @param \think\Request $request * @param \Closure $next * @return \think\Response */ public function handle($request, \Closure $next) { if (time() % 2) { return Jump::returnResponse()->error('呀,偶数不能访问!'); } else { return $next($request); } } }
配置
配置文件
引入本包时,默认会在配置文件目录 /config 自动创建 jump.php 配置文件,可根据需求修改配置内容。
<?php // 跳转配置 return [ // 成功跳转页面模板文件 'success_tmpl' => app()->getRootPath() . 'vendor/big-dream/think-jump/src/success.html', // 成功跳转页停留时间(秒) 'success_wait' => 3, // 成功跳转的code值 'success_code' => 0, // 错误跳转页面模板文件 'error_tmpl' => app()->getRootPath() . 'vendor/big-dream/think-jump/src/error.html', // 错误跳转页停留时间(秒) 'error_wait' => 3, // 错误跳转的code值 'error_code' => 1, // 默认AJAX请求返回数据格式,可用:Json,Jsonp,Xml 'ajax_return' => 'Json', ];
动态修改配置
如果想使用时,动态修改配置,可以使用Jump::setConfig()方法。
// 修改单项配置 \bigDream\thinkJump\Jump::setConfig('success_wait', 1); // 修改多项配置 \bigDream\thinkJump\Jump::setConfig([ // 成功跳转页停留时间(秒) 'success_wait' => 3, // 成功跳转的code值 'success_code' => 0, // 错误跳转页停留时间(秒) 'error_wait' => 3, // 错误跳转的code值 'error_code' => 1, // 默认AJAX请求返回数据格式,可用:Json,Jsonp,Xml 'ajax_return' => 'Json', ]);
获取当前配置
// 获取全部配置 dump(\bigDream\thinkJump\Jump::getConfig()); // 获取单项配置 dump(\bigDream\thinkJump\Jump::getConfig('success_wait'));
big-dream/think-jump 适用场景与选型建议
big-dream/think-jump 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 468 次下载、GitHub Stars 达 2, 最近一次更新时间为 2019 年 12 月 10 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「controller」 「thinkphp」 「jump」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 big-dream/think-jump 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 big-dream/think-jump 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 big-dream/think-jump 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Give your JS App some Backbone with Models, Views, Collections, and Events.
Speaking URL fragments (anchors) - Adds a slug field for human-readable anchors ("domain.com/page/#my-section") to TYPO3 content elements. By default, this anchor is rendered as the header's id attribute.
这是使用阿里云日志服务sls的thinkphp6.0日志驱动,支持函数计算
用于 thinkphp6 框架上的基于 OCI 的 Oracle 数据库驱动。thinkphp5.1 请使用 1.0 版本
ThinkPHP6分页驱动
Create mail from controller action render
统计信息
- 总下载量: 468
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 3
- 点击次数: 10
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-12-10