2012-04-11 10 views
12

के रूप में मैं अपने ढांचे रहित PHP अनुप्रयोग में सिम्फनी 2.0 एसीएल जोड़ने की कोशिश कर रहा हूं। स्टैंडअलोन के रूप में सुरक्षा घटक का उपयोग करने के तरीके पर दस्तावेज़ीकरण की कमी के कारण मुझे पूरी तरह उलझन में मिला है और मैं प्रश्नों से फंस गया हूं: पहले किस वर्ग को शामिल करना है? उदाहरण के लिए कौन सा ऑब्जेक्ट? क्या मॉडल और नियंत्रकों के बिना इसका उपयोग करना संभव है?सिम्फनी 2.0 से सुरक्षा घटक स्टैंडअलोन

किसी भी सुझाव को शुरू करने या किसी भी अच्छे लिंक पर कोई सुझाव?

धन्यवाद

+1

मैं Zend के एसीएल सुझाव पर ACL के लिए अच्छा दस्तावेज है, क्योंकि यह एक शिथिल युग्मित या "गोंद" ढांचे से है, और एस 2 एक पूर्ण ढेर है। सेवा [कंटेनर] लोकेटर विरोधी पैटर्न से अलग सब कुछ के लिए – SuperMykEl

उत्तर

2

क्या वर्ग पहले शामिल करने के लिए?

यदि आप सभी सुरक्षा कोर नहीं हैं तो आपको कम से कम भागों को शामिल करने की आवश्यकता होगी, फिर कभी भी एसीएल कार्यान्वयन जिसे आप उपयोग करना चाहते हैं। आप एसीएल कार्यान्वयन की शुरुआत में सूचीबद्ध निर्भरताओं को देख सकते हैं और देख सकते हैं कि वे क्या बढ़ाते हैं। उदाहरण के लिए, ACL/DBAL निम्नलिखित निर्भरता शीर्षक में कहा जाता है:

namespace Symfony\Component\Security\Acl\Dbal; 

use Doctrine\DBAL\Driver\Connection; 
use Doctrine\DBAL\Driver\Statement; 
use Symfony\Component\Security\Acl\Model\AclInterface; 
use Symfony\Component\Security\Acl\Domain\Acl; 
use Symfony\Component\Security\Acl\Domain\Entry; 
use Symfony\Component\Security\Acl\Domain\FieldEntry; 
use Symfony\Component\Security\Acl\Domain\ObjectIdentity; 
use Symfony\Component\Security\Acl\Domain\RoleSecurityIdentity; 
use Symfony\Component\Security\Acl\Domain\UserSecurityIdentity; 
use Symfony\Component\Security\Acl\Exception\AclNotFoundException; 
use Symfony\Component\Security\Acl\Exception\NotAllAclsFoundException; 
use Symfony\Component\Security\Acl\Model\AclCacheInterface; 
use Symfony\Component\Security\Acl\Model\AclProviderInterface; 
use Symfony\Component\Security\Acl\Model\ObjectIdentityInterface; 
use Symfony\Component\Security\Acl\Model\PermissionGrantingStrategyInterface; 

लेकिन आप शायद उनके निर्भरता के लिए सूचीबद्ध उन लोगों में से प्रत्येक की जांच करने के लिए, और उन लोगों के रूप में अच्छी तरह से लोड की आवश्यकता होगी।

मैं निर्भरताओं के माध्यम से बैक-ट्रैक करता हूं, और ट्रैक की आवश्यकता होती है कि क्या चाहिए। उन वर्गों को एक अलग स्थान पर खींचें ताकि आपके पास केवल वही चीज़ हो जो आपको चाहिए, और यह निर्धारित करने के लिए कुछ त्रुटि फंसे का उपयोग करें कि आपके पास यह सब है।

उदाहरण के लिए कौन सा ऑब्जेक्ट?

आपका एसीएल। यदि निर्भरता सभी निर्धारित हैं, और लोड की गई हैं, तो आप एसीएल क्लास ऑब्जेक्ट को तुरंत चालू करने में सक्षम होना चाहिए।

क्या मॉडल और नियंत्रकों के बिना इसका उपयोग करना संभव है?

ईमानदार होने के लिए, मुझे यकीन नहीं है कि एस 2 के बाहर एसीएल का उपयोग बिना किसी काम के संभव है, लेकिन यदि आप इसे आवश्यक सभी चीज़ों के साथ तुरंत प्राप्त कर सकते हैं, तो आप बिना ऑब्जेक्ट का उपयोग कर सकते हैं एक एमवीसी मॉडल।

दुर्भाग्य से, मैं एस 2 के बारे में क्या समझता हूं, यह एक पूर्ण ढेर ढांचा है, और यह सब कुछ या कुछ भी नहीं है। लेकिन अगर मैं कोशिश करने और इसे काम करने जा रहा था, तो मैं इस तरह से जाऊंगा।

12

साइलेक्स के लिए SecurityServiceProvider प्रारंभ करने के लिए एक अच्छी जगह हो सकती है, क्योंकि यह एक ही फ़ाइल में सभी आवश्यक घटक सेवाओं को एकीकृत करता है। हालांकि बड़ा, आपको शायद सिम्फनी 2 की सुरक्षा बंडल से पचाने में बहुत आसान लगेगा।

अपनी स्वच्छता बनाए रखने के हित में, आपको इन सभी वस्तुओं को व्यवस्थित करने के लिए एक सेवा कंटेनर का उपयोग करने पर विचार करना चाहिए। उपर्युक्त प्रदाता वर्ग में, सिलेक्स एप्लिकेशन क्लास Pimple उदाहरण है, इसलिए आप इसे मामूली प्रयास के साथ स्टैंड-अलोन पिंपल बंदरगाह करने में सक्षम होना चाहिए। मैंने इसे देखा क्योंकि आपके आवेदन में एक मुर्गी सेवा कंटेनर को एकीकृत करना सिलेक्स ढांचे को अपनाने से कम आक्रामक होना चाहिए।

एक बार आपके पास आवश्यक सुरक्षा घटक कक्षाएं काम करने के बाद, आपको ACL documentation के साथ पालन करने में सक्षम होना चाहिए और आवश्यकतानुसार अपने कंटेनर में अतिरिक्त सेवाएं जोड़ें। उस बिंदु पर, सुरक्षाबंडल के एसीएल-विशिष्ट अनुभाग उपयोगी साबित हो सकते हैं, क्योंकि आप प्रासंगिक बिट्स पर ध्यान केंद्रित कर सकते हैं। ध्यान रखें कि दस्तावेज में एसीएल के लिए कई cookbook entries हैं।

+0

प्लस 1। – Jimbo

0

यू को समझने के लिए उपयोग symfony2 घटक का उपयोग करें और एकीकृत करने के लिए है कि आपके परियोजना के भीतर कैसे करना चाहते हैं तो Fabien Potencier blog 'create your own framework' पोस्ट निश्चित रूप से मदद मिलेगी यू से ढांचे के मूल को समझने के लिए और कैसे अपनी परियोजना में symfony2 घटक bootstrap को पढ़

वहाँ भी, सिम्फोनी वेबसाइट

+3

फैबियन की श्रृंखला स्टैंड-अलोन फॉर्म में कई घटकों को कवर करती है, लेकिन सुरक्षा घटक स्पष्ट रूप से अनुपस्थित है। – jmikola

संबंधित मुद्दे