授权策略 (UserPolicy) 的意义是什么?授权策略为什么不能写在控制器里呢?

授权策略(UserPolicy)的意义是什么?授权策略为什么不能写在控制器里呢?
比如

return  $currentUser->id  ===  $user->id;

类似的权限限制,在控制器里也可以完成。那么独立出来一个授权策略的作用是什么呢?

而且,怎么判断哪些逻辑应该写在控制器里?哪些逻辑应该写在授权策略里呢?

乌鸦嘴新手社区 wyz.xyz 为技术新手提供服务
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

首先,把所有东西都写在控制器里在业务逻辑复杂之后会导致控制器包含许多功能,不方便维护,因此使用policy类将功能拆分到其他文件中可以使代码逻辑更加清楚。

其次,策略模型还支持一些 更为详细的响应, 这些功能都是单纯的控制器很难提供的。

4年前 评论
shebaoting (楼主) 4年前
讨论数量: 2

刚学也不咋懂 ,感觉是提出来专门做授权的公共类 ,见官方

Policies 目录

用户授权

4年前 评论
shebaoting (楼主) 4年前

首先,把所有东西都写在控制器里在业务逻辑复杂之后会导致控制器包含许多功能,不方便维护,因此使用policy类将功能拆分到其他文件中可以使代码逻辑更加清楚。

其次,策略模型还支持一些 更为详细的响应, 这些功能都是单纯的控制器很难提供的。

4年前 评论
shebaoting (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!