Как отслеживать изменения файлов с помощью HHVM?

PHP имеет inotify расширение, но HHVM не поддерживает его.

Как я могу контролировать файл хотя бы для IN_CLOSE_WRITE событие на HHVM?

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

3

Решение

Как вы обнаружили, Inotify расширение в настоящее время не поддерживается в HHVM. Возможно, что сообщество HHVM напишет расширение HNI, поддерживающее API. HHVM уже использует inotify, когда это возможно, внутренне для своего кода «statcache» (например, для кэширования информации lstat ()). Таким образом, среда сборки уже настроена для обнаружения доступности inotify. Использование этого сделает написание собственного расширения проще, чем начинать с нуля.

До тех пор одной из альтернатив будет использование сторожа в сочетании с вашим PHP-кодом. В модели push сторож выполняет скрипт PHP на основе триггеры вы ранее настроили. В модели pull / poll вы могли бы запрос сторож над розеткой. Одним из преимуществ использования watchman является поддержка большего количества операционных систем, чем просто Linux. Производительность использования watchman по сравнению с собственным расширением inotify будет зависеть от рабочей нагрузки.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]