Обновление функции входа в систему с zend framework 1 до zf2

У меня есть следующая функция в контроллере входа в систему ZF1, и она работает нормально, но не может быть перенесена в ZF2, пожалуйста, помогите мне, чтобы эта функция работала с zf2.

if ($this->_request->isPost() && $userForm->isValid($_POST)) {
        $data = $userForm->getValues();

    //set up the auth adapter
    // get the default db adapter
    $db = Zend_Db_Table::getDefaultAdapter();

    //create the auth adapter
    $authAdapter = new Zend_Auth_Adapter_DbTable($db, 'users','username', 'password');

    //set the username and password
    $authAdapter->setIdentity($data['username']);
    $authAdapter->setCredential(md5($data['password']));

    //authenticate
    $result = $authAdapter->authenticate();
    if ($result->isValid()) {

        // store the username, first and last names of the user
        $auth = Zend_Auth::getInstance();
        $storage = $auth->getStorage();
        $storage->write($authAdapter->getResultRowObject(
            array('username' , 'first_name' , 'last_name', 'role')));

        return $this->_forward('index');
    } else {
        $this->view->loginMessage = "Sorry, your username or
            password was incorrect";
    }
}
$this->view->form = $userForm;`enter code here`

person ktm    schedule 16.03.2012    source источник


Ответы (1)


Самый простой способ в ZF2 — использовать модуль ZfcUser для входа и регистрации пользователей.

В качестве альтернативы вам необходимо провести рефакторинг для использования нового Zend\Db. компонент, API которого сильно отличается от Zend_Db. К сожалению, начиная с ZF2 beta 3, Zend\Auth еще не был обновлен для использования нового компонента Zend\Db, поэтому вам придется значительно переработать его или подождать до более позднего выпуска. Кроме того, обратите внимание, что ZF2 использует пространства имен, поэтому вам потребуется провести рефакторинг как минимум для этого.

person Rob Allen    schedule 17.03.2012