$value) { if($value != '') // valeur par défaut { if(isset(self::$$field)) // vérification du nom du champ { // vérification du contenu if(self::fieldIsPath($field)) // cas où le champ db_path, latex_path, pdf_path ou pub_path { if(self::checkPath($field, $value)) { self::$$field = self::slashAtEndOfPath($value); //self::$$field = $value; } } else // tester le reste? { self::$$field = $value; } // else: la valeur par défaut est conservée } else { echo "debug: le fichier config.ini comporte une erreur, le champ: " . $field . " est incorrect,\nl'information contenue sur cette ligne ne sera pas utilisée\n"; } } else { echo "debug: le champ " . $field . " est vide, la valeur par défaut " . self::$$field . " sera utilisée.\n"; } } } static private function fieldIsPath($field): bool { if($field === 'db_path' || $field === 'latex_path' || $field === 'pdf_path' || $field === 'pub_path') { return true; } else { return false; } } static private function checkPath($field, $value): bool { if(!file_exists($value)) { echo "debug: le fichier config.ini comporte une erreur, le dossier " . $value . " renseigné pour le champ " . $field . " n'existe pas,\nla valeur par défaut: " . self::$$field . " sera utilisé\n"; return false; } if(!is_writable($value)) { if($value == self::$$field) { echo "debug: le dossier " . $value . " n'est pas autorisé en écriture\n"; } else { echo "debug: le dossier " . $value . " renseigné pour le champ " . $field . " dans le fichier config.ini n'est pas autorisé en écriture,\nla valeur par défaut: " . self::$$field . " sera utilisée\n"; } return false; } return true; } static public function slashAtEndOfPath($path): string { if(!str_ends_with($path, '/')) { return($path . '/'); } else { return $path; } } // à faire plus tard // transformer les chemins pour qu'ils soient relatifs au dossier 'src' où s'exécute le programme static private function adjustRelativePath($input) { // chemin windows? // chemin relatif ou absolu (par le 1er caractère) // obtenir l'emplacement du dossier de l'utilisateur '~' $userHomePlace = exec(''); // obtenir l'emplacement du dossier 'src' $appExecPlace = getcwd(); } //~ static public function makeDsn() //~ { //~ if($this->sgbd === 'sqlite') //~ { //~ $this->dsn = 'sqlite:' . $this->db_name . '.sqlite'; //~ } //~ } }