前言
通过实现php提供的 ArrayAccess
接口,可以方便的实现像操作数组一样访问对象
ArrayAccess接口
php提供的接口,我们看一下要实现的内容
|
|
通过实现php提供的 ArrayAccess
接口,可以方便的实现像操作数组一样访问对象
php提供的接口,我们看一下要实现的内容
|
|
可以先参看 中文官方文档
yii 为我们提供的两种存储方式一种是文件方式一种是数据库方式,这里我们直接使用数据库的方式,yii 文档给的是直接写代码执行的方式,这种虽然更灵活,但是不够直观,而且最常用到的地方就是后台,所以我们使用可视化的模块 yii-admin
yii-admin
扩展过的rbac 和 yii 自带的有一点区别的是权限,yii以权限为基础,而yii-admin
是以路由为基础的,这一点会在验证的时候进行体现, yii的是Yii::$app->user->can(role||permission, params)
,而 yii-admin 的是Yii::$app->user->can(route, params)
首先安装 yii-admin
扩展,github地址
执行创建相关表的 migrate
之前需要先配置一下权限管理方式,我们这里选择数据库存储方式(这里配置的是脚本的配置文件 console 下的)
两条命令,首先创建yii自带的rbac相关表
|
|
注意,如果AccessControll配置的需要验证的action,在配置的rules中如果验证没有通过或者没有rule来验证当前请求的action(也就是不符合所有rule需要验证的action)都会拒绝访问
使用 isinstance()
判断一个对象是否是可迭代(Iterable
)对象
可迭代对象通过 __iter__
方法向我们提供一个迭代器,我们在迭代一个可迭代对象的时候,实际上就是先获取该对象提供的一个迭代器(通过 __iter__
方法获取),然后通过这个迭代器来依次获取对象中的每一个数据.