inotify

inotify (파일시스템 이벤트)

Linux 커널의 inotify 메커니즘을 PHP에서 사용할 수 있게 해 주는 확장이에요. 파일이나 디렉터리의 생성·삭제·수정 같은 변경 이벤트를 감지해서 실시간 반응할 때 씁니다.

출처: PHP: Inotify - Manual

본문

inotify 확장은 inotify의 함수인 inotify_init(), inotify_add_watch(), inotify_rm_watch()를 PHP로 드러냅니다.

C 언어의 inotify_init()가 파일 디스크립터를 반환하는 것처럼, PHP의 inotify_init()는 스트림 리소스를 반환해요. 이 스트림은 stream_select(), stream_set_blocking(), fclose() 같은 표준 스트림 함수와 함께 쓸 수 있습니다. 한편 inotify_read()는 C 방식의 inotify 이벤트 읽기를 대체합니다.

inotify 함수

함수 설명
inotify_add_watch 초기화된 inotify 인스턴스에 감시(watch) 추가
inotify_init inotify 인스턴스 초기화
inotify_queue_len 대기 중인 이벤트가 있으면 0보다 큰 수 반환
inotify_read inotify 인스턴스에서 이벤트 읽기
inotify_rm_watch inotify 인스턴스에서 기존 감시 제거

감시를 추가할 때 감지하고 싶은 이벤트 종류(생성, 수정, 삭제 등)를 상수로 지정하고, stream_select()로 여러 감시를 묶어 대기하면 파일시스템 변경에 비동기적으로 반응할 수 있어요. 파일 감시/배포 도구 같은 기능을 순수 PHP로 만들 때 유용한 확장입니다.

더 알아보기