Estoy buscando un tutorial sobre autenticación con Zend 2 y Doctrine 2. En particular, la creación del controlador y el adaptador.Zend 2 + doctrine 2 Auth Adapter
La documentación oficial es demasiado global y no me ayuda lo suficiente.
gracias
EDIT:
yo uso "Doctrina Entidad" (espacio de nombres de usuario \ Entidad;)
la entidad es registrarse en el archivo 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'
)
)
),
)
Pero ahora, ¿cómo puedo apuntar mi clave identityClass a mi adaptador? controlador:
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);
????????????
}
}
Tengo este error: Llamada a una función miembro getRepository() en un no-objeto en la doctrina ... \ doctrina del módulo \ src \ DoctrineModule \ Opciones \ AuthenticationAdapter.php en línea 132 línea 123: return $ this-> objectManager-> getRepository ($ this-> identityClass);
hola, muchas gracias por los consejos. Estoy tratando de usar DoctrineModule \ Authentication \ Adapter \ ObjectRepository como DoctrineAdapter. pero cuando llamo $ result = $ adapter-> authenticate() tengo este error: Llamar a una función miembro getRepository() en un no objeto. ¿Cómo y dónde puedo definir my identityClass? – beweed
Su clase de identidad debe ser un Documento de Doctrina (para ODM) o Entidad de Doctrina (para ORM). Defínalo como lo harías con cualquier documento/entidad. (No olvide registrar su documento/entidad con una clave de controlador en su 'module.config.php' como lo habrá hecho con todos sus otros documentos/entidades). Una vez que haya creado su clase de identidad, use la clave 'identityClass' para apuntar su adaptador a ella. En el ejemplo anterior, la clase de identidad es 'Application \ Model \ User', pero puede hacer lo que quiera. – superdweebie
realmente aprecio tu ayuda. Acabo de editar mi publicación para ubicar mi problema. – beweed