如何至少监视HHVM上的IN_CLOSE_WRITE事件的文件?
<?php // sample inotify code for PHP
$fd = inotify_init();
$watch_descriptor = inotify_add_watch($fd, __FILE__, IN_ATTRIB);
touch(__FILE__); // generate an event
$events = inotify_read($fd);
var_dump($events);
解决方法:
如您所知,HHVM当前不支持inotify扩展. HHVM社区可能会编写支持API的HNI扩展.如果可用,HHVM已经在内部为其“状态缓存”代码使用了inotify(例如,用于缓存lstat()信息).因此,已经建立了构建环境来检测inotify的可用性.利用此功能将使编写本机扩展要比从头开始容易.
在此之前,一种替代方法是将watchman与PHP代码结合使用.在推送模型中,值班员根据您先前配置的triggers执行PHP脚本.在拉动/轮询模型中,可以将query值班员放在套接字上.使用watchman的优点之一是不仅支持Linux,还支持更多的操作系统.使用watchman与本机inotify扩展的性能将取决于工作负载.