moved db name into config
This commit is contained in:
@@ -4,22 +4,65 @@ declare(strict_types=1);
|
||||
use RedBeanPHP\R;
|
||||
|
||||
/**
|
||||
* Crée le fichier SQLite s’il n’existe pas.
|
||||
* -----------------------------------------------------------------
|
||||
* Helper – crée le fichier SQLite s’il n’existe pas.
|
||||
* -----------------------------------------------------------------
|
||||
*
|
||||
* @param string $path Chemin complet du fichier SQLite.
|
||||
*/
|
||||
function ensureDatabaseFile(string $path): void
|
||||
{
|
||||
if (!file_exists($path)) {
|
||||
// crée un fichier vide
|
||||
touch($path);
|
||||
chmod($path, 0664); // rw‑rw‑r--
|
||||
// permissions rw‑rw‑r-- (0664) – suffisantes pour le serveur web
|
||||
chmod($path, 0664);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialise RedBeanPHP avec SQLite.
|
||||
* -----------------------------------------------------------------
|
||||
* Initialise RedBeanPHP avec le driver SQLite.
|
||||
* -----------------------------------------------------------------
|
||||
*
|
||||
* Cette fonction :
|
||||
* 1. S’assure que le fichier SQLite existe (via ensureDatabaseFile()).
|
||||
* 2. Lance R::setup() avec le préfixe « sqlite: ».
|
||||
* 3. Définit le mode « freeze » (false en dev, true en prod).
|
||||
*
|
||||
* @param string $dbPath Chemin complet du fichier SQLite.
|
||||
*/
|
||||
function initRedBean(string $dbPath): void
|
||||
{
|
||||
// 1. création éventuelle du fichier
|
||||
ensureDatabaseFile($dbPath);
|
||||
|
||||
// 2. connexion à la base SQLite
|
||||
R::setup('sqlite:' . $dbPath);
|
||||
R::freeze(false); // false en dev, true en prod
|
||||
|
||||
// 3. pendant le développement on laisse freeze à false
|
||||
// (RedBean crée/modifie les tables automatiquement)
|
||||
R::freeze(false);
|
||||
}
|
||||
|
||||
/**
|
||||
* -----------------------------------------------------------------
|
||||
* Retourne le chemin par défaut du fichier SQLite.
|
||||
* -----------------------------------------------------------------
|
||||
*
|
||||
* Le nom du fichier peut être surchargé via la variable d’environnement
|
||||
* DB_FILE (ou via un .env chargé par l’application). Ainsi on évite
|
||||
* de coder en dur le nom du fichier dans le bootstrap.
|
||||
*
|
||||
* @return string Chemin absolu du fichier SQLite.
|
||||
*/
|
||||
function getDefaultDbPath(): string
|
||||
{
|
||||
// Le répertoire « database » se trouve deux niveaux au-dessus de ce fichier
|
||||
$baseDir = realpath(__DIR__ . '/../../database');
|
||||
|
||||
// Nom du fichier – valeur par défaut « app.sqlite »
|
||||
$fileName = getenv('DB_FILE') ?: 'app.sqlite';
|
||||
|
||||
return $baseDir . DIRECTORY_SEPARATOR . $fileName;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user