<?php class My_Adapter_Auth implements Zend_Auth_Adapter_Interface { private $_password; private $_Zend_Auth_Result; public function __construct($password=null) { $this->_Zend_Auth_Result=Zend_Auth_Result::FAILURE; } else { $model=new Application_Model_DbTable_Config(); $this->_password=$model->fetchRow()->password; if ($password==$this->_password) $this->_Zend_Auth_Result=Zend_Auth_Result::SUCCESS; else $this->_Zend_Auth_Result=Zend_Auth_Result::FAILURE; } } public function authenticate() { return $this->_Zend_Auth_Result; } } ?>
I oczywiście aby sprawdzić czy dany user podał poprawne hasło wykonuje:
$authAdapter=new My_Adapter_Auth($password); $result=Zend_Auth::getInstance()->authenticate();
I to pojawia się moje pytanie. Za każdym razem gdy wykonuje się metoda authenticate(); to adapter wykonuje połączenie z bazą danych i sprawdza czy hasło jest poprawne ? Zanim zacząłem naukę ZF używałem też jakieś metody sprawdzenia loginu i hasła bądź, też samego hasła i wynik jej działania zapisywałem w sesji np $_SESSION['zalogowany']=true; Czy Zend_Auth (domyślam się że tak) w podobny sposób zapisuje dane do sesji ? Jeśli tak to w jaki sposób je odczytać, żeby nie wykonywać za każdym razem zapytania i czy tego mechanizmu nie muszę zaimplementować w adapterze jeśli tak to w jaki sposób ?
Przepraszam za moja pytania, ale w manulau nie udało mi się uzyskać stosownych odpowiedzi.