From 76ceb6f1cd16dcbb605989d72fd7b41bd9740c20 Mon Sep 17 00:00:00 2001
From: Thibault Dockx <thibault.dockx@fusiondirectory.org>
Date: Mon, 24 Feb 2025 15:21:05 +0000
Subject: [PATCH] :sparkles: Feat(Errors) - adapt errors classes to php82

Adapt errors classes to php82
---
 include/errors/class_FatalError.inc            |  1 -
 include/errors/class_FusionDirectoryError.inc  |  5 ++---
 include/errors/class_SimplePluginError.inc     | 16 ++++++++--------
 include/errors/class_SimplePluginHookError.inc |  4 ++--
 include/errors/class_SimplePluginLdapError.inc |  4 ++--
 5 files changed, 14 insertions(+), 16 deletions(-)

diff --git a/include/errors/class_FatalError.inc b/include/errors/class_FatalError.inc
index ae4841c20..0949cc13c 100755
--- a/include/errors/class_FatalError.inc
+++ b/include/errors/class_FatalError.inc
@@ -29,7 +29,6 @@ class FatalError extends Error
   public function __construct (string $htmlMessage = '', int $code = 0, Throwable $previous = NULL)
   {
     $this->htmlMessage = $htmlMessage;
-    parent::__construct(htmlunescape(strip_tags($htmlMessage)), $code, $previous);
   }
 
   public function getHtmlMessage ()
diff --git a/include/errors/class_FusionDirectoryError.inc b/include/errors/class_FusionDirectoryError.inc
index 6a694270d..ba0bcf2d8 100755
--- a/include/errors/class_FusionDirectoryError.inc
+++ b/include/errors/class_FusionDirectoryError.inc
@@ -28,7 +28,6 @@ class FusionDirectoryError extends Error
   public function __construct (string $htmlMessage = '', int $code = 0, Throwable $previous = NULL)
   {
     $this->htmlMessage = $htmlMessage;
-    parent::__construct(htmlunescape(strip_tags($htmlMessage)), $code, $previous);
   }
 
   public function getHtmlMessage ()
@@ -39,14 +38,14 @@ class FusionDirectoryError extends Error
   public function toArray (): array
   {
     return [
-      'class'   => get_class($this),
+      'class'   => static::class,
       'message' => $this->getMessage(),
       'line'    => $this->getLine(),
       'file'    => $this->getFile(),
     ];
   }
 
-  public function __toString ()
+  public function __toString (): string
   {
     return $this->getMessage();
   }
diff --git a/include/errors/class_SimplePluginError.inc b/include/errors/class_SimplePluginError.inc
index a2d8ef1ef..f93ed77ed 100755
--- a/include/errors/class_SimplePluginError.inc
+++ b/include/errors/class_SimplePluginError.inc
@@ -21,7 +21,7 @@
 /*! \class SimplePluginError
     \brief Error returned by any method of SimplePlugin
 */
-class SimplePluginError extends FusionDirectoryError
+class SimplePluginError extends FusionDirectoryError implements \Stringable
 {
   protected $object;
   protected $tab;
@@ -49,7 +49,7 @@ class SimplePluginError extends FusionDirectoryError
         $this->tab    = NULL;
         $this->object = $origin;
       } elseif ($origin !== NULL) {
-        trigger_error('Invalid origin of class '.get_class($origin));
+        trigger_error('Invalid origin of class '.$origin::class);
       }
     }
     if (!$this->object instanceof simpleTabs) {
@@ -66,7 +66,7 @@ class SimplePluginError extends FusionDirectoryError
     }
 
     if (isset($this->tab)) {
-      $array['tab'] = get_class($this->tab);
+      $array['tab'] = $this->tab::class;
     }
 
     if (isset($this->attribute)) {
@@ -76,7 +76,7 @@ class SimplePluginError extends FusionDirectoryError
     return $array;
   }
 
-  public function __toString ()
+  public function __toString (): string
   {
     $msg = '';
 
@@ -84,8 +84,8 @@ class SimplePluginError extends FusionDirectoryError
       $msg .= $this->object->dn.' > ';
     }
 
-    if (isset($this->tab) && isset($this->tab->parent->by_name[get_class($this->tab)])) {
-      $msg .= $this->tab->parent->by_name[get_class($this->tab)].' > ';
+    if (isset($this->tab) && isset($this->tab->parent->by_name[$this->tab::class])) {
+      $msg .= $this->tab->parent->by_name[$this->tab::class].' > ';
     }
 
     if (isset($this->attribute)) {
@@ -110,8 +110,8 @@ class SimplePluginError extends FusionDirectoryError
       $breadcrumbs[] = htmlescape($this->object->dn);
     }
 
-    if (isset($this->tab) && isset($this->tab->parent->by_name[get_class($this->tab)])) {
-      $breadcrumbs[] = htmlescape($this->tab->parent->by_name[get_class($this->tab)]);
+    if (isset($this->tab) && isset($this->tab->parent->by_name[$this->tab::class])) {
+      $breadcrumbs[] = htmlescape($this->tab->parent->by_name[$this->tab::class]);
     }
 
     if (isset($this->attribute)) {
diff --git a/include/errors/class_SimplePluginHookError.inc b/include/errors/class_SimplePluginHookError.inc
index c7a693a27..7df540ab7 100755
--- a/include/errors/class_SimplePluginHookError.inc
+++ b/include/errors/class_SimplePluginHookError.inc
@@ -50,8 +50,8 @@ class SimplePluginHookError extends SimplePluginError
       $html .= htmlescape($this->object->dn.' > ');
     }
 
-    if (isset($this->tab) && isset($this->tab->parent->by_name[get_class($this->tab)])) {
-      $html .= htmlescape($this->tab->parent->by_name[get_class($this->tab)].' > ');
+    if (isset($this->tab) && isset($this->tab->parent->by_name[$this->tab::class])) {
+      $html .= htmlescape($this->tab->parent->by_name[$this->tab::class].' > ');
     }
 
     if (isset($this->attribute)) {
diff --git a/include/errors/class_SimplePluginLdapError.inc b/include/errors/class_SimplePluginLdapError.inc
index 5f05144f6..f73389ee4 100755
--- a/include/errors/class_SimplePluginLdapError.inc
+++ b/include/errors/class_SimplePluginLdapError.inc
@@ -57,8 +57,8 @@ class SimplePluginLdapError extends SimplePluginError
       $html .= htmlescape($this->object->dn.' > ');
     }
 
-    if (isset($this->tab) && isset($this->tab->parent->by_name[get_class($this->tab)])) {
-      $html .= htmlescape($this->tab->parent->by_name[get_class($this->tab)].' > ');
+    if (isset($this->tab) && isset($this->tab->parent->by_name[$this->tab::class])) {
+      $html .= htmlescape($this->tab->parent->by_name[$this->tab::class].' > ');
     }
 
     if (isset($this->attribute)) {
-- 
GitLab