Обновление функции входа с Zend Framework 1 до ZF2 - PullRequest
1 голос
/ 16 марта 2012

У меня есть следующая функция в контроллере входа в ZF1, и она работает нормально, но не могу портировать на 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`

1 Ответ

2 голосов
/ 17 марта 2012

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

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

...