Zend Framework

Diferenças entre Zend_Auth e Zend_ACL

Por em

É muito comum gerarrmos confusões em relação a Zend_Auth e a Zend_ACL, e então me perguntam: Qual é a diferença entre as duas Classes? Todas!

A Zend_ACL complementa a Zend_Auth, sendo que o objetivo da Zend_Auth é fazer somente a autenticação, ou seja, if($login==”x” and $senha==”y”) { echo “ta logado”; }. Já a Zend_ACL (Access Control List) tem o objetivo de mapear quais recursos de quais áreas de sua aplicação o usuário terá acesso.

O processo funciona da seguinte forma:

  • Utilizamos a Zend_Auth para fazer a autenticação
  • Pegamos o login do usuário autenticado (Zend_Auth::getInstance ()->getIdentity ()->login)
  • Passamos o Login para a Zend_ACL
  • Zend_ACL mapeia quais recursos de quais áreas de sua aplicação poderão ser acessadas

Vamos dizer que a Zend_ACL (nossa opinião) é mais complexa do que a Zend_Auth, pois há diversas formas de fazer a mesma coisa, contudo recomendamos, extremamente, a utilizar tal recurso, criando uma classe extendida e adequando a mesma ao seu projeto.

Em nosso próximo post, sobre Zend Framework, traremos um exemplo prático da utilização da Zend_ACL, sendo que as permissões e controles estarão armazenadas em um banco de dados.