数据库+大模型,数据库的使用者们会有哪些变化?【开源漫谈】第十五期直播来袭!
PHP-Casbin 是一个用 PHP 语言打造的轻量级开源访问控制框架,支持 ACL、RBAC、ABAC 多种模型。它采用了元模型的设计思想,支持多种经典的访问控制方案,如基于角色的访问控制 RBAC、基于属性的访问控制 ABAC 等。
更新内容:
https://github.com/php-casbin/php-casbin/releases/tag/v4.0.0
- 使用 Symfony Cache 组件重新实现 CachedEnforcer,遵循 PSR-6 规范
- 新增条件角色管理器(ConditionalRoleManager),使 RBAC 权限控制支持角色的条件定义
- 将 PHP 的最低版本升级为 PHP 8.0,充分利用 PHP 8.0 的新特性
- 重构 Logger,支持直接使用 PRS-3 规范的日志实现,不在单独使用桥接(casbin/psr3-bridge)
另外,除了主库更新外,还提供了一个全新的 PHP-Casbin 起步套件(Starter kit),该套件结合 Laravel-Authz 和 Jetstream 实现,帮助新手开发者快速了解 PHP-Casbin 。
Casbin 开源项目介绍
Casbin 是一个强大的、高效的开源访问控制框架。涉及到 Go、Java、Node.js、Javascript (React)、Python、PHP、.NET、Delphi、Rust 等多种语言。
支持多种访问控制模型,在Casbin,访问控制模型是基于PERM元模型 (Policy, Effect, Request, Matchers) 压缩而成的一个CONF文件。 因此,项目授权机制的转换或升级就像修改配置一样简单。
灵活的策略储存方式,除了内存和文件外,Casbin 策略还可以存储在许多地方。 目前 Casbin 已经支持了从MySQL、Postgres、Oracle到MongoDB、Redis、Cassandra、AWS S3等数十种数据库。
跨语言 & 跨平台,Casbin 已经使用Golang、Java、PHP和Node.js等等语言实现。 所有的实现共享相同的 API 和行为。学习一次即可到处使用。
使用PHP-Casbin:
安装:
composer update casbin/casbin
快速使用:
- 初始化决策器
require_once './vendor/autoload.php'; use Casbin\Enforcer; $e = new Enforcer("path/to/model.conf", "path/to/policy.csv");
- 进行权限决策
$sub = "alice"; // the user that wants to access a resource. $obj = "data1"; // the resource that is going to be accessed. $act = "read"; // the operation that the user performs on the resource. if ($e->enforce($sub, $obj, $act) === true) { // permit alice to read data1 } else { // deny the request, show an error }
项目托管仓库:
Github:https://github.com/php-casbin/php-casbin
码云:https://gitee.com/casbin/php-casbin
还没有评论,来说两句吧...