ThinkPHP5 之 前置操作

前置操作

   首先,在实际业务中假设这样一个场景,我需要做一套管理系统的,这个管理系统是教师对学生进行管理的一个工具,那么,甲方还给出这样的需求,主任的权限更多,可以进行更多的操作,而老师的权限较低,拥有的权限少。

   那么对于每一个服务端的接口来说,有分为老师和主任两种类型的用户进行请求接口,可能对于学籍信息删除这一操作老师没有这样的权限,但是主任有这样的权限,这时候我们就需要在每一个接口前面加一个权限的判断,但是主任有权限的而老师没有权限的接口可能有几十个,那么我们每个接口的开头都写一个重复的权限判断就显得有点冗余。

   我们就可以借助ThinkPHP提供的前置操作来帮助我们减少这种冗余的情况,让封装性更好。

   还有什么情况可以使用,例如很多接口需要验证token的有效性但是不需要用token取出东西来,我们就可以借助前置操作来完成。

  

我们来看这个前置操作是什么,这是ThinkPHP 5官方文档里面是这么写的,如果你想指定某些操作前先执行某个函数的话你就可以调用这个前置操作,什么意思呢,换而言之就是我们每个接口的前面需要验证登入者的权限,那么我们就可以在需要的接口前面调用我们的前置操作来帮助我们完成任务。

 

那么我们往下看前置方法要如何使用:

红框内的三个方法就是定义的前置方法,TP这里提供了三种将前置方法加载自己的方法前面的写法,首先beforeActionList最上面的那个'first'后面没有跟随其他的东西,说明他是作用于该控制器下的所有方法的,也就是每一个方法的前面都会先调用这个first前置操作

同理,second将作用于除了hello的方法上也就是data

third将作用于指定的hello和data的方法上

官网文档给出示例:

结果和我们想象的一样

 

在自己的ThinkPHP上使用前置操作:

看到官方文档里面的前置操作的方法是写在当前控制器下面的,我们可以为所有的控制器建造一个父类,也就是基类,然后我们共有的方法都可以放在里面。

然后我们在自己的控制器继承基类,并且采用前置操作,可以看到前置操作的三个方法我们都写在了父类里面并且采用protected类型,然后基类的验证方法的具体实现我们写进model里面。

可以看到我们让检验第一权限的方法作用于testFirstPermission方法前,检验二级权限的方法作用于testSecondPermission方法之前。

方法的实现如下:

里面有注释就不解释了

该方法作用于testFirstPermission方法上,所以我们可以测试一下testFirstPermission方法,因为我们是通过Cache来存储权限的,所以我们首先要存入Cache:(Cache相关可以看我的博客https://blog.csdn.net/qq_36652619/article/details/81140939)

我们先调用一下存入缓存的方法:

ps:路由如下(路由相关我的博客 https://blog.csdn.net/qq_36652619/article/details/80292318)

调用成功,我们可以看到存入缓存了

ok,可以看到token为token1的用户的权限为100, token为token2的用户的权限为200

ps:权限定义如下

一级是200,二级是100

那么我们使用token1去验证testFirstPermission接口理论上是不会成功的,因为100的权限不足够,一级权限最低为200

让我们来验证是否真的是这样的:

结果和我们想象的一样

如果我们输入足够的权限的话也就是token2的话,是如何呢?

验证成功

ok没有问题,接下来我们再来测试一下token的有效性

方法是这样的,如果从Cache中能找到缓存说明有效,找不到说明无效

从上面我们存入缓存来看,只有token1、token2、token3才是有效token,那么我们给出一个无效的会如何

验证是不通过的,如果给出正确的就可以通过了

 

以上就是ThinkPHP 5的前置操作的简单使用

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: ThinkPHP5 ERP 是一种基于ThinkPHP5框架开发的企业资源管理系统。ThinkPHP5是一种高效、快速、简洁的PHP开发框架,它集成了许多常用功能和工具,使开发人员可以更快速地构建功能强大的应用程序。 ThinkPHP5 ERP 是为企业提供管理和优化资源的一种解决方案。它涵盖了企业各个方面的管理需求,包括人力资源、财务、供应链、物流、销售、采购等,帮助企业提高效率、降低成本、提供更好的服务。 使用ThinkPHP5 ERP,企业可以实时跟踪和管理各个环节的业务数据,通过数据分析和报表功能,可以进行精细化的业务管理和决策。同时,它还具备权限管理、多语言支持、多平台适配等功能,使企业可以根据自身需求进行定制和扩展。 ThinkPHP5 ERP 的特点还包括安全性和稳定性。它采用了一系列安全机制,如数据加密、访问控制等,保证企业数据的安全;同时,通过框架的优化设计和缓存技术,使系统具备较高的稳定运行能力。 总而言之,ThinkPHP5 ERP 是一种强大的企业资源管理系统,它结合了ThinkPHP5框架的优势和ERP解决方案的全面性,为企业提供了集中管理和优化资源的工具,有助于企业提高效率、降低成本、实现可持续发展。 ### 回答2: ThinkPHP5 ERP 是基于ThinkPHP5 框架开发的一款企业资源规划(ERP)管理系统。它为企业提供了全面的管理和控制功能,助力企业实现高效的运营管理。 ThinkPHP5 ERP 系统具备多个主要模块,包括销售管理、采购管理、库存管理、财务管理、人力资源管理等。这些模块之间能够实现数据的交互和共享,使得企业内部的各个部门能够有效协作,提高工作效率。 销售管理模块可以帮助企业实现从订单管理到客户关系管理的全过程管理。通过销售模块,企业可以更好地了解客户需求,提供个性化的服务,增加客户满意度。 采购管理模块可以帮助企业实现从供应商选择、采购申请到采购订单管理的全过程管理。通过采购模块,企业可以更好地管理供应链,控制采购成本,提高采购效率。 库存管理模块可以帮助企业实现从采购入库到销售出库的库存管理。通过库存模块,企业可以实时了解库存状态,避免过多的库存积压,提高资金利用效率。 财务管理模块可以帮助企业实现财务核算、财务报表生成等功能。通过财务模块,企业能够准确了解财务状况,确保财务数据的准确性和可靠性。 人力资源管理模块可以帮助企业实现人员招聘、员工培训、绩效考核等功能。通过人力资源模块,企业可以最大程度地发挥员工的潜力,提高整体团队的工作效率。 总之,ThinkPHP5 ERP 系统是一款功能全面、易于使用的企业管理软件,能够帮助企业实现高效管理和运营。它具有良好的扩展性和稳定性,在实际应用中已经显示出了很好的效果,也得到了广大企业的认可和好评。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_我走路带风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值