php-如何使用HHVM监视文件更改?

PHP具有inotify扩展名,但HHVM不支持它.

如何至少监视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扩展的性能将取决于工作负载.

上一篇:在Linux中观看文件中的更改


下一篇:二、Linux实时同步软件之inotify