62 lines
1.8 KiB
PHP
62 lines
1.8 KiB
PHP
<?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;
|
|
}
|
|
}
|