code: private function canonicalize(string $value): string
      {
          $resolved = [];
          $chunks = preg_split('#([\\\\/]+)#', $value, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
  
          for ($i = 0, $c = \count($chunks); $i < $c; ++$i) {
              if ('.' === $chunks[$i]) {
                  ++$i;
                  continue;
              }
  
              // Reduce multiple slashes to one
              if ('/' === $chunks[$i][0]) {
                  $resolved[] = '/';
                  continue;
              }
  
              // Reduce multiple backslashes to one
              if ('\\' === $chunks[$i][0]) {
                  $resolved[] = '\\';
                  continue;
              }
  
              if ('..' === $chunks[$i]) {
                  ++$i;
                  array_pop($resolved);
                  array_pop($resolved);
                  continue;
              }
  
              $resolved[] = $chunks[$i];
          }
  
          return rtrim(implode('', $resolved), '\/');
      }
docs: Canonicalizes a path preserving the directory separators.