2013-03-14 9 views
6

मैं RedBean ORM (http://redbeanphp.com) का उपयोग करने UserInterface और Silex सुरक्षा प्रदाता पैकेज की UserProviderInterface को लागू करने की कोशिश कर रहा है याद रखें।Silex/Symfony2 मेरे प्रमाणीकरण उपयोगकर्ता इंटरफ़ेस RedBean आवरण

रेडबीन ओआरएम अपनी वस्तुओं के लिए काम करता है जिस तरह से, मुझे बीन ऑब्जेक्ट को किसी अन्य वर्ग में लपेटने की आवश्यकता है।

यह प्रमाणीकरण के लिए बहुत अच्छा काम करता है, लेकिन मुझे याद रखें कार्यक्षमता के लिए परीक्षण विफल रहता है।

मैंने देखा कि चेन के साथ कहीं भी सुरक्षा पैकेज ऑब्जेक्ट को क्रमबद्ध करता है।

मैंने सोचा कि शायद यह त्रुटि का कारण था, इसलिए मैंने अपने रैपर वर्ग में "आईडी" और "पासवर्ड" के लिए गुण बनाए और नींद के दौरान बीन को अनदेखा करने और इसे जागने पर पुनः लोड करने के लिए __sleep और __wakeup विधियों का उपयोग किया। __wakeup के दौरान ठीक से लोड होने वाली हर चीज के बावजूद "मुझे याद रखें" कार्यक्षमता के लिए परीक्षण अभी भी विफल रहा है।

मैंने अपने कोड का एक जिथब रिपोजिटरी बनाई है। अगर किसी के पास कोई विचार है, तो मैं इसकी बहुत सराहना करता हूं!

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

GitHub भंडार में पाया जा सकता:

https://github.com/christianmagill/silex-redbean-security

लागू फ़ाइलें

हैं डेटाबेस में परीक्षण उपयोगकर्ता बनाने के लिए:

/setup.php

/index.php

UserInterface मेरे कार्यान्वयन:परीक्षण चलाने के लिए

/src/App/Model/UserSecurityWrapper.php

UserProviderInterface मेरे कार्यान्वयन:

/src/App/Model/UserProvider.php

मेरे संशोधित टेस्ट:

/src/App/Test/RememberMeRedBeanServiceProviderTest.php

मूल परीक्षण:

/विक्रेता/SILEX/SILEX/परीक्षण/Silex/टेस्ट/प्रदाता/RememberMeServiceProviderTest.php

उत्तर

3

समस्या मेरे कस्टम UserProvider के समर्थन क्लास विधि के साथ थी।मैं नामांकन को ध्यान में नहीं ले रहा था। ऐसा लगता है कि इस फ़ंक्शन को बुनियादी प्रमाणीकरण के लिए नहीं कहा जाता है, लेकिन मुझे प्रदाता याद रखने के लिए आवश्यक है।

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