Rozbudowa naszego helpera sesji – dodanie metody pozwalającej liczyć ilość aktywnych sesji. Do dzieła.

Piszemy metodę:

<?php
class Session
{
 
  //(...)

  public static function sessionsCount(){
    $session_path = session_save_path();

    $handle = opendir($session_path);
    $sessions = 0;
        while (($file = readdir($handle)) != FALSE) {
           
            echo $file;
            echo "<br>";
        }
        return $sessions;
  }
}

Session::start();
echo Session::sessionsCount(); "<br>";
//.
//..
//sth.tmp
//sthelse.tmp
//sess_07902a5t3k4iak0p17tsbqmh8g
//sess_0jbohnsfhvmnfqqlpvea2314nn
//sess_0o61v55mps5invdjnhlvm1l4if
//sess_0p3jho2botalfvm4c2kdf690df
//sess_0q8tiirsdu4upsjjs32o4v14it

Jak widać znajdują się tam pliki różne. Sesyjne możemy rozpoznać po nazwie rozpoczynającej się od sess… Utnijmy sobie foldery:

public static function sessionsCount(){
    $session_path = session_save_path();

    $handle = opendir($session_path);
    $sessions = 0;
        while (($file = readdir($handle)) != FALSE) {
           
            if(in_array($file, ['.', '..']))
                continue;
            echo $file;
            echo "<br>";
        }
        return $sessions;
  }

//sth.tmp
//sthelse.tmp
//sess_07902a5t3k4iak0p17tsbqmh8g
//sess_0jbohnsfhvmnfqqlpvea2314nn
//sess_0o61v55mps5invdjnhlvm1l4if
//sess_0p3jho2botalfvm4c2kdf690df
//sess_0q8tiirsdu4upsjjs32o4v14it

Teraz utnijmy pliki, które nie dotyczą sesji:

   $session_path = session_save_path();

    $handle = opendir($session_path);
    $sessions = 0;
        while (($file = readdir($handle)) != FALSE) {
           
            if(in_array($file, ['.', '..']))
                continue;
            if(!preg_match("/^sess/", $file))
                continue;
            echo $file;
            echo "<br>";
        }
        return $sessions;
  }

Teraz aktualizujmy ilość sesji oraz wyświetlajmy pełną ścieżkę:

public static function sessionsCount(){
    $session_path = session_save_path();

    $handle = opendir($session_path);
    $sessions = 0;
        while (($file = readdir($handle)) != FALSE) {
           
            if(in_array($file, ['.', '..']))
                continue;
            if(!preg_match("/^sess/", $file))
                continue;
            $sessions++;
            $file_path = "{$session_path}/{$file}";
            echo $file_path . "<br>";
        }
        return $sessions;
  }

//C:\xampp\tmp/sess_07902a5t3k4iak0p17tsbqmh8g
//C:\xampp\tmp/sess_0jbohnsfhvmnfqqlpvea2314nn
//C:\xampp\tmp/sess_0o61v55mps5invdjnhlvm1l4if
//C:\xampp\tmp/sess_0p3jho2botalfvm4c2kdf690df
//C:\xampp\tmp/sess_0q8tiirsdu4upsjjs32o4v14it

Ta ścieżka nam do niczego nie jest potrzebna, potrzebna dopiero będzie w następnym odcinku, do liczenia sesji aktywnych przez ostatnie 5 minut:

public static function sessionsCount(){
    $session_path = session_save_path();

    $handle = opendir($session_path);
    $sessions = 0;
        while (($file = readdir($handle)) != FALSE) {
           
            if(in_array($file, ['.', '..']))
                continue;
            if(!preg_match("/^sess/", $file))
                continue;
            $sessions++;
        }
        return $sessions;
  }

Klasę będziemy rozbudowywać.