first commit

This commit is contained in:
julien
2026-03-16 01:47:07 +01:00
commit 8f7e61bda0
185 changed files with 27731 additions and 0 deletions

61
src/Shared/Config.php Normal file
View File

@@ -0,0 +1,61 @@
<?php
declare(strict_types=1);
namespace App\Shared;
/**
* Classe de configuration de l'application.
*
* Centralise la résolution des chemins et paramètres
* qui dépendent de l'environnement d'exécution.
*/
final class Config
{
/**
* Retourne le chemin du cache Twig, ou false si le cache est désactivé.
*
* Le cache Twig est désactivé en développement pour refléter
* immédiatement les modifications des templates.
* Le répertoire est créé en amont par Bootstrap::checkDirectories().
*
* @param bool $isDev True si l'application est en mode développement
*
* @return string|false Le chemin absolu du répertoire de cache, ou false
*/
public static function getTwigCache(bool $isDev): string|false
{
if ($isDev) {
return false;
}
return __DIR__.'/../../var/cache/twig';
}
/**
* Retourne le chemin absolu vers le fichier de base de données SQLite.
*
* Crée le répertoire et le fichier s'ils n'existent pas encore.
* En pratique, Bootstrap::checkDirectories() crée le répertoire `database/`
* avant que cette méthode soit appelée ; les opérations @mkdir/@touch/@chmod
* ne seront actives que si getDatabasePath() est appelé hors du cycle Bootstrap
* (tests unitaires, scripts CLI, etc.).
*
* @return string Chemin absolu vers le fichier app.sqlite
*/
public static function getDatabasePath(): string
{
$path = dirname(__DIR__, 2).'/database/app.sqlite';
$dir = dirname($path);
if (!is_dir($dir)) {
@mkdir($dir, 0755, true);
}
if (!file_exists($path)) {
@touch($path);
@chmod($path, 0664);
}
return $path;
}
}