Re: File system watcher/monitoring

From: Date: Fri, 15 Feb 2013 12:50:50 +0000
Subject: Re: File system watcher/monitoring
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-65868@lists.php.net to get a copy of this message
Hi Victor, On 15/02/13 12:43, Victor Berchet wrote:
On 02/14/2013 03:03 PM, Ivan Enderlin @ Hoa 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 :-).
Ivan, Everzet has started to build a client side solution[1] Hopefuly he will have time to update the PR with what is remaining to do soon[2] I have read your conversation on Twitter. Everzet uses inotify or a recursiveiterator as a fallback, as suggested in my first mail, but this cannot be extended to FSEvents, FAM etc. A solution in pure PHP is not possible for technical reasons (we need ioctl to read from /dev/fsevents, or we need a low-level C program for Windows, BSD etc.). That's my point here :-).
Of course, “tricky” solutions exist on the Web, like the one proposed by Everzet. I did one and you can find many others, but they are “incomplete” or “unefficient” most of the times (note the quotes here, it depends of the context of use). Cheers. -- 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 (#65868) next »