Je cherche un tutoriel sur l'authentification avec Zend 2 et Doctrine 2. En particulier la création du contrôleur et de l'adaptateur.Zend 2 + doctrine 2 Auth Adapter
La documentation officielle est trop globale ne m'aide pas assez.
merci
EDIT:
utiliser "Doctrine Entité" (espace de nom utilisateur \ Entité;)
L'entité est s'inscrire dans le fichier 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'
)
)
),
)
Mais maintenant, comment puis-je pointer ma clé identityClass vers mon adaptateur? 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);
????????????
}
}
J'ai eu cette erreur: appel à une fonction de membre getRepository() sur un non-objet dans ... doctrine \ doctrine module \ src \ DoctrineModule \ Options \ AuthenticationAdapter.php sur ligne 132 ligne 123: return $ this-> objectManager-> getRepository ($ this-> identityClass);
salut, merci beaucoup pour les conseils. J'essaie d'utiliser DoctrineModule \ Authentication \ Adapter \ ObjectRepository comme DoctrineAdapter. mais quand j'appelle $ result = $ adapter-> authenticate() j'ai cette erreur: Appel à une fonction membre getRepository() sur un non-objet. Comment et où dois-je définir ma identityClass? – beweed
Votre classe d'identité doit être un document Doctrine (pour ODM) ou Doctrine Entity (pour ORM). Définissez-le comme vous le feriez pour tout document/entité. (N'oubliez pas d'enregistrer votre document/entité avec une clé de pilote dans votre module.config.php comme vous l'aurez fait pour tous vos autres documents/entités). Une fois que vous avez créé votre classe d'identité, utilisez la clé 'identityClass' pour pointer votre carte sur celle-ci. Dans l'exemple ci-dessus, la classe d'identité est 'Application \ Model \ User', mais vous pouvez en faire ce que vous voulez. – superdweebie
J'apprécie vraiment votre aide. Je viens de modifier mon message pour localiser mon problème. – beweed