Web Development တွင်ခွင့်ပြုချက်စီမံခန့်ခွဲမှုသည်အလွန်အရေးကြီးသောအစိတ်အပိုင်းဖြစ်သည်။ များသောအားဖြင့်ကျွန်ုပ်တို့သည်မတူညီသောအသုံးပြုသူများ၏ခွင့်ပြုချက်များအပေါ် အခြေခံ. အချို့သောအရင်းအမြစ်များကိုကန့်သတ်ထားသည်။ PHP တွင်ကျွန်ုပ်တို့သည် array_filter () function ကိုထိရောက်စွာ filter permissions သို့သုံးနိုင်သည်။ အထူးသဖြင့်အသုံးပြုသူခွင့်ပြုချက်အချက်အလက်များသည်အလွန်ကောင်းမွန်သည်။ ဤဆောင်းပါးသည် array_filter () နှင့်ပေါင်းစပ်ခြင်းဖြင့်ခွင့်ပြုချက်စစ် function ကိုလျင်မြန်စွာအကောင်အထည်ဖော်နိုင်ပုံကိုမိတ်ဆက်ပေးလိမ့်မည်။
PHP ၏ Array_filter () function ကို acray တစ်ခုတွင် element များကို filter လုပ်ရန်အသုံးပြုသည်။ ဤလုပ်ဆောင်ချက်သည်ခင်းကျင်းမှုတစ်ခုနှင့် callback function ကိုလက်ခံသည်။ callback function ကို၏ပြန်လာတန်ဖိုးမှာ မှန် သို့မဟုတ် မှားယွင်းသော ဖြစ်ပါတယ်။ array_filter () သည် calnback function ၏ပြန်လာတန်ဖိုးကို အခြေခံ. array တွင် element များကို reter လုပ်မထား,
အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
array_filter(array $array, callable $callback, int $mode = 0): array
$ array : filter သို့ array ။
$ callback : filtering များအတွက် callback function ကို။
$ mode : callback function ကိုဖြတ်သန်းတန်ဖိုးကိုဆုံးဖြတ်ရန်အတွက် $ mode: optional parameter သည်။ 0 သည် Value Transmission Method ဖြစ်သည်, 1 သည်သော့ထုတ်လွှင့်နည်းလမ်းဖြစ်သည်။
အသုံးပြုသူများသည်မတူညီသောအသုံးပြုသူများကို 0 င်ရောက်နိုင်သည့်အရင်းအမြစ်များကိုမှတ်တမ်းတင်ထားသောခွင့်ပြုချက်စာရင်းတွင်ရှိသည်ဆိုပါစို့။
$permissions = [
'admin' => ['view_dashboard', 'edit_settings', 'view_reports'],
'editor' => ['view_dashboard', 'view_reports'],
'viewer' => ['view_dashboard'],
];
အရင်းအမြစ်များကိုအသုံးပြုသူအခန်းကဏ် on အပေါ် အခြေခံ. 0 င်ခွင့်ရသည့်အရင်းအမြစ်များကိုစစ်ထုတ်လိုပါသည်။ admin assistian သည်အရင်းအမြစ်များအားလုံးကိုရယူရန်ခွင့်ပြုချက်တောင်းရန်လိုအပ်ကြောင်းဟုယူဆခြင်းသည် အယ်ဒီတာ နှင့် ကြည့်ရှုသူများကို အသုံးပြုသူများသည်အချို့သောကန့်သတ်ချက်များရှိသည်။
$user_role = 'editor'; // ဒါဟာလက်ရှိအယ်ဒီတာအခန်းကဏ် ery ဖြစ်ပါတယ်ယူဆ
// လက်ရှိအခန်းကဏ် in အတွက်ခွင့်ပြုချက်ဖြင့်အရင်းအမြစ်များကို filter
$user_permissions = $permissions[$user_role];
// စစ်ထုတ်ရန်လိုအပ်သည့်အရင်းအမြစ်များစာရင်း
$all_permissions = ['view_dashboard', 'edit_settings', 'view_reports', 'delete_post'];
$filtered_permissions = array_filter($all_permissions, function ($permission) use ($user_permissions) {
return in_array($permission, $user_permissions);
});
print_r($filtered_permissions);
ရလဒ်ရလဒ် -
Array
(
[0] => view_dashboard
[2] => view_reports
)
ဒီဥပမာကတဆင့် array_filter () function ကကျွန်တော်တို့ကိုလက်ရှိအသုံးပြုသူအခန်းကဏ် of ရဲ့ခွင့်ပြုချက်ကိုစစ်ထုတ်ဖို့ကူညီပေးတယ်ဆိုတာငါတို့တွေ့နိုင်တယ်။
အမှန်တကယ်စီမံကိန်းများအရခွင့်ပြုချက်စီစစ်ခြင်းသည်ရှုပ်ထွေးမှုအမျိုးမျိုးကိုပိုမိုရှုပ်ထွေးနိုင်သည်။ ဥပမာအားဖြင့်အချို့သောအခြေအနေများနှင့်တွေ့ဆုံပါကအချို့သောစစ်ဆင်ရေးများကိုသာပြုလုပ်နိုင်သည်။ သို့မဟုတ်အချို့သောအရင်းအမြစ်များသည်တိကျသောခွင့်ပြုချက်ပေါင်းစပ်မှုများလိုအပ်သည်။
အောက်ပါခွင့်ပြုချက်အချက်အလက်များရှိသည်ဆိုပါစို့။
$permissions = [
'admin' => ['view_dashboard', 'edit_settings', 'view_reports'],
'editor' => ['view_dashboard', 'view_reports'],
'viewer' => ['view_dashboard'],
];
// အသုံးပြုသူအခန်းကဏ်။
$user_role = 'admin';
// အပိုဆောင်းအသုံးပြုသူခွင့်ပြုချက်ကန့်သတ်ချက်များ
$user_restrictions = ['edit_settings']; // admin အခန်းကဏ် editing ကိုတည်းဖြတ်ခြင်းဆက်တင်များကိုခွင့်မပြုပါနှင့်
// လက်ရှိအခန်းကဏ် in အတွက်ခွင့်ပြုချက်ဖြင့်အရင်းအမြစ်များကို filter并应用额外的权限限制
$user_permissions = $permissions[$user_role];
$all_permissions = ['view_dashboard', 'edit_settings', 'view_reports', 'delete_post'];
$filtered_permissions = array_filter($all_permissions, function ($permission) use ($user_permissions, $user_restrictions) {
return in_array($permission, $user_permissions) && !in_array($permission, $user_restrictions);
});
print_r($filtered_permissions);
ရလဒ်ရလဒ် -
Array
(
[0] => view_dashboard
[2] => view_reports
)
ဤဥပမာတွင်အသုံးပြုသူအခန်းကဏ် of ၏ခွင့်ပြုချက်များကိုကျွန်ုပ်တို့ filter မလုပ်ဘဲ user_retri.s အပေါ် အခြေခံ. ခွင့်ပြုချက်များကိုလည်းထပ်မံကန့်သတ်ထားသည်။
array_filter () သည် PHP တွင်အလွန်အသုံးဝင်သော function တစ်ခုဖြစ်သည်။ ၎င်းသည် US လုပ်ငန်းစဉ်နှင့် filter များကိုထိထိရောက်ရောက်ကူညီနိုင်သည်။ ခွင့်ပြုချက်စီမံခန့်ခွဲမှုတွင် array_filter ကိုပေါင်းစပ်ခြင်း array_filter () သည် မတူညီသောအသုံးပြုသူ၏အခန်းကဏ် and နှင့်ခွင့်ပြုချက်လိုအပ်ချက်များကို အခြေခံ. လိုအပ်သောခွင့်ပြုချက်များကိုအလွယ်တကူ filter လုပ်နိုင်သည်။ အကယ်. သင့်စီမံကိန်းတွင်ခွင့်ပြုချက်အချက်အလက်များစွာရှိပါက array_filter () ကို သုံး. code ၏ဖတ်နိုင်မှုကိုတိုးတက်အောင်မလုပ်နိုင်ပါက,