# Notes de développement

## Structure du projet (serveur)

```
/var/www/lan.acegrp.varlog/
├── public/
│   ├── index.php       # Point d'entrée
│   ├── route.php       # Routeur (actions GET/POST)
│   └── assets/         # CSS, JS, uploads
├── templates/          # Vues PHP (incluses via extract() + include)
│   ├── layout.php
│   ├── post_form.php
│   └── post_view.php
├── src/
│   ├── db.php          # Connexion PDO PostgreSQL
│   ├── PostManager.php
│   └── FileManager.php
├── config/
│   └── config.php      # Charge .env, définit les constantes DB
└── docs/
```

## Conventions templates

Les templates reçoivent leurs variables via `extract()` depuis `route.php`. Toute variable optionnelle (non transmise dans tous les contextes) doit utiliser `??` pour éviter un `Undefined variable` warning :

```php
// Bon
$dateValue = $published_at ?? date('Y-m-d\TH:i');
<?= ($published ?? false) ? 'checked' : '' ?>

// À éviter
<?= $published ? 'checked' : '' ?>   // Warning si create (pas d'édition)
```

## Permissions serveur

PHP-FPM tourne en `www-data`. Les fichiers sensibles (`.env`) appartiennent à `cedrix:www-data 640`. Voir `PROJET.md` § Permissions serveur.
