<?php
namespace Users\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Zend\Authentication\AuthenticationService;
use Zend\Authentication\Adapter\DbTable as DbTableAuthAdapter;
use Users\Form\LoginForm;
use Users\Form\LoginFilter;
use Users\Model\User;
use Users\Model\UserTable;
class LoginController extends AbstractActionController
{
protected $storage;
protected $authservice;
public function getAuthService()
{
if (! $this->authservice) {
$this->authservice = $this->getServiceLocator()->get('AuthService');
}
return $this->authservice;
}
public function logoutAction()
{
$this->getAuthService()->clearIdentity();
return $this->redirect()->toRoute('users/login');
}
public function indexAction()
{
$form = $this->getServiceLocator()->get('LoginForm');
$viewModel = new ViewModel(array('form' => $form));
return $viewModel;
}
public function processAction()
{
if (!$this->request->isPost()) {
return $this->redirect()->toRoute('users/login');
}
$post = $this->request->getPost();
$form = $this->getServiceLocator()->get('LoginForm');
$userTable = $this->getServiceLocator()->get('UserTable');
$form->setData($post);
if (!$form->isValid()) {
$model = new ViewModel(array(
'error' => true,
'form' => $form,
));
$model->setTemplate('users/login/index');
return $model;
} else {
//check authentication...
$this->getAuthService()->getAdapter()
->setIdentity($this->request->getPost('email'))
->setCredential($this->request->getPost('password'));
$result = $this->getAuthService()->authenticate();
if ($result->isValid()) {
$this->getAuthService()->getStorage()->write($this->request->getPost('email'));
return $this->redirect()->toRoute('users/login', array(
'action' => 'confirm'
));
} else {
$model = new ViewModel(array(
'error' => true,
'form' => $form,
));
$model->setTemplate('users/login/index');
return $model;
}
}
}
public function confirmAction()
{
$this->layout('layout/myaccount');
$user_email = $this->getAuthService()->getStorage()->read();
$viewModel = new ViewModel(array(
'user_email' => $user_email
));
return $viewModel;
}
}
---
**my some of snipplet codes of module.php is:**
public function getServiceConfig()
{
return array(
'abstract_factories' => array(),
'aliases' => array(),
'factories' => array(
// SERVICES
'AuthService' => function($sm) {
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$dbTableAuthAdapter = new DbTableAuthAdapter($dbAdapter, 'user','email','password', 'MD5(?)');
$authService = new AuthenticationService();
$authService->setAdapter($dbTableAuthAdapter);
return $authService;
},
// DB
'UserTable' => function($sm) {
$tableGateway = $sm->get('UserTableGateway');
$table = new UserTable($tableGateway);
return $table;
},
'UserTableGateway' => function ($sm) {
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$resultSetPrototype = new ResultSet();
$resultSetPrototype->setArrayObjectPrototype(new User());
return new TableGateway('user', $dbAdapter, null, $resultSetPrototype);
},
Please format your code example otherwise nobody can help. You can do this by adding 3 backticks (grave accent) before and after the code.
Example:
```php
class Foo
{
public const BAR = true;
}
```
(the example code includes whitespace)
Produces:
class Foo
{
public const BAR = true;
}
I have already given you an answer in the bugtracker and where you can find the solution:
Please look at the documentation of zend-authentication. There you will find the notification of the deprecation and the also how you can fix the problem: Intro - zend-authentication - Zend Framework Docs