$value) { if($value != '') // valeur par défaut { if(isset(self::$$field)) // vérification du nom du champ { // problème du slash à la fin du nom d'un dossier if(self::fieldIsPath($field)) // pour db_path, latex_path, pdf_path et pub_path { self::$$field = self::slashAtEndOfPath($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 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'; //~ } //~ } }