में अनुमतियों को संग्रहीत करना ठीक है, मैं बस अपने कौशल में सुधार करने के लिए PHP में अधिक ढीले युग्मित कक्षाएं बनाने में बेहतर होने की कोशिश कर रहा हूं। मेरे पास मेरे कंप्यूटर पर स्थानीय परीक्षण डेटाबेस है और उपयोगकर्ता तालिका के लिए मेरे पास "भूमिका" नामक एक कॉलम है। मैं ऐसे फ़ंक्शन को बनाने का प्रयास कर रहा हूं जो उपयोगकर्ता के लिए अनुमतियां प्राप्त करने के लिए एक सामान्य कार्य है, इसलिए यह एक विशिष्ट कार्य पर निर्भर नहीं है जो वे करने का प्रयास कर रहे हैं।बहु आयामी सरणी php
एक उपयोगकर्ता इस तरह के एक नए मंच विषय आदि बनाने के लिए, मैं डेटाबेस क्वेरी करना चाहते हैं और के रूप में कुछ करने के लिए प्रयास करता है, तो "भूमिका" एक निश्चित मूल्य, निम्नलिखित की तरह एक बहुआयामी सरणी में दुकान अनुमतियाँ है:
$permissions = array(
'forums' => array("create", "delete", "edit", "lock"),
'users' => array("edit", "lock")
);
तब मैं उस सरणी को प्रत्येक PHP फ़ाइल के शीर्ष पर निम्न टाइप किए बिना किसी विशिष्ट अनुमति के लिए खोज करने में सक्षम होना चाहता हूं, जब उपयोगकर्ता जारीकर्ता ($ var) की जांच करके फ़ॉर्म पोस्ट करता है। तो अगर उपयोगकर्ता एक उपयोगकर्ता को संपादित करने की कोशिश कर रहा है मैं अगर एक वर्ग विधि संभव के माध्यम से निम्नलिखित की तरह कुछ करने के लिए सक्षम होना चाहते हैं
if (Class::get_permissions($userID),array($permissionType=>$permission))) {
// do query
} else {
// return error message
}
कैसे एक शिथिल युग्मित अनुमति जाँच समारोह है कि होगा करने के लिए एक अच्छा तरीका हो सकता है ऐसा कुछ करने में सक्षम हो? इसे बिल्कुल इस तरह से बाहर नहीं रखा जाना चाहिए, लेकिन केवल थोड़ी सी युग्मित होनी चाहिए ताकि इसे पुन: उपयोग किया जा सके और किसी निश्चित कार्य से बंधे न हो। लेकिन मैं पुन: प्रयोज्यता के लिए केवल "व्यवस्थापक", "उपयोगकर्ता" आदि की बजाय अनुमतियों की एक सरणी प्राप्त करने में सक्षम होना चाहता हूं और इसलिए यह मेरे विकल्पों को सड़क के नीचे सीमित नहीं करता है। क्योंकि मेरे पास कोड का एक गुच्छा है जो अभी मेरी PHP स्क्रिप्ट फ़ाइलों के शीर्ष पर है।
if (Class::get_permissions($userID) == "admin") {
// allow query
} else {
// return error
}
मुझे यह जानने में मदद करने के लिए किसी भी इनपुट के लिए धन्यवाद जहां मैं वही सामान लिखना जारी नहीं रखता हूं।
ज़ेंड के एसीएल अनुभाग में उनके एसीएल के काम में ठीक परिचय दिया गया है: http://framework.zend.com/manual/en/zend.acl.introduction.html –