Learn SYMFONY with Real Code Examples
Updated Nov 27, 2025
Code Sample Descriptions
1
Symfony Simple Counter App
<?php
// config/routes.yaml
counter_show:
path: /counter
controller: App\Controller\CounterController::show
counter_increment:
path: /counter/increment
controller: App\Controller\CounterController::increment
counter_decrement:
path: /counter/decrement
controller: App\Controller\CounterController::decrement
counter_reset:
path: /counter/reset
controller: App\Controller\CounterController::reset
// src/Controller/CounterController.php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class CounterController extends AbstractController {
public function show(Request $request): Response {
$count = $request->getSession()->get('count', 0);
return $this->render('counter.html.twig', ['count' => $count]);
}
public function increment(Request $request): Response {
$session = $request->getSession();
$count = $session->get('count', 0) + 1;
$session->set('count', $count);
return $this->redirectToRoute('counter_show');
}
public function decrement(Request $request): Response {
$session = $request->getSession();
$count = $session->get('count', 0) - 1;
$session->set('count', $count);
return $this->redirectToRoute('counter_show');
}
public function reset(Request $request): Response {
$request->getSession()->set('count', 0);
return $this->redirectToRoute('counter_show');
}
}
// templates/counter.html.twig
<!DOCTYPE html>
<html>
<head><title>Symfony Counter</title></head>
<body>
<h2>Counter: {{ 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>
</body>
</html>
Demonstrates a simple Symfony controller and routes for a counter using session for state persistence.