Re: File system watcher/monitoring

From: Date: Thu, 14 Feb 2013 14:50:17 +0000
Subject: Re: File system watcher/monitoring
References: 1 2 3 4  Groups: php.internals 
Request: Send a blank email to internals+get-65828@lists.php.net to get a copy of this message
Hi Sebastian, On 14/02/13 15:40, Sebastian Krebs wrote:
2013/2/14 Ivan Enderlin @ Hoa <ivan.enderlin@hoa-project.net>
Hello Julien, On 14/02/13 15:29, Julien Pauli wrote:
On Thu, Feb 14, 2013 at 3:03 PM, Ivan Enderlin @ Hoa < ivan.enderlin@hoa-project.net> wrote: Hi internal,
A missing feature in PHP is a file system watcher/monitoring available for almost all platforms. On Linux, we have inotify (available in PHP through pecl/inotify), on Mac OS X, we have /dev/fsevents (not available in PHP, since we need ioctl to do that in pure PHP —and sudo—, no C extension needed), on FreeBSD, we have FAM, and on Windows, we have FileSystemWatcher in .NET. All major platforms have a solution ready to use. By now, if we didn't use these solutions, we should use a finder (thanks to RecursiveIteratorIterator and DirectoryIterator in SPL) that runs every n seconds and compute a diff with the previous run. This solution works fine for a small set of files but it can slow for a big one. This is just a tricky solution, not a proper one. Possible domains where it is needed: test, CI, log, file transfering, security etc. Is it possible to have such a feature landing in PHP (core if karma allows it)? or do you want such a feature? Best regards :-).
Hello :-) I don't see why we would have such a thing into PHP Core. We are already smooth about the file system accesses with a realpath cache, and users may use different pecl ext if they want to take hand on a lib such as inotify.
Well ok, forget PHP core, but an extension would be great.
At least for inotify there is an extension, which works quite fine. Never searched something similar for other OSs. I have written: “On Linux, we have inotify (available in PHP through pecl/inotify)”, so yup, I know for inotify :-). I propose to gather all these API and give a proper one to the end-user.
-- Ivan Enderlin Developer of Hoa http://hoa-project.net/ PhD. student at DISC/Femto-ST (Vesontio) and INRIA (Cassis) http://disc.univ-fcomte.fr/ and http://www.inria.fr/ Member of HTML and WebApps Working Group of W3C http://w3.org/

« previous php.internals (#65828) next »