1. Home
  2. /
  3. Zend-framework
  4. /
  5. Zend Framework Simple Counter App

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.

Practice Other Languages

CReactPythonC++RustTypeScriptKotlinPHPJavaC#RubyMqlCqlN1qlCypher