Learn ZEND-FRAMEWORK with Real Code Examples
Updated Nov 27, 2025
Code Sample Descriptions
1
Zend Framework Simple Counter App
<?php
// module/Application/config/module.config.php
return [
'router' => [
'routes' => [
'counter' => [
'type' => 'Literal',
'options' => [
'route' => '/counter',
'defaults' => [
'controller' => Application\Controller\CounterController::class,
'action' => 'index',
],
],
],
],
],
];
// module/Application/src/Controller/CounterController.php
namespace Application\Controller;
use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Model\ViewModel;
class CounterController extends AbstractActionController {
public function indexAction() {
$session = new \Laminas\Session\Container('counter');
if (!isset($session->count)) { $session->count = 0; }
return new ViewModel(['count' => $session->count]);
}
public function incrementAction() {
$session = new \Laminas\Session\Container('counter');
$session->count = ($session->count ?? 0) + 1;
return $this->redirect()->toRoute('counter');
}
public function decrementAction() {
$session = new \Laminas\Session\Container('counter');
$session->count = ($session->count ?? 0) - 1;
return $this->redirect()->toRoute('counter');
}
public function resetAction() {
$session = new \Laminas\Session\Container('counter');
$session->count = 0;
return $this->redirect()->toRoute('counter');
}
}
// module/Application/view/application/counter/index.phtml
<h2>Counter: <?= $this->count ?></h2>
<form action='/counter/increment' method='post'><button type='submit'>+</button></form>
<form action='/counter/decrement' method='post'><button type='submit'>-</button></form>
<form action='/counter/reset' method='post'><button type='submit'>Reset</button></form>
Demonstrates a simple Zend Framework controller and routes for a counter using session for state persistence.