diff --git a/setup/class_setup.inc b/setup/class_setup.inc
index 980bd22c940fb20aac3ff30f3975f2c5830e4aef..b650ba0e0974347f93a045a8f494a1097c62a3d1 100755
--- a/setup/class_setup.inc
+++ b/setup/class_setup.inc
@@ -64,7 +64,7 @@ class setup implements FusionDirectoryDialog
      *  but only do this, if user is allowed to use the setup.
      * If setupsetupStepWelcome is_completed, we are allowed to view those infos-
      */
-    if (isset($_GET['info']) && preg_match('/setupStepWelcome/i', get_class($this->o_steps[0])) && $this->o_steps[0]->is_completed()) {
+    if (isset($_GET['info']) && preg_match('/setupStepWelcome/i', $this->o_steps[0]::class) && $this->o_steps[0]->is_completed()) {
       phpinfo();
       exit();
     }
@@ -260,7 +260,7 @@ class setup implements FusionDirectoryDialog
   function step_name_to_id ($name)
   {
     foreach ($this->o_steps as $id => $class) {
-      if (get_class($class) == $name) {
+      if ($class::class == $name) {
         return $id;
       }
     }
diff --git a/setup/class_setupStepLdap.inc b/setup/class_setupStepLdap.inc
index 92fe043539ad2f6e605b3cf9ffcc262f9a3d88e7..fa73de09630bbe1f96a0cc3f459e12cd67b83b78 100755
--- a/setup/class_setupStepLdap.inc
+++ b/setup/class_setupStepLdap.inc
@@ -140,7 +140,7 @@ class setupStepLdap extends setupStep
     parent::update();
     $this->connection = preg_replace('/\/$/', '', $this->connection);
     if (($this->base != $this->lastBase) || ($this->connection != $this->lastConnection)) {
-      $this->parent->disable_steps_from(($this->parent->step_name_to_id(get_class($this))) + 1);
+      $this->parent->disable_steps_from(($this->parent->step_name_to_id(static::class)) + 1);
       $this->lastBase       = $this->base;
       if ($this->connection != $this->lastConnection) {
         $this->update_base_choices();
diff --git a/setup/class_setupStepMigrate.inc b/setup/class_setupStepMigrate.inc
index 59c0d524ee4d7a7ff31db0095abad308e68de2b6..54af3a95b4810ba4eebee960487be7c0107b4fe7 100755
--- a/setup/class_setupStepMigrate.inc
+++ b/setup/class_setupStepMigrate.inc
@@ -530,7 +530,7 @@ class setupStepMigrate extends setupStep
     $res = $ldap->add($testEntry);
     $ldap->cat($dn);
     if (!$ldap->count()) {
-      logging::log('error', 'setup/'.get_class($this), $dn, [], $ldap->get_error());
+      logging::log('error', 'setup/'.static::class, $dn, [], $ldap->get_error());
       throw new CheckFailedException(
         _('Failed'),
         sprintf(_('The specified user "%s" does not have full access to your LDAP database.'), $config->current['ADMINDN'])
@@ -541,7 +541,7 @@ class setupStepMigrate extends setupStep
     $res = $ldap->rmDir($dn);
     $ldap->cat($dn);
     if ($ldap->count()) {
-      logging::log('error', 'setup/'.get_class($this), $dn, [], $ldap->get_error());
+      logging::log('error', 'setup/'.static::class, $dn, [], $ldap->get_error());
       throw new CheckFailedException(
         _('Failed'),
         sprintf(_('The specified user "%s" does not have full access to your ldap database.'), $config->current['ADMINDN'])
@@ -592,7 +592,7 @@ class setupStepMigrate extends setupStep
     $accountsCount  = $ldap->count();
 
     while ($attrs = $ldap->fetch(TRUE)) {
-      $base = preg_replace('/^[^,]+,/', '', $attrs['dn']);
+      $base = preg_replace('/^[^,]+,/', '', (string) $attrs['dn']);
 
       /* Build groupid depending on base and objectClasses */
       $groupid = md5($base.implode('', $attrs['objectClass']));
@@ -610,7 +610,7 @@ class setupStepMigrate extends setupStep
       $attrs['before']  = '';
       $attrs['after']   = '';
 
-      $this->accounts_toMigrate[$groupid]['objects'][base64_encode($attrs['dn'])] = $attrs;
+      $this->accounts_toMigrate[$groupid]['objects'][base64_encode((string) $attrs['dn'])] = $attrs;
     }
 
     if (count($this->accounts_toMigrate) == 0) {
@@ -786,7 +786,7 @@ class setupStepMigrate extends setupStep
         $acls = $attrs['gosaAclEntry'];
         for ($i = 0; $i < $acls['count']; $i++) {
           $acl = $acls[$i];
-          $tmp = explode(':', $acl);
+          $tmp = explode(':', (string) $acl);
 
           if ($tmp[1] == 'subtree') {
             /* Check if acl owner is a valid FusionDirectory user account */
@@ -1087,8 +1087,8 @@ class setupStepMigrate extends setupStep
       }
 
       while ($attrs = $ldap->fetch(TRUE)) {
-        $object_base  = preg_replace('/^[^,]+,'.preg_quote($objects_ou, '/').'/i', '', $attrs['dn'], 1, $pregCount);
-        $base         = preg_replace('/^[^,]+,/', '', $attrs['dn']);
+        $object_base  = preg_replace('/^[^,]+,'.preg_quote($objects_ou, '/').'/i', '', (string) $attrs['dn'], 1, $pregCount);
+        $base         = preg_replace('/^[^,]+,/', '', (string) $attrs['dn']);
 
         /* Check if entry is in a valid department */
         if (($pregCount === 0) || !in_array($object_base, $config->getDepartmentList())) {
@@ -1105,7 +1105,7 @@ class setupStepMigrate extends setupStep
           }
 
           $attrs['ldif'] = '';
-          $this->{$var}[$groupid]['objects'][base64_encode($attrs['dn'])] = $attrs;
+          $this->{$var}[$groupid]['objects'][base64_encode((string) $attrs['dn'])] = $attrs;
           if (++$count >= static::$objectNumberLimit) {
             $sizeLimitHit = TRUE;
             break 2;
@@ -1167,7 +1167,7 @@ class setupStepMigrate extends setupStep
       if ($entry['checked']) {
         foreach ($entry['objects'] as &$object) {
           $dn   = $object['dn'];
-          $d_dn = preg_replace('/,.*$/', ','.$destination_dep, $dn);
+          $d_dn = preg_replace('/,.*$/', ','.$destination_dep, (string) $dn);
           if ($only_ldif) {
             $object['ldif'] = nl2br(htmlescape(sprintf(_("Entry will be moved from:\n\t%s\nto:\n\t%s"), $dn, $d_dn)));
 
@@ -1310,14 +1310,14 @@ class setupStepMigrate extends setupStep
 
     /* Skip FusionDirectory internal departments */
     $skip_dns = [
-      '/ou=fusiondirectory,'.preg_quote($config->current['BASE']).'$/',
+      '/ou=fusiondirectory,'.preg_quote((string) $config->current['BASE']).'$/',
       '/^ou=systems,/',
       '/ou=snapshots,/'
     ];
     foreach (objects::types() as $type) {
       $infos = objects::infos($type);
       if (isset($infos['ou']) && ($infos['ou'] != '')) {
-        $skip_dns[] = '/^'.preg_quote($infos['ou'], '/').'/';
+        $skip_dns[] = '/^'.preg_quote((string) $infos['ou'], '/').'/';
       }
     }
 
@@ -1341,7 +1341,7 @@ class setupStepMigrate extends setupStep
     while ($attrs = $ldap->fetch(TRUE)) {
       foreach ($skip_dns as $skip_dn) {
         /* Filter out FusionDirectory internal departments */
-        if (preg_match($skip_dn, $attrs['dn'])) {
+        if (preg_match($skip_dn, (string) $attrs['dn'])) {
           continue 2;
         }
       }
@@ -1351,10 +1351,10 @@ class setupStepMigrate extends setupStep
       $attrs['after']   = '';
 
       /* Set objects to selected, that were selected before reload */
-      if (isset($old[base64_encode($attrs['dn'])])) {
-        $attrs['checked'] = $old[base64_encode($attrs['dn'])]['checked'];
+      if (isset($old[base64_encode((string) $attrs['dn'])])) {
+        $attrs['checked'] = $old[base64_encode((string) $attrs['dn'])]['checked'];
       }
-      $this->orgUnits_toMigrate[base64_encode($attrs['dn'])] = $attrs;
+      $this->orgUnits_toMigrate[base64_encode((string) $attrs['dn'])] = $attrs;
       if (count($this->orgUnits_toMigrate) >= static::$objectNumberLimit) {
         $sizeLimitHit = TRUE;
         break;
diff --git a/setup/class_setupStepWelcome.inc b/setup/class_setupStepWelcome.inc
index 09b6b89a91edf37a28d4500e446b051a36268cdd..aa563dfd6c9fee4c5d35ea930f65efbcee4ddfd7 100755
--- a/setup/class_setupStepWelcome.inc
+++ b/setup/class_setupStepWelcome.inc
@@ -61,7 +61,7 @@ class setupStepWelcome extends setupStep
     /* Get auth ID from file */
     if (file_exists($this->authPath) && is_readable($this->authPath)) {
       $contents = file($this->authPath);
-      $id       = chop($contents[0]);
+      $id       = rtrim($contents[0]);
     }
 
     /* Continue if we've the correct ID */