Zend Framework Simple Counter App - Zend-framework Typing CST Test
Loading…
Zend Framework Simple Counter App — Zend-framework Code
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 Language Guide
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.
Primary Use Cases
- ▸Enterprise web application development
- ▸Building RESTful and SOAP APIs
- ▸Modular component-based architectures
- ▸Middleware and service-oriented PHP applications
- ▸Applications requiring security, caching, and logging
Notable Features
- ▸MVC architecture
- ▸Modular, decoupled components
- ▸Service manager for dependency injection
- ▸Event-driven architecture
- ▸Built-in security, authentication, and caching components
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.