You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CLAUDE.md
+22-1Lines changed: 22 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,7 +27,9 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
27
27
## Architecture
28
28
29
29
### Tech Stack
30
-
-**Backend**: Symfony 7 with PHP 8.3+
30
+
-**Backend**: Symfony 8 with PHP 8.5
31
+
-**Runtime**: FrankenPHP in Worker mode (long-running PHP processes)
32
+
-**Realtime**: Mercure for server-sent events (realtime updates)
31
33
-**Database**: PostgreSQL with Doctrine ORM
32
34
-**Frontend**: Symfony UX (Stimulus, Turbo, Live Components), Bootstrap 5, Chart.js
33
35
-**Assets**: Webpack Encore with Sass/SCSS
@@ -36,6 +38,25 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
36
38
-**Payments**: Stripe integration
37
39
-**Containerization**: Docker with custom base image
38
40
41
+
### FrankenPHP Worker Mode
42
+
Since we use FrankenPHP in worker mode, PHP processes persist between requests. Services that cache data in instance properties **must implement `ResetInterface`** to clear state between requests:
43
+
44
+
```php
45
+
use Symfony\Contracts\Service\ResetInterface;
46
+
47
+
final class MyService implements ResetInterface
48
+
{
49
+
private array $cache = [];
50
+
51
+
public function reset(): void
52
+
{
53
+
$this->cache = [];
54
+
}
55
+
}
56
+
```
57
+
58
+
Symfony automatically calls `reset()` between requests. Without this, cached data from one user's request could leak to another user's request.
59
+
39
60
### Application Structure
40
61
41
62
This is a speed puzzling community website built using **Domain-Driven Design** principles with **CQRS** (Command Query Responsibility Segregation) pattern.
0 commit comments