Sto cercando un'esercitazione sull'autenticazione con Zend 2 e Doctrine 2. In particolare la creazione del controller e dell'adattatore.Zend 2 + doctrine 2 Auth Adapter
La documentazione ufficiale è troppo globale non mi aiuta abbastanza.
grazie
EDIT:
io uso "Dottrina Entity" (spazio dei nomi utente \ Entity;)
l'entità è registrare nel file di 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'
)
)
),
)
Ma ora, come posso puntare la mia chiave identityClass al mio adattatore? Controller:
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);
????????????
}
}
ho ottenuto questo errore: chiamata a una getRepository funzione membro() su un non-oggetto in ... dottrina \ dottrina-modulo \ src \ DoctrineModule \ Options \ AuthenticationAdapter.php su riga 132 riga 123: return $ this-> objectManager-> getRepository ($ this-> identityClass);
ciao, grazie mille per i suggerimenti. Sto provando ad usare DoctrineModule \ Authentication \ Adapter \ ObjectRepository come DoctrineAdapter. ma quando chiamo $ result = $ adapter-> authenticate() ho questo errore: chiama ad una funzione membro getRepository() su un non-oggetto. Come e dove definisco la mia identityClass? – beweed
La classe di identità deve essere Doctrine Document (per ODM) o Doctrine Entity (per ORM). Definirlo come si farebbe con qualsiasi documento/entità. (Non dimenticare di registrare il tuo documento/entità con una chiave del driver nel tuo 'module.config.php' come avresti fatto per tutti i tuoi altri documenti/entità). Una volta creata la tua classe di identità, usa la chiave 'identityClass' per puntare la tua scheda su di essa. Nell'esempio sopra, la classe di identità è 'Applicazione \ Modello \ Utente', ma puoi farla come vuoi. – superdweebie
apprezzo molto il tuo aiuto. Ho appena modificato il mio post per individuare il mio problema. – beweed