मैं ज़ेंड 2 और सिद्धांत 2 के साथ प्रमाणीकरण पर एक ट्यूटोरियल ढूंढ रहा हूं। विशेष रूप से नियंत्रक और एडाप्टर का निर्माण।ज़ेंड 2 + सिद्धांत 2 ऑथ एडाप्टर
आधिकारिक दस्तावेज बहुत वैश्विक है जो मुझे पर्याप्त मदद नहीं करता है।
धन्यवाद
संपादित करें:
मैं "सिद्धांत संस्था" का उपयोग करें (नाम स्थान उपयोगकर्ता \ इकाई;)
इकाई module.config.php फ़ाइल में रजिस्टर है:
'doctrine' => array(
'driver' => array(
__NAMESPACE__ . '_driver' => array(
'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
'cache' => 'array',
'paths' => array(__DIR__ . '/../src/' . __NAMESPACE__ . '/Entity')
),
'orm_default' => array(
'drivers' => array(
__NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_driver'
)
)
),
)
लेकिन अब, मैं अपने एडाप्टर को अपनी पहचान क्लास कुंजी कैसे इंगित कर सकता हूं? नियंत्रक:
use Zend\Mvc\Controller\AbstractActionController,
Zend\View\Model\ViewModel,
Zend\Authentication\AuthenticationService,
Doctrine\ORM\EntityManager,
DoctrineModule\Authentication\Adapter\ObjectRepository as DoctrineAdapter,
User\Entity\User,
User\Form\UserForm;
class UserController extends AbstractActionController
{
protected $em;
public function setEntityManager(EntityManager $em)
{
$this->em = $em;
}
public function getEntityManager()
{
if (null === $this->em)
$this->em = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');
return $this->em;
}
public function getRepository()
{
if (null === $this->em)
$this->em = $this->getEntityManager()->getRepository('User\Entity\User');
return $this->em;
}
public function loginAction()
{
....
????????????
$adapter = new DoctrineAdapter();
$adapter->setIdentityValue($username);
$adapter->setCredentialValue($password);
$auth = new AuthenticationService();
$result=$auth->authenticate($adapter);
????????????
}
}
मैं यह त्रुटि मिल गया है: एक गैर वस्तु में ... सिद्धांत \ सिद्धांत मॉड्यूल \ src \ DoctrineModule \ विकल्प \ AuthenticationAdapter.php पर पर एक सदस्य समारोह getRepository() पर की गई कॉल लाइन 132 लाइन 123: $ this-> ऑब्जेक्ट प्रबंधक-> getRepository ($ this-> पहचान क्लास);
हाय, सुझावों के लिए बहुत बहुत धन्यवाद। मैं DoctrineModule \ प्रमाणीकरण \ एडाप्टर \ ऑब्जेक्ट रिपोजिटरी को DoctrineAdapter के रूप में उपयोग करने का प्रयास कर रहा हूं। लेकिन जब मैं $ परिणाम = $ adapter-> प्रमाणीकृत() को कॉल करता हूं तो मुझे यह त्रुटि मिली है: एक गैर-ऑब्जेक्ट पर किसी सदस्य फ़ंक्शन getRepository() पर कॉल करें। मैं अपनी पहचान क्लास को कैसे और कहां परिभाषित करूं? – beweed
आपकी पहचान श्रेणी एक डॉक्टरेट दस्तावेज़ (ओडीएम के लिए) या सिद्धांत इकाई (ओआरएम के लिए) होना चाहिए। इसे परिभाषित करें क्योंकि आप कोई दस्तावेज़/इकाई करेंगे। (अपने दस्तावेज़/इकाई को अपने 'module.config.php' में ड्राइवर कुंजी के साथ पंजीकृत करना न भूलें क्योंकि आपने अपने सभी अन्य दस्तावेज़ों/संस्थाओं के लिए किया होगा)। एक बार जब आप अपनी पहचान कक्षा बना लेंगे, तो अपने एडाप्टर को इंगित करने के लिए 'पहचान क्लास' कुंजी का उपयोग करें। उपर्युक्त उदाहरण में, पहचान वर्ग 'एप्लिकेशन \ मॉडल \ उपयोगकर्ता' है, लेकिन आप इसे जो कुछ भी चाहते हैं उसे बना सकते हैं। – superdweebie
मैं वास्तव में आपकी मदद की सराहना करता हूं। मैं अपनी समस्या को स्थापित करने के लिए बस अपनी पोस्ट संपादित करता हूं। – beweed