【问题标题】:How to monitor file changes with HHVM?如何使用 HHVM 监控文件更改?
【发布时间】:2014-09-24 03:20:45
【问题描述】:

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);

【问题讨论】:

  • 你检查过this吗?
  • @Prasanth 是的,如果你稍微走一点deeper,你会看到一个很大的警告,上面写着“HHVM 不支持”。这就是问题的目的。

标签: php inotify hhvm


【解决方案1】:

正如您所发现的,inotify 扩展目前在 HHVM 中不受支持。 HHVM 社区可能会编写支持 API 的 HNI 扩展。 HHVM 已经在内部将 inotify 用于其“statcache”代码(例如,用于缓存 lstat() 信息)。因此,构建环境已经设置为检测 inotify 的可用性。利用这一点,编写原生扩展比从头开始更容易。

在此之前,一种替代方法是将 watchman 与您的 PHP 代码结合使用。在推送模型中,守望者根据您之前配置的 triggers 执行 PHP 脚本。在拉/轮询模型中,您可以通过套接字query 守望者。使用 watchman 的一个优点是支持更多的操作系统,而不仅仅是 Linux。使用 watchman 与原生 inotify 扩展的性能将取决于工作负载。

【讨论】:

    猜你喜欢
    • 2023-03-17
    • 1970-01-01
    • 2017-11-18
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多