[SPIP] ~maj v3.0.14-->v3.0.17
[ptitvelo/web/www.git] / www / ecrire / public / debusquer.php
index 378ca3b..1fb6dd8 100644 (file)
@@ -13,6 +13,7 @@
 if (!defined('_ECRIRE_INC_VERSION')) return;
 
 include_spip('public/decompiler');
+include_spip('inc/filtres_mini');
 
 // Le debusqueur repose sur la globale debug_objets,
 // affectee par le compilateur et le code produit par celui-ci.
@@ -37,19 +38,47 @@ include_spip('public/decompiler');
  */
 defined('_DEBUG_MAX_SQUELETTE_ERREURS') || define('_DEBUG_MAX_SQUELETTE_ERREURS', 9);
 
-//
-// Point d'entree general, 
-// pour les appels involontaires ($message non vide => erreur)
-// et volontaires (var_mode et var_profile) 
-// Si pas d'autorisation, les erreurs ne sont pas affichees
-// (mais seront dans les logs)
-// Si l'erreur vient de SPIP,  en parler sur spip@rezo.net
 
-function public_debusquer_dist($message = '', $lieu = ''){
+/**
+ * Point d'entrée pour les erreurs de compilation
+ *
+ * Point d'entrée pour les appels involontaires ($message non vide => erreur)
+ *  et volontaires (var_mode et var_profile)
+ * 
+ * Si pas d'autorisation, les erreurs ne sont pas affichées
+ * (mais seront dans les logs)
+ *
+ * Si l'erreur vient de SPIP,  en parler sur `spip@rezo.net`
+ * 
+ * @param bool|string|array $message
+ *     - Message d'erreur (string|array)
+ *     - false pour retourner le texte des messages d'erreurs
+ *     - vide pour afficher les messages d'erreurs
+ * @param string|Contexte $lieu
+ *     Contexte : lieu d'origine de l'erreur
+ * @param array $opt
+ *     Options pour debug ou tests unitaires
+ *     - 'erreurs' = 'get' : Retourne le tableau des erreurs
+ *     - 'erreurs' = 'reset' : Efface le tableau des erreurs
+ * @return null|string
+ *     - string si $message à false.
+**/
+function public_debusquer_dist($message = '', $lieu = '', $opt = array()){
        global $visiteur_session;
        global $debug_objets;
        static $tableau_des_erreurs = array();
 
+       // Pour des tests unitaires, pouvoir récupérer les erreurs générées
+       if (isset($opt['erreurs'])) {
+               if ($opt['erreurs'] == 'get') {
+                       return $tableau_des_erreurs;
+               }
+               if ($opt['erreurs'] == 'reset') {
+                       $tableau_des_erreurs = array();
+                       return true;
+               }
+       }
+
        // Erreur ou appel final ?
        if ($message){
                $message = debusquer_compose_message($message);