forked from ZwiiCMS-Team/ZwiiCampus
1.7.09 reformatage
This commit is contained in:
parent
d3d96f795a
commit
730e4ac9c4
@ -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;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -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;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user