commit ffb4f1e1826a8fddd5e3e241ca97124db6fd9ac7
parent 7a27127c24218fa1897267a69c5cad041b566e63
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date: Wed, 4 Aug 2010 21:41:39 +0200
Gestion d'erreur plus souple.
Les erreurs sont convertibles en string pour avoir une valeur par défaut, si on ignore l'erreur.
Diffstat:
3 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/__cms__/code/securite/erreur.php b/__cms__/code/securite/erreur.php
@@ -1,6 +1,10 @@
<?php
class Erreur {
+ public $type = "erreur";
+ public $message = "erreur";
+ public $string = "";
+
public static function fatale($message) {
echo '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
@@ -22,6 +26,20 @@ class Erreur {
//echo "\n"; debug_print_backtrace();
exit;
}
+
+ public static function lecture($message) {
+ $t = new self("lecture", $message);
+ }
+
+ public function __construct($type, $message, $string = "[debug:erreur]") {
+ $this->type = $type;
+ $this->message = $message;
+ $this->string = $string;
+ }
+
+ public function __toString() {
+ return $this->string;
+ }
}
?>
\ No newline at end of file
diff --git a/__cms__/code/stockage/stockage.php b/__cms__/code/stockage/stockage.php
@@ -73,8 +73,7 @@ class Stockage {
if ($forcer_permissions || Permissions::vérifier_permission($chemin, "get_prop")) {
return Système_fichiers::lire(self::fichier_prop($chemin, $prop));
} else {
- Erreur::fatale("Permission non accordée pour la lecture de chemin: " . $chemin->get() . " propriété: " . $prop);
- // return false;
+ return Erreur::lecture("Permission non accordée pour la lecture de chemin: " . $chemin->get() . " propriété: " . $prop);
}
}
@@ -84,7 +83,7 @@ class Stockage {
if (Permissions::vérifier_permission($chemin, "get_prop")) {
return Système_fichiers::envoyer_fichier_directement(self::fichier_prop($chemin, $prop));
} else {
- return false;
+ return Erreur::lecture("Permission non accordée pour la lecture de chemin: " . $chemin->get() . " propriété: " . $prop);
}
}
diff --git a/__cms__/code/stockage/systeme-fichiers.php b/__cms__/code/stockage/systeme-fichiers.php
@@ -25,7 +25,7 @@ class Système_fichiers {
}
public static function lire($chemin_fs) {
- if (!file_exists($chemin_fs)) Erreur::fatale("Ne peut lire le fichier " . $chemin_fs); // return false;
+ if (!file_exists($chemin_fs)) return Erreur::lecture("Ne peut lire le fichier " . $chemin_fs);
return file_get_contents($chemin_fs);
}