first commit
This commit is contained in:
61
src/Shared/Config.php
Normal file
61
src/Shared/Config.php
Normal 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user