php ifp,人人商城微擎的ifp ife ifpp的作用

ifp 当前用户是否有  控制器--方法 的权限 包括add edit del send view等 方法必带

ifpp 当前用户是否有  插件 的权限

ife 当前用户是否有  控制器--方法 的权限 编辑或添加 第二个参数是当前的数据数组 如果数组包含id 则验证edit方法 如果数组不包含 则验证add方法  第二个参数如果不带 完全等于ifp

ife是ifp的简化用法

下面是思路

先去搜索这几个函数的解析

$str = preg_replace('/{ifp\\s+(.+?)}/', '<?php if(cv($1)) { ?>', $str);

$str = preg_replace('/{ifpp\\s+(.+?)}/', '<?php if(cp($1)) { ?>', $str);

$str = preg_replace('/{ife\\s+(\\S+)\\s+(\\S+)}/', '<?php if( ce($1 ,$2) ) { ?>', $str);

function cv($permtypes = '') {

$perm = com_run('perm::check_perm', $permtypes);

return $perm;

}

if (!function_exists('cp')) {

function cp($pluginname = '') {

$perm = com('perm');

if ($perm) {

return $perm->check_plugin($pluginname);

}

return true;

}

}

function ce($permtype = '', $item = NULL) {

$perm = com_run('perm::check_edit', $permtype, $item);

return $perm;

}

cv为例子

com_run 的意思 com(perm) 类 执行check_perm

com(perm) = $model = EWEI_SHOPV2_CORE . 'com/' . strtolower($name) . '.php';

也就是Perm_EweiShopV2ComModel类

的check_perm  方法

这个方法 根据& 和| 来拆分参数 并调用check

check再往下看  调用了用户角色表 那应该就是校检权限

ifp和ife的区别在于check_perm和check_edit

看check_edit函数里面的一段

if (!($this->check_perm($permtype)))

{

return false;

}

if (empty($item['id']))

{

$add_perm = $permtype . '.add';

if (!($this->check($add_perm)))

{

return false;

}

return true;

}

$edit_perm = $permtype . '.edit';

if (!($this->check($edit_perm)))

{

return false;

}

核心区别是 check_edit 会自动转化为edit或add

其他就跟check_perm一样了

所以结论

ifp 当前用户是否有  控制器--方法 的权限 包括add edit del 可能有查看吧 方法必带

ifpp 当前用户是否有  插件 的权限

ife 当前用户是否有  控制器--方法 的权限 编辑或添加 第二个参数是当前的数据数组 如果数组包含id 则验证edit方法 如果数组不包含 则验证add方法

ife是ifp的简化用法

上面是跟下代码的大概推论 去验证了下

ife

比如{ife 'goods' $item} 后面的item参数  是用来验证是否要验证add还是验证edit方法

{ife 'merch.user' $item} ife的写法都是这样  控制器+model(不加add/edit/del/..方法) +当前的实际数组

ifp

{ifp 'messages.delete'}

{ifp 'meeting.live.notice.send'}

一定是 控制器+model+具体方法(add/edit/del/send..方法)

ifpp没见到用

所以猜测基本正确

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值