1.7.09 reformatage

This commit is contained in:
Fred Tempez 2024-04-07 18:14:43 +02:00
parent d3d96f795a
commit 730e4ac9c4
2 changed files with 21 additions and 21 deletions

View File

@ -183,7 +183,7 @@ class JsonDb extends \Prowebcraft\Dot
} }
flock($lockHandle, LOCK_UN); // Libérer le verrouillage flock($lockHandle, LOCK_UN); // Libérer le verrouillage
fclose($lockHandle); // Fermer le fichier fclose($lockHandle); // Fermer le fichier
if ($bytesWritten === false || $bytesWritten != strlen($jsonData)) { if ($bytesWritten === false || $bytesWritten != strlen($jsonData)) {
error_log('Erreur d\'écriture, les données n\'ont pas été sauvegardées.'); error_log('Erreur d\'écriture, les données n\'ont pas été sauvegardées.');
return false; return false;
@ -194,8 +194,8 @@ class JsonDb extends \Prowebcraft\Dot
return false; return false;
} }
return true; return true;
} }
} }

View File

@ -73,7 +73,7 @@ class common
const COURSE_ENROLMENT_MANDATORY = 3; const COURSE_ENROLMENT_MANDATORY = 3;
const MAX_FILE_WRITE_ATTEMPTS = 5; const MAX_FILE_WRITE_ATTEMPTS = 5;
/** /**
* Nombre maximal de tentatives d'encodage JSON * Nombre maximal de tentatives d'encodage JSON
*/ */
@ -347,11 +347,11 @@ class common
// Instanciation de la classe des entrées / sorties // Instanciation de la classe des entrées / sorties
// Les fichiers de configuration // Les fichiers de configuration
foreach ($this->configFiles as $module => $value) { foreach ($this->configFiles as $module => $value) {
$this->initDB($module,self::DATA_DIR); $this->initDB($module, self::DATA_DIR);
} }
// Les fichiers des contenus // Les fichiers des contenus
foreach ($this->contentFiles as $module => $value) { foreach ($this->contentFiles as $module => $value) {
$this->initDB($module,self::DATA_DIR . self::$siteContent . '/'); $this->initDB($module, self::DATA_DIR . self::$siteContent . '/');
} }
@ -629,7 +629,7 @@ class common
// Constructeur JsonDB; // Constructeur JsonDB;
$this->dataFiles[$module] = new \Prowebcraft\JsonDb([ $this->dataFiles[$module] = new \Prowebcraft\JsonDb([
'name' => $module . '.json', 'name' => $module . '.json',
'dir' => $path, 'dir' => $path,
'backup' => file_exists('site/data/.backup') 'backup' => file_exists('site/data/.backup')
]); ]);
@ -782,22 +782,22 @@ class common
*/ */
/** /**
* Écriture sécurisée dans un fichier en utilisant un verrouillage de fichier pour éviter les accès concurrents. * Écriture sécurisée dans un fichier en utilisant un verrouillage de fichier pour éviter les accès concurrents.
* Les données sont encodées au format JSON si l'extension du fichier est JSON. * Les données sont encodées au format JSON si l'extension du fichier est JSON.
* *
* @param string $filename Le chemin du fichier dans lequel écrire les données. * @param string $filename Le chemin du fichier dans lequel écrire les données.
* @param mixed $data Les données à écrire dans le fichier. * @param mixed $data Les données à écrire dans le fichier.
* @param int $options Les options pour la fonction file_put_contents, par défaut 0. * @param int $options Les options pour la fonction file_put_contents, par défaut 0.
* *
* @return bool Retourne true si l'écriture dans le fichier est réussie, false sinon. * @return bool Retourne true si l'écriture dans le fichier est réussie, false sinon.
*/ */
public static function secureFilePutContents($filename, $data, $options = 0) public static function secureFilePutContents($filename, $data, $options = 0)
{ {
// Vérifier si l'extension du fichier est JSON // Vérifier si l'extension du fichier est JSON
$extension = pathinfo($filename, PATHINFO_EXTENSION); $extension = pathinfo($filename, PATHINFO_EXTENSION);
$encodeJson = strtolower($extension) === 'json'; $encodeJson = strtolower($extension) === 'json';
// Tentatives d'encodage JSON si nécessaire // Tentatives d'encodage JSON si nécessaire
if ($encodeJson) { if ($encodeJson) {
$jsonData = null; $jsonData = null;
@ -811,7 +811,7 @@ class common
error_log('Erreur d\'encodage JSON (tentative ' . $attempts . ') : ' . json_last_error_msg()); error_log('Erreur d\'encodage JSON (tentative ' . $attempts . ') : ' . json_last_error_msg());
sleep(self::RETRY_DELAY_SECONDS); // Attendre avant de réessayer sleep(self::RETRY_DELAY_SECONDS); // Attendre avant de réessayer
} }
if ($jsonData === false) { if ($jsonData === false) {
error_log('Impossible d\'encoder les données en format JSON.'); error_log('Impossible d\'encoder les données en format JSON.');
return false; return false;
@ -820,7 +820,7 @@ class common
// Pas d'encodage JSON nécessaire // Pas d'encodage JSON nécessaire
$jsonData = $data; $jsonData = $data;
} }
// Écriture sécurisée dans le fichier avec un verrouillage // Écriture sécurisée dans le fichier avec un verrouillage
$attempts = 0; $attempts = 0;
while ($attempts < self::MAX_FILE_WRITE_ATTEMPTS) { while ($attempts < self::MAX_FILE_WRITE_ATTEMPTS) {
@ -843,7 +843,7 @@ class common
error_log('Erreur d\'écriture (tentative ' . $attempts . ') : impossible de sauvegarder les données dans ' . $filename); error_log('Erreur d\'écriture (tentative ' . $attempts . ') : impossible de sauvegarder les données dans ' . $filename);
sleep(self::RETRY_DELAY_SECONDS); // Attendre avant de réessayer sleep(self::RETRY_DELAY_SECONDS); // Attendre avant de réessayer
} }
error_log('Impossible d\'écrire dans le fichier ' . $filename . ' après ' . self::MAX_FILE_WRITE_ATTEMPTS . ' tentatives.'); error_log('Impossible d\'écrire dans le fichier ' . $filename . ' après ' . self::MAX_FILE_WRITE_ATTEMPTS . ' tentatives.');
return false; return false;
} }