я использую PHP-RQL библиотека для работы с RethinkDB,
Мне нужно получить изменения, когда новые данные вставлены.
но я получаю PHP фатальную ошибку: Uncaught RqlDriverError:
Параметры должны быть массивом.
в документации API это говорит:
table->changes(array('squash' => true, 'include_states' => false)) → stream
singleSelection->changes(array('squash' => true, 'include_states' => false)) → stream
Return an infinite stream of objects representing changes to a query.
Пример: подписаться на изменения в таблице.
r\table('games')->changes()->run($conn, function($err, $cursor) {
$cursor->each($console->$log)
})
Как подписаться на изменения на столе? Этот пример не работает.
В настоящий момент PHP-RQL полностью синхронен, поэтому вы не можете дать ему обратный вызов.
Вместо этого вы получите курсор, который вы можете перебрать:
$cursor = r\table('games')->changes()->run($conn);
foreach ($update in $cursor) {
printr($update);
})
Что вы используете для параллелизма? Используете ли вы какой-либо асинхронный каркас (React PHP) или многопоточность или что-то подобное?
В настоящий момент нет встроенной интеграции в React с PHP-RQL, хотя, если вы используете версию PHP с поддержкой потоков, вы можете создать поток, открыть отдельное соединение внутри потока и использовать интерфейс синхронного курсора изнутри.
Других решений пока нет …