Mode:
Duration:
1
Coding works best on desktop or with an external keyboard.
Coding works best on desktop or with an external keyboard.
Demonstrates a simple Zend Framework controller and routes for a counter using session for state persistence.
<?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>Zend Framework (now Laminas Project) is a PHP-based open-source framework for building enterprise-ready web applications and APIs using a modular, object-oriented architecture with emphasis on performance, security, and extensibility.
Origin & Creator
Originally created by Zend Technologies in 2005, now maintained as the Laminas Project after transitioning from Zend Framework.
Industrial Note
Widely used in enterprise PHP applications, APIs, and middleware solutions where modularity, security, and maintainability are critical.