Zend Framework Session Step By Step Tutorial - Part 2: In this post, we will learn to implement namespace into session at Zend Framework. If you are not familiar with namespace, don't worry. It is simple. Let's do it.
Simply, namespace is like name of groups of associative arrays, keyed by strings. For practice, we use our previous practice.
Ok, we want to count number of a particular page request form a visitor. See this picture:

To do this, open your UserController.php within application/controllers. Include Zend/Session/Namespace.php at first line after delimeter.
require_once 'Zend/Session/Namespace.php';
Edit loginFormAction() method become like this:
public function loginFormAction()
{
$request = $this->getRequest();
$ns = new Zend_Session_Namespace('HelloWorld');
if(!isset($ns->yourLoginRequest)){
$ns->yourLoginRequest = 1;
}else{
$ns->yourLoginRequest++;
}
$this->view->assign('request', $ns->yourLoginRequest);
$this->view->assign('action', $request->getBaseURL()."/user/auth");
$this->view->assign('title', 'Login Form');
$this->view->assign('username', 'User Name');
$this->view->assign('password', 'Password');
}
At line 5, we define object of namespace. The namespace, we named "HelloWorld". It is like $_SESSION['HelloWorld']. You can put name such as mynamespace, myapplication, etc.
Next, at line 7, we check value of $ns->yourLoginRequest. It is like $_SESSION['HelloWorld']['yourLoginRequest']. Next, modify loginform.phtml within application/views/scripts/user. Update become like this:
<? include "header.phtml"; ?>
<h1><?=$this->escape($this->title);?></h1>
You have entered this page: <?=$this->escape($this->request);?> time(s).
<form method='post' action='<?=$this->escape($this->action);?>'>
<table>
<tr>
<td><?=$this->escape($this->username);?></td>
<td><input type='text' name='username'></td>
</tr>
<tr>
<td><?=$this->escape($this->password);?></td>
<td><input type='password' name='password'></td>
</tr>
</table>
<input type='submit' name='login' value='Login'>
</form>
<? include "footer.phtml"; ?>
Now, point your browser to http://localhost/test/zend/helloworld/web_root/user/loginform. You may get screen like picture above.
Ok, try again for userPageAction() at controller. Update become like this:
public function loginFormAction()
{
$request = $this->getRequest();
$ns = new Zend_Session_Namespace('HelloWorld');
if(!isset($ns->yourLoginRequest)){
$ns->yourLoginRequest = 1;
}else{
$ns->yourLoginRequest++;
}
$this->view->assign('request', $ns->yourLoginRequest);
$this->view->assign('action', $request->getBaseURL()."/user/auth");
$this->view->assign('title', 'Login Form');
$this->view->assign('username', 'User Name');
$this->view->assign('password', 'Password');
}
Then, update its view at application/views/scripts/user/userpage.phtml:
<? include "header.phtml"; ?>
<h1>Hello, <?=$this->escape($this->real_name);?></h1>
You have entered this page: <?=$this->escape($this->request);?> time(s).
<a href='<?=$this->escape($this->urllogout);?>'>Logout</a>
<? include "footer.phtml"; ?>