Zend_Auth реализует шаблон Singleton , поэтому может существовать только один экземпляр этого класса.
Чтобы отличить, является ли текущий идентификатор администратором или пользователем, вы можете использовать isAdmin-Flagили, что еще лучше, реализуйте Zend_Acl_Role_Interface .
Если вашему приложению действительно необходимо иметь две аутентификационные сессии одновременно (одна для пользователя, для администратора)можно «скопировать» класс Zend_Auth, расширив его и настроив хранилище сеанса.
<?php
class Zend_Auth_Admin extends Zend_Auth
{
/**
* Returns the persistent storage handler
*
* Session storage is used by default unless a different storage adapter has been set.
*
* @return Zend_Auth_Storage_Interface
*/
public function getStorage()
{
if (null === $this->_storage) {
$namespace = 'Zend_Auth_Admin'; // default is 'Zend_Auth'
/**
* @see Zend_Auth_Storage_Session
*/
require_once 'Zend/Auth/Storage/Session.php';
$this->setStorage(new Zend_Auth_Storage_Session($namespace));
}
return $this->_storage;
}
}
Таким образом, вы можете использовать два различных объекта Auth для обработки вашего сеанса
Zend_Auth::getInstance(); // instance for users
Zend_Auth_Admin::getInstance(); // instance for admins