2012-05-09 14 views
6

मैं ज़ेंड फ्रेमवर्क सीख रहा हूं, लेकिन मुझे उपयोग और अवधारणाओं के बारे में कुछ संदेह हैं।यह जांचने के लिए कि उपयोगकर्ता Zend Framework के साथ लॉग इन है या नहीं?

मैं यह जांचना चाहता हूं कि उपयोगकर्ता सभी पृष्ठों तक पहुंच की अनुमति देने के लिए लॉग इन है या नहीं। यदि ऐसा है, तो पेज दिखाएं, यदि नहीं, तो पेज को लॉगिन करें।

मेरा मुख्य संदेह कर रहे हैं क्या मैं कहाँ यदि उपयोगकर्ता लॉग होता है (प्रत्येक नियंत्रक में या ढांचा स्वचालित रूप से प्रत्येक प्रार्थना के लिए इस की जाँच करता है) की जाँच करने के लिए इस (Zend_Auth, Zend_Acl, आदि) और करने के लिए उपयोग करने की आवश्यकता ।

+0

एसीएल आमतौर पर उपयोगकर्ता नियंत्रण के स्तर के लिए प्रयोग किया जाता है। आप Zend_Auth चाहते हैं। – Brendan

+0

उपयोगकर्ता के लिए जो नकारात्मक है, क्यों -1? –

+1

क्योंकि "आपका प्रश्न कोई शोध प्रयास नहीं दिखाता है" (इसे देखने के लिए नीचे दिए गए वोट तीर पर होवर करें)। बहुत सारे ट्यूटोरियल पाए जाते हैं और जेडएफ के लिए एक उत्कृष्ट मैनुअल है जो आपको वह जानकारी देगा जो आप खोज रहे हैं। किसी भी मामले में मेरा जवाब आपको सही दिशा में ले जाना चाहिए। सौभाग्य। – vascowhite

उत्तर

5

उपकरण जो आप उपयोग करना चाहते हैं वह Zend_Auth है जो इसे लटकने पर उपयोग करने में काफी आसान है।

यह देखना कि उपयोगकर्ता के प्रवेश के रूप में सरल किया जा सकता है: -

$auth = Zend_Auth::getInstance(); 
if($auth->hasIdentity()) $loggedIn = true; 

Rob Allen's excellent tutorial on getting started with Zend Auth देखें।

विधि मैं उपयोग करती हैं इसलिए है कि मेरी नियंत्रकों में से किसी में मैं सिर्फ कर सकते हैं एक उपयोगकर्ता वर्ग है कि प्राधिकरण और अभिगम नियंत्रण के बाद लग रहा है की स्थापना की और एक Action Helper के रूप में अपने आवेदन को इसकी सुई देने, है: -

$this->user->checkSomething(); 

प्राधिकरण भाग को आपकी साइट के उन सभी हिस्सों को प्रभावित करने की आवश्यकता है जिन्हें आप सार्वजनिक नहीं चाहते हैं और प्रत्येक प्रभावित नियंत्रक को यह जांचने की आवश्यकता है कि उपयोगकर्ता लॉग इन है। एक्सेस नियंत्रण के लिए, यह प्रति भूमिका/प्रति संसाधन आधार पर किया जाता है इस पर निर्भर करता है कि आपको कितने अच्छे अनाज की आवश्यकता है। मैन्युअल में ACL और AUTH देखें।

+0

प्रदर्शन सहायता के लिए बुरा मानी जाने वाली एक्शन हेल्पर्स का उपयोग नहीं कर रहा है? – Songo

+0

किस तरह से? एक एक्शन हेल्पर केवल तभी लोड किया जाता है जब आवश्यक हो, मैंने कभी इसके साथ कोई प्रदर्शन समस्या नहीं देखी है। क्या आप इसके लिए एक स्रोत से लिंक कर सकते हैं? मुझे इसे पढ़ने में दिलचस्पी होगी। – vascowhite

+0

अच्छी तरह से, इसका उल्लेख [इस] (http://stackoverflow.com/questions/4708754/optimising-the-zend-framework) प्रश्न के लिए स्वीकृत उत्तर में किया गया था। इसके अलावा मुझे कुछ समय पहले [इस लेख] (http://www.rmauger.co.uk/2009/03/why-the-zend-framework-actionstack-is-evil/) मिला। मैंने इसे और अधिक जांच नहीं की क्योंकि मैं शायद ही कभी एक्शन हेल्पर्स का उपयोग करता हूं।यदि आपके पास इस से असहमत अन्य सामग्री है तो कृपया इसे पोस्ट करें। – Songo

2

यह जांचना चाहते हैं कि उपयोगकर्ता ZendFramework में लॉग इन है या नहीं? इस प्रयास करें:

'डिबग' के लिए अपने नियंत्रक का कहीं भी में रखें यह, और शीर्ष करने या अपने कोड की शुरुआत में रख:

if (Zend_Auth::getInstance()->hasIdentity()) echo "oh yeah I'm logged in lol"; die;