Rechercher une fonction PHP

session_gc

(PHP 7 >= 7.1.0)

session_gcExécute le ramasse miette des données de session

Description

session_gc ( void ) : int

session_gc() est utilisé pour exécuter le ramasse miette (Garbage Collection abbrévié GC). PHP utilise une méthode probabiliste pour exécuter le ramasse miette de session par défaut.

Le ramassage de miette (GC) basé sur une méthode probabiliste fonctionne quelque peu mais a quelques problèmes. 1) Les données de session des sites à faible traffic ne seront peut être pas supprimés durant la durée préféré. 2) Les sites à fort traffic exécuteront potentiellement le ramasse miette à une trop grande fréquence. 3) Le ramasse miette est exécuté sur une requête utilisateur et celui-ci ressentira une latence due au ramasse miette.

Par conséquent, il est recommendé d'exécuter le ramasse miette périodiquement sur les systèmes de productions, par exemple, "cron" pour les systèmes de type UNIX. Assurez-vous de désactiver le ramasse miette à méthode probabiliste en définissant session.gc_probability à 0.

Retour à la première page de Manuel PHP  Table des matières Haut

Valeurs de retour

session_gc() retourne le nombre de données de session effacé en tant que succès, FALSE en cas d'échec.

Les anciens gestionnaire de sauvegarde ne retourne pas le nombre de données de session effacé mais seulement le drapeau de succès/échec. Dans ce cas là, le nombre de données de session effacé est 1 quelque soit le nombre actuel de données effacé.

Retour à la première page de Manuel PHP  Table des matières Haut

Exemples

Exemple #1 Exemple de session_gc() pour les planificateurs de tâches comme cron

<?php
// Note: Ce script devrait être exécuté par le même utilisateur que le processus du serveur web.

// Neccesite l'activation des sessions pour initialiser l'accès au gestionaire de sauvegarde des sessions
session_start();

// Exécuter le Ramasse Miette immédiatement
session_gc();

// Effacer l'ID de session créé par session_gc()
session_destroy();
?>

Exemple #2 Exemple de session_gc() pour des scripts accessible par l'utilisateur

<?php
// Note: il est recommendé que session_gc() soit utilisé par un planificateur de tâches,
// mais il peut être utilisé de la façon suiivante.

// Utilisé pour vérifier l'heure de la dernière utilisation du ramasse miette
$gc_time '/tmp/php_session_last_gc';
$gc_period 1800;

session_start();
// Exécuter le ramasse miette seulement quand la période s'est écoulée. 
// Appeller session_gc() à chaque requête est un gaspillage de ressource. 
if (file_exists($gc_time)) {
    if (
filemtime($gc_time) < time() - $gc_period) {
        
session_gc();
        
touch($gc_time);
    }
} else {
    
touch($gc_time);
}
?>

Retour à la première page de Manuel PHP  Table des matières Haut

Voir aussi

Rechercher une fonction PHP

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-function.session-gc.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut