라이브러리

[PHP] SessionHandlerInterface::gc - 이전 세션 정리




PHP의 SessionHandlerInterface::gc 메소드는 세션의 GC(Garbage Collection) 기능을 제공합니다. 이 메소드는 세션의 무효화된 데이터를 삭제하는 역할을 합니다.

SessionHandlerInterface::gc 메소드의 역할


세션의 GC 기능은 세션의 무효화된 데이터를 삭제하는 역할을 합니다. 세션의 무효화된 데이터는 사용자가 로그아웃을 하거나 세션의 유효 기간이 끝났을 때 삭제됩니다.

SessionHandlerInterface::gc 메소드의 사용 예제


아래 예제는 SessionHandlerInterface::gc 메소드를 사용하는 예제입니다.

#hostingforum.kr
php

use SessionHandlerInterface;



class MySessionHandler implements SessionHandlerInterface

{

    public function gc($maxlifetime)

    {

        // 세션의 무효화된 데이터를 삭제하는 코드를 작성합니다.

        // 예를 들어, MySQL의 세션 테이블에서 무효화된 데이터를 삭제하는 코드를 작성할 수 있습니다.

        $db = new PDO('mysql:host=localhost;dbname=mydb', 'myuser', 'mypassword');

        $stmt = $db->prepare('DELETE FROM sessions WHERE expire <= NOW() - ?');

        $stmt->execute([$maxlifetime]);

        $db = null;

    }

}



세션의 GC 기능을 사용하는 방법


세션의 GC 기능을 사용하려면 세션 핸들러를 설정해야 합니다. 세션 핸들러는 세션의 GC 기능을 제공하는 클래스입니다.

아래 예제는 세션 핸들러를 설정하는 방법을 보여줍니다.

#hostingforum.kr
php

session_set_save_handler(

    new MySessionHandler(),

    new MySessionHandler(),

    new MySessionHandler(),

    new MySessionHandler(),

    new MySessionHandler(),

    new MySessionHandler()

);



세션의 GC 기능을 사용하는 방법 (PHP 7.4 이상)


PHP 7.4 이상부터는 세션의 GC 기능을 사용하는 방법이 변경되었습니다. 세션의 GC 기능을 사용하려면 `session.gc_probability`와 `session.gc_divisor` 설정을 변경해야 합니다.

아래 예제는 세션의 GC 기능을 사용하는 방법을 보여줍니다.

#hostingforum.kr
php

ini_set('session.gc_probability', 1);

ini_set('session.gc_divisor', 1);



결론


세션의 GC 기능은 세션의 무효화된 데이터를 삭제하는 역할을 합니다. 세션 핸들러를 설정하고 세션의 GC 기능을 사용하려면 세션 핸들러를 설정하고 `session.gc_probability`와 `session.gc_divisor` 설정을 변경해야 합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 260 페이지

검색

게시물 검색