캐시핸들러 – 4.업그레이드 및 패치

파일시스템용, MySQL용 1.0.0 (2003.4.25)

  • 파일명 변경(class.hCache.php -> class.hCacheFile.php)
  • 클래스명 변경(hCache -> hCacheFile)
  • garbage collection 핸들러 gc()를 private 함수 _gc()로 변경 – 이전 버전에서는 보통 객체 생성한 후에 garbage collection 핸들러를 명시적으로 실행하여야 하였으나 이를 open 함수 내에서 동작하도록 수정하였습니다.
  • garbage collection period를 0으로 설정하면 garbage collection을 수행하지 않습니다.
  • 2명 이상의 방문자가 동시에 방문하였을 때 garbage collection 동작은 단 한명에게만 허용
  • 한 문서에서는 객체 생성을 몇 번을 하던지 관계없이 garbage collection을 디렉토리별로 한번만 수행
  • 하나의 객체에서 여러 개의 캐시 파일을 다룰 수 있도록 save_id() 함수를 추가
  • 캐시파일의 내용을 URL을 통해 불법적으로 접근하는 경우에 그 내용이 웹브라우저에 나타나지 않도록 개선

파일시스템용 0.0.2(2002.7.19)

  • PHP_OS 상수를 이용하여 서버가 윈도우 시스템인지 아닌지 자동 판별
    $this->WIN32 = (“WIN32” == PHP_OS) ? true : false;
  • 캐시파일명으로 사용되는 $this->ID는 생성자에서 반드시 지정하여 주어야 합니다.
    $cache = new hCache (array(“id” => cache id));
  • 파일시스템용 후키 캐시만 지원
  • 파일시스템용 후키 캐시 파일명 변경(class.hCacheHandler.php -> class.hCache.php), 클래스명은 hCache로 이전 버전과 동일함

파일시스템용 0.0.1p3(2002.4.25)

  • $HTTP_ENV_VARS[“windir”] 문제 발생

윈도우 시스템 또는 PHP 버전에 따라 $GLOBALS[“HTTP_ENV_VARS”][“windir”] 가 제대로 동작하지 않고 $GLOBALS[“HTTP_ENV_VARS”][“WINDIR”] 로 지정해야 동작하는 경우도 있네요… 그래서 일단 iswin() 함수를 아래와 같이 재수정합니다.

파일시스템용 0.0.1p2

  • 서버가 윈도우 시스템인지 아닌지 자동 판별하는 함수 추가

위 함수에 의해 아래와 같이 생성자 내에서 멤버변수 WIN32를 자동 설정합니다.

  • register_globals 값이 off일 때의 문제점 수정

$GLOBALS[“PHP_SELF”] 을 $GLOBALS[“HTTP_SERVER_VARS”][“PHP_SELF”] 으로 수정합니다. $GLOBALS[“PHP_SELF”]의 경우를 보면 PHP 버전에 따라 php.ini 파일 중 register_globals 값이 off일 때 제대로 동작하지 않습니다. 버전에 관계없이 정상적으로 동작시키기 위하여 $HTTP_SERVER_VARS를 통해 PHP_SELF 값을 얻습니다.

파일시스템용 0.0.1p1(2002.4.22)

  • 윈도우 시스템에서보면 라인끝을 CR/LF로 나타내느냐? LF로 나타내느냐에 따라 serialize()/unserialize() 함수가 제대로 동작하지 않습니다. 이를 해결하기 위해 메소드 read에서 파일 내용을 읽을 때 file 함수 대신에 fread 함수를 이용하였습니다.

위의 read() 함수를 아래와 같이 수정합니다.

MySQL용 0.0.1-beta1(2002.1.29)

  • MySQL용으로 제공

파일시스템용 0.0.1-beta1(2002.1.29-최초 공개 버전)

  • open, gc, destroy, read, write, close 핸들러 제공
  • 생성자의 캐시 설정값으로는 update, id, period, maxlifetime, path를 지정할 수 있음

답글 남기기